有同学在51CTO上学习了数据结构课程,希望我能给一个曾经做过的应用软件,让大家对数据结构知识练练手,这个建议非常好,学以致用嘛。因此特地翻出我曾经写过的一个程序,把这个题目送给那些夜以继日学习数据结构的学员。

一、要求

1. 根据信源压缩编码——Huffman编码的原理,制作一个控制台下运行的压缩(解压缩)程序。
2. 要求软件有简单易用的控制台交互的用户界面,软件能够对运行的状态生成报告,分别是:字符频率统计报告、编码报告、压缩程度信息报告、码表存储空间报告。
3. 程序能够对文档进行压缩,同时也能够解压缩。
二、环境
1. 计算机
2. windows 2000 或以上
3. VC++ 6.0
4. MSDN 6.0
三、目的
1. 掌握Huffman编码的原理
2. 掌握VC开发环境的使用(尤其是程序调试技巧)
3. 掌握C语言编程(尤其是位运算和文件的操作)
4. 掌握数据结构的内容:最优二叉树
5. 掌握结构化程序分析和开发的软件工程原理
四、原理
压缩流程:
读取扫描文件—>统计字符频率—>生成码字—>保存压缩文件
解压缩流程:
读取扫描压缩文件—>提取字符频率—>生成码树—>保存文件
Huffman编码算法(略)
文件操作和位运算(略)
五、UI参考
1. 命令行界面
基于Huffman编码的压缩程序_第1张图片

2. 程序压缩文件时的报表
基于Huffman编码的压缩程序_第2张图片

3. 程序解压缩文件时的报表
基于Huffman编码的压缩程序_第3张图片
六、相关课程
1. 数据结构
2. 信息论与编码


注意:
1. QQ教学群: 301862163
2. 数据结构课程地址:http://edu.51cto.com/course/course_id-1004.html
3. 信息论与编码课程地址:http://edu.51cto.com/course/course_id-976.html
4. 51CTO课程中心: http://edu.51cto.com/lecturer/user_id-8606427.html