- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内蒙古科技大学
本科生课程设计说明书
题 目:数据结构课程设计
—— 哈夫曼编码和译码学生姓名:
学 号:
专 业:软件工程
班 级:1 班指导教师:
日 期:2016 年 1 月 8 日
0 / 20
0 / 20
内蒙古科技大学课程设计任务书
课程名称设计题目
指导教师 余金林
一、教学要求
数据结构课程设计
Huffman 编码和译码
时间 2015.12——2016.1
掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能
提高综合运用所学的理论知识和方法独立分析和解决问题的能力
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
Huffman 编码和译码
根据给定的字符集和各字符的频率值,求出其中给定字符Huffman 编码,并针对一段文本
(定义在该字符集上)进行编码和译码,实现一个Huffman 编码/译码系统。
要求设计类(或类模板)来描述 Huffman 树及其操作,包含必要的构造函数和析构函数, 以及其他能够完成如下功能的成员函数:
求 Huffman 编码
输入字符串,求出编码
输入一段编码,实现译码并设计主函数测试该类。
三、设计要求及成果
分析课程设计题目的要求
写出详细设计说明
编写程序代码,调试程序使其能正确运行
设计完成的软件要便于操作和使用
设计完成后提交课程设计报告
四、进度安排
资料查阅与讨论(1 天) 系统分析(2 天)
系统的开发与测试(5 天)
编写课程设计说明书和验收(2 天)
五、评分标准
根据平时上机考勤、表现和进度,教师将每天点名和检查
根据课程设计完成情况,必须有可运行的软件。
根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问
六、建议参考资料
《数据结构 (C 语言版)》严蔚敏、吴伟民 主编 清华大学出版社 2004.11
《数据结构课程设计案例精编(用C/C++描述)》,李建学 等 编著,清华大学出版社 2007.2
《数据结构:用面向对象方法与 C++语言描述》,殷人昆 主编, 清华大学出版社 2007
PAGE
PAGE 6 / 20
目 录
内蒙古科技大学课程设计任务书 1
第一章 需求分析 2
程序的功能 3
输入输出的要求 3
第二章 概要设计 3
总体设计 3
数据类型设计(或数据结构设计) 4
接口设计 //函数声明 4
第三章 详细设计 6
工程视图 6
类图视图 6
函数的调用关系 错误!未定义书签。
主程序流程图 8
主要算法流程图 9
第四章 测试分析 11
4.1 测试程序执行情况 11
第五章 用户手册(可选) 12
第六章 课程设计总结 13
附录:程序代码 13
第一章 需求分析
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 H
您可能关注的文档
最近下载
- 2024年中考语文二轮复习:名家散文阅读(汪曾祺)练习题汇编(含答案解析).docx
- 职业资格认证 三.鉴定细目表 中式烹调师(中级)理论知识鉴定要素细目表.doc
- 来访人员登记表(模板).pdf VIP
- 中小型企业安全生产事故应急救援预案范文.doc
- 《中华民族一家亲》第一课时 教案.doc
- 【智慧树】【知到】大学生劳动就业法律问题解读(2024必威体育精装版版) 章节测试答案.docx VIP
- 酒厂危险源辨识及风险分级管控清单范本参考模板范本.pdf VIP
- 人教版四年级数学上册《田忌赛马》教案及教学反思.docx VIP
- 创业模拟实训培训.pptx
- 2024《城市居民参与生活垃圾分类的问题研究—以北京市A社区为例》论文答辩稿1700字.docx VIP
文档评论(0)