- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》课程设计指导书
计算机科学与控制学院
一.目的
通过本课程设计,使学生更加系统地理解和掌握数据结构的基本概念;使学生能自如地根据实际要求,设计相应的数据结构,并运用C++语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,为后续其它专业课程的学习和应用打下良好基础。
二.题目
根据指导教师的具体要求,从下面题目中选择1个题目来完成 :
二叉树的应用-哈夫曼树(电文的编码和译码)
运动会分数统计
学生成绩管理系统
客房管理系统表达式的求值
4)使用说明
5)参考文献
四.总体要求
每道题目的程序代码总量不少于600行(其中不包括自动生成代码),有合理注释。
课程设计报告正文字数不少于8000字,概念清楚、叙述正确、内容完整、书写规范。
独立完成课程设计,不得抄袭他人。
功能正确、有一定实用性。
尽可能大量使用各种C++语言程序设计技术,尤其在以下几个方面:
指针及其运算、结构、指针数组、数组指针、字符数组与字符串、内存空间动态申请与释放、文件访问与操作、合理的常量与全局变量及函数接口变量定义、数据输入与数据格式检查、数据类型转换、错误处理、工程设计技术(整个系统由一个工程文件、若干个程序文件、若干头文件、甚至库文件等组成)。
程序界面不做较高要求,但要考虑到用户使用的方便,有较好的交互界面。
可以使用VC编译环境开发程序,但不允许使用现成的数据库如access,SQL Server等完成上面的课程设计题目,否则成绩评定为不及格。
设计时适当考虑程序的可维护性与可扩充性。
提倡积极交流与讨论(同学间、bbs站点)、善于查阅资料、分析与借鉴他人编写的软件。
认真自觉以个人为单位完成自己的任务,代码和课设报告均严禁雷同,否则成绩为不及格。验收时查看代码,并提出若干个跟程序代码有关的问题,并把问题回答情况计入总评成绩。
五.工作阶段与考核方法
大体上可分成五个阶段:
1.资料查阅准备阶段(15%)
2.分析设计阶段(35%)
3.编程调试阶段(40%)
4.课程设计报告书写阶段(10%)
5.验收阶段
考核方法:
只有程序验收通过后,才能按以下方法核定本次课程设计的总成绩,因未能独立完成设计(尤其是抄袭)或概念不清的同学,总成绩将核定为不及格。总成绩由以下几个部分决定:
考勤、纪律、实验室卫生
工作量(代码量、功能多少、难度)
关键技术
实用性、创新
代码书写规范性
程序界面、新技术引用
课程设计报告(叙述、书写规范、字数)
动手能力、分析问题解决问题能力
六.任务具体要求
1、二叉树的应用-哈夫曼树(电文的编码和译码)
哈夫曼编码/译码器
问题描述:设计一个哈夫曼编码/译码系统,对字符串进行编码/译码
基本要求:
(1)从键盘输入字符串,以回车结束;
(2)根据字符串中字符出现的概率进行哈夫曼编码;)
(3)并输出编码结果和编码表;
(4)根据编码结果和编码表还原字符串;
(5)输出编码过程中构造的哈夫曼树。
内容:理解二叉树的基本概念,并在读懂下面详细描述的算法的情况下,编写一个有关二叉树的简单应用程序-电文的编码和译码。
具体实验题目和功能要求如下:
(1)电文编码:假如有一份电文中共使用5个字符:a、b、c、d、e,它们的出现频率依次为4、7、5、2、9,试画出对应的哈夫曼树(请按左子树根结点的权小于等于右子树根结点的权的次序构造),并求出每个字符的哈夫曼编码
其中:得到的哈夫曼树和哈夫曼编码如下。
图1
要求自己编程实现若从键盘输入若干字符,同时并输入它们各自出现的频率,最后能计算并在屏幕上显示出每个字符的代码。
(2)电文译码:给出一段二进制代码的电文,要求根据前面构造的huffman树进行译码。在前面编码的基础上,键盘输入一段电文,则能在屏幕上显示出自动翻译好的电文。比如根据图1显示的哈夫曼树,键盘输入电文如下:1011010,屏幕上能显示自动翻译的结果为bed
说明事项:
1.通过上面的描述本课程设计题目包括(1)电文的编码(2)电文的译码,要求必须用哈夫曼树实现。
2. 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。并要明确,只有在使用哈夫曼树进行编码的前提下,才有可能进行译码。
3.考虑将此程序设计完善,比如可以将编码后的字符代码保存到文件中,将需要翻译的代码保存到另一个文件中,最后把自动翻译后的结果也保存到文本文档中等等。
在这个程序中,首先要构造一棵哈夫曼树,然后才能根据这棵哈夫曼树构造编码。
因此,步骤一:构造哈夫曼树
步骤二:根据哈夫曼树为
您可能关注的文档
- D色氨酸市场研究报告.doc
- 西安教师综合素质测试(套模拟题).doc
- 编制与应用试题.doc
- 在建工程建设项目质量检查内容提纲.doc
- 职称计算机考试Internet应用模拟试题五.doc
- 七级信息技术上册总复习题.doc
- 8企业财务会计(下)A.doc
- 计算机等级考试三级网络真题及答案(0001).doc
- 质量管理总结(建筑企业).doc
- 复习方法施工管理考第章.doc
- 基于 MINKOWSKI 范数的语言检测:通过字符双字元组和频率分析进行识别-计算机科学-自然语言处理-语言检测-统计语言识别.pdf
- HiFi-Stream: 基于生成对抗网络的流式语音增强-计算机科学-音频降噪-音频处理-生成对抗网络-语音增强-流式音频处理.pdf
- 基于聚类的难样本挖掘用于监督对比说话人验证-计算机科学-机器学习-语音处理-说话人验证-监督对比学习.pdf
- LLM 能否编写 CI?一项关于 GitHub 操作配置自动生成的研究-计算机科学-大语言模型-持续集成.pdf
- OkadaTorch:用于从断层参数计算位移和应变的 Okada 模型的可微分编程-计算机科学-机器学习-算法.pdf
- 从裂缝到骗子:YouTube 作为恶意软件传播的媒介-计算机科学-机器学习-自动化检测系统.pdf
- 快速配电网拓扑估计通过子集和问题-计算机科学-机器学习-配电网格-图论-电力网络拓扑.pdf
- 分布式策略梯度的广义优势估计-计算机科学-强化学习-最优传输-策略梯度.pdf
- 变分推理与分布三边测量用于长尾连续表示学习-计算机科学-机器学习-连续学习-变分自编码器.pdf
- 各得其所:探索 RAG 中的最优嵌入-计算机科学-机器学习-大语言模型.pdf
文档评论(0)