一、 课题:哈夫曼编码编译器 设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件 (压缩文件,后缀名
cod);反过来,可将一个压缩文件译码还原为一个文本文件(
二、 功能 (1)输入一个待压缩的英文文本文件,统计文本文件中各字符的个数作为权值,生成哈夫曼树; (2)将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod) (3)输入一个待解压的压缩文件名称 ,并利用相应的哈夫曼树将编码序列译码
三、程序结构 程序流程图 选择(1 )编码 选择(0 )退出 执行程序 输入要编码文件 选择(2 )译码 输 入 要 译码文件名 保 存 编码后的文件 保 存 译码后的文件 编码 译码 文字说明 Main 函数:Coding()编码函数 TransCode()译码函数 Coding()编码函数: clearscreen()清屏函数 Open()打开源码文件 SearchStr()查找字符串中不同的字符及其出现的次数 CreatHFMTree()用每个字符出现的次数作为叶子节点的权值建立哈夫曼树 HFMCode()利用哈夫曼树对每个叶子节点进行编码,存入编码表中 TotalCoding()利用编码表对字符串进行最终编码 Sav e()保存最终的哈夫曼编码 TransCode()译码函数: clearscreen()清屏函数 Open()打开编码文件 DeCoding(); //将编码进行解码存入字符串数组中 Sav e(); //保存译码后的字符串 四、 算法说明 1
执行界面 可供三个选择 (1 ) 编码 (2 ) 译码 (3 ) 退出 执行(1 )选择 需要输入要编译的文件名 需要输出编码保存文件名 选择(1 )执行完毕 执行(2 )选项 输入要译码的编码文件名并输入保存的文件名 选择(2 )执行完毕 执行(0 )则退出该程序 五