1、 课程名称: 数据结构课程设计 学 院: 管理学院 专业班级: 10 信息管理与信息系统(2)班 姓 名: 王高智 学 号: 3110004891 指导老师: 丁天翔 2012 年 06 月 18 日 1 目录目录 哈夫曼编码与译码 2 一、 问题及功能分析 . 2 (一) 要求: 2 (二) 分析: 2 二、 详细设计 2 (一) 读取信息 2 (二) 统计文本信息 . 2 (三) 设计编码和译码方案. 3 (四) 计算压缩比. 3 (五) 整体流程 3 三、 程序实现 3 (一) 汇总 . 3 (二) 具体实现代码 . 3 1. com.gauze.Main . 3 2. com.gauz
2、e.charstatistics.CharData 4 3. com.gauze.charstatistics.CharDataMapActor 6 4. com.gauze.charstatistics.CharReader . 9 5. com.gauze.util.HaffmanNode . 10 6. com.gauze.util.HaffmanTree .11 四、 调试分析 14 (一) 统计英文文本: 14 (二) 统计含有中英文文本. 15 (三) 查询只含有字符串“AAAABBBCDDBBAAA”的文本(课本示例) : . 16 手机信息管理. 17 一、 问题及功能分析 .
3、 17 (一) 功能要求:. 17 (二) 性能要求:. 17 (三) 分析: 17 二、 详细设计 20 (一) 持久层 20 (二) 逻辑层 21 (三) 展示层 23 三、 程序实现 27 四、 调试分析 42 (一) 通讯录管理. 42 (二) 通话记录 47 (三) 信箱管理 53 五、 课设总结 59 2 哈夫曼编码与译码哈夫曼编码与译码 一、一、 问题及功能分析问题及功能分析 (一一) 要求:要求: 从某文本文件中统计其中字符使用频率(由英语字母构成) ,建立对应的哈夫曼树,设 计哈夫曼编码与译码方案,计算压缩比。 (二二) 分析:分析: 读取并统计文本信息 (统计每个字符的使用
4、次数并计算使用频率) 根据统计的信息 设计编码方案 译码 计算压缩比。 二、二、 详细设计详细设计 (一一) 读取信息读取信息 使用 java.io.BufferedReader 类读取文本字符。 (二二) 统计文本信息统计文本信息 需要统计的信息为字符的出现次数和文本的字符总数。 字符总数:每读取一个字符,字符总数加 1; 字符出现次数: 特征: 1) 每个字符对应的次数随着读取的进行可能会发生改变,属于动态变量; 2) 不允许出现两个存储到相同的字符信息对象; 3) 当读取到新的字符时,需要添加新的存储字符信息的对象; 4) 每读取到一个字符, 需要对所有已经读取的字符进行查找更新数据, 查找 频繁。 分析:因为不允许存储重复的对象,因此应该采用 Set 集合进行存储,由于查找更 新数据比较频繁,为提高效率,应该采用 Hash 散列存储结构,综上可得出结论: 采用 HashSet 结构存储数据效率最高。 3 (三三) 设计编码和译码方案设计编码