数据结构课程设计分析基于哈夫曼树的文件压缩/解压程序 计算机科学学院××专业××班××号 ×××2024-10-20一 需求分析下载后可任意编辑1.课题要求(实现文件的压缩与解压并计算压缩率)A.描述压缩基本符号的选择方法B.运行时压缩原文件的规模应不小于 5KC.提供恢复文件与原文件相同性对比功能2.设计目标A 软件名称:基于哈夫曼编码的文件压缩有用程序系统B 软件组成:Winhfm.exe dosHfm.exe C 制作平台及相关调试工具: Windows2000sp4 Borland C++ Builder 6Dev-C++ 4.9.6.0 UltraEdit-32D 运行环境:dos/win98/winMe/win2K/winxpE 性能特点:1. 软件由两个可执行文件组成,各具特点DosHfm.exe 为 dos 系统应用程序,体积小,高效快捷,适用范围广。WinHfm.exe 为 windows 应用程序,界面友好,使用方便。2. 对单字节(256 叶子)进行哈夫曼编码,压缩率良好2. 使用二级缓冲压缩/解压技术,速度比一般算法高 75%以上3.可压缩最大体积为 4G 的文件,达到 Fat32 文件系统极限4. 文件索引体积比常规算法小 50%5.压缩过程中显示压缩进度并有相关信息提示6.WinHfm.exe 可图形显示源文件的哈夫曼编码构造树二 概要设计 1.相关函数介绍 dos 版本程序下的有关函数1..void Haffman(int nodeCode,int length,int sum,vector< pair > &hfmCode,vector &lchild,vector &rchild)哈夫曼树编码递归函数2.void indexSearch(int nodeCode,vector &lchild,vector &rchild,vector &index,vector&code)索引编码递归函数3 . void makeIndex(int nodeCode,int &tt,vector &index,int &indexNum,list &code,vector &lchild,vector &rchild)索引解码递归函数4.void Compress() 压缩函数5.void UnCompress() 解压缩函数2下载后可任意编辑windows 版本程序下的新增函数1. AnsiString ShowNowTime()计算当前时间(精确到毫秒,以字符串返回)。2. void search(int nodeCode,int &i,vector &lchild,vector &rchild)递归计算每个节点的 X 坐标3. void searchdraw(int nodeCode,int height,vector &lchild,vector &rchild)递归做图函数4.void __fastcall TForm1::Paga1OnDrawTab(TCustomTabControl *Control,int TabIndex, const TRect &Rect, bool Active)PageControl ...