数据结构课程设计-哈夫曼编码和译码报告.docVIP

数据结构课程设计-哈夫曼编码和译码报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内蒙古科技大学 本科生课程设计说明书 题 目:数据结构课程设计 —— 哈夫曼编码和译码 学生姓名: 学 号: 专 业:软件工程 班 级:1班 指导教师: 日 期:2016年1月8日 内蒙古科技大学课程设计任务书 课程名称 数据结构课程设计 设计题目 Huffman编码和译码 指导教师 时间 2015.12——2016.1 一、教学要求 1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。各字符的频率值出其中给字符编码,并针对一段文本(定义在上)进行编码和译码,实现一个编码/译码系统编码1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 . 设计完成后提交课程设计报告资料查阅与讨论1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。数据结构:用面向对象方法与C++语言描述?清华大学出版社 2007 目 录 内蒙古科技大学课程设计任务书 1 第一章 需求分析 3 1.1 程序的功能 3 1.2 输入输出的要求 3 第二章 概要设计 3 2.1 总体设计 3 2.2 数据类型设计(或数据结构设计) 4 2.3 接口设计 //函数声明 5 第三章 详细设计 6 3.1 工程视图 6 3.2 类图视图 6 3.3 函数的调用关系 7 3.4 主程序流程图 8 3.5 主要算法流程图 9 第四章 测试分析 11 4.1 测试程序执行情况 11 第五章 用户手册(可选) 12 第六章 课程设计总结 13 附录:程序代码 14 第一章 需求分析 1.1.程序的功能? 能对输入的字符串实现Huffman编码,且能利用生成的编码对Huffman代码串进行译码,输出相应字符串。? 2.2.输入输出的要求? 首先,输入一个字符串,程序会列出字符串中包含的字符种类及每一种字符出现的次数,然后输出通过Huffman编码得到的各种字符的Huffman编码。此时程序要求输入一串Huffman代码串,输入完毕程序会判断输入的代码串是否合法,若合法则输出译码结果。? 概要设计 总体设计 数据类型设计(或数据结构设计) enum Child{none,lchild,rchild}; //采用枚举,标记是左孩子还是右孩子 class element //元素类 { public://类的公有成员 elememt(); //构造函数 void change(char l,char *c,int p,Child h,int w) //对对象进行修改操作 void getparent(int p) //对父结点的值进行修改操作 void geta(Child h) //对孩子结点进行修改操作 void getweight(int w) //对权值进行修改操作 int returnweight() //返回权值操作 friend void Select(element h[],int k,int *a,int *b);//友元函数的声明 friend void HuffmanTreeCode(element HT[]); friend void HuffmanTreeYima(element huff[],char cod[],int b); private://类的私有成员 char letter,*code; //letter为字符,*code指向编码字符串 int weight; //权值 int parent; //父结点 Child a; //为父结点的左孩子还是右孩子 }; 接口设计 主函数:对输入的字符段进行存储,并对字符数和对应的权值(字符个数)进行统计存储。 哈夫曼树初始化函数:对给定的字符数和权值,创建一棵哈夫曼树。 权值大小比较函数:找到每次所给集合的最小值和次小值,并返回给哈夫曼树初始化函数。 哈夫曼树编码函数:对创建的哈夫曼树,为左孩子的赋值为0,右孩子赋值为1,然后对叶子结点依次编码。 哈夫曼树译码

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档