课程设计说明书技术方案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计 说 明 书 课程名称: 数据结构 设计题目: 哈夫曼编/译码器 学 院: 计算机科学与信息工程学院 学生姓名: 申恒恒 学生学号: 专业班级: 网络工程13-01 指导教师: 冯 贺 2015年 6月 25日 课 程 设 计 任 务 书 设计题目 哈夫曼编/译码器 学生姓名 申恒恒 所在院部 计算机科学与信息工程学院 专业、班级 网络工程13-1 设计要求: 1、根据哈夫曼树编码原理,构造哈夫曼树,创建一套哈夫曼编码; 2、读取文本文件,并对文件内容编码,生成编码文件; 3、对编码文件进行译码,获得恢复文件; 4、比较恢复文件和原文件是否相同。 学生应完成的工作: 1. 学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。 2. 对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。 3. 完成课程设计报告。 参考文献: 1. 严蔚敏 版) 2011 2. 谭浩强 C程序设计(第四版) 清华大学出版社2010 工作计划: 1. 小组审题,查阅资料,进行设计前的必要资料准备(3天)。 2. 把程序完整运行出来(4天)。 3. 增加改进程序(3天)。 4. 写课程设计报告(3天)。 5. 提交课程设计报告及答辩(1天) 任务下达日期:2015 年 6 月 9 日 任务完成日期:2015 年 6 月 22 日 指导教师(签名): 学生(签名):申恒恒 哈夫曼编/译码器 摘 要:采用哈夫曼编码思想实现对字符串的编码,以及对编码的解码。字符串的长度不小于5000字节。读取要编码的文本文件,将文件的内容进行编码,生成新的文件。对编码文件进行解码,获得文本文件。将译码的文本文件和原文件进行比较,恢复文件和原文件必须完全一致。 关键词:哈夫曼编码 哈夫曼译码 目 录 哈夫曼编/译码器 2 1. 设计背景 4 1.1程序的功能 4 1.2输入输出的要求 4 2.设计方案 5 2.1程序结构 5 2.2数据结构 5 3. 方案实施 6 3.1详细设计 6 3.2 调试分析 6 3.2.1 发现问题 6 3.2.2 逐步解决问题 6 3.2.3 代码实现过程 7 3.3 核心源程序清单 12 4. 结果与结论 14 4.1程序运行结果图 14 4.2结论与心得体会 15 5. 参考文献 16 1. 设计背景 1.1程序的功能 (1) 从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上; (2) 利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrint中; (3) 利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中,并输出结果。 1.2输入输出的要求 先在执行文件的同根目录下创建abc.txt文件,在abc文件中输入各字母及相应的权值。 测试数据: 字符 空格 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z ? 频度 57 63 15 1 48 51 80 23 8 18 1 16 1 ? 2.设计方案 2.1程序结构 2.2数据结构 typedef struct { int weight; //权重 int parent,lchild,rchild; //父亲节点,左孩子,右孩子 }HTNode,* HuffmanTree; //定义节点和哈夫曼树结构体 3. 方案实施 3.1详细设计 初始化哈夫曼链表: void Initialization(); 输入带编码的字符并写入文件:void InputCode(); 编码: Encod

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档