数据结构课程设计指导书专业用.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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.考虑将此程序设计完善,比如可以将编码后的字符代码保存到文件中,将需要翻译的代码保存到另一个文件中,最后把自动翻译后的结果也保存到文本文档中等等。 在这个程序中,首先要构造一棵哈夫曼树,然后才能根据这棵哈夫曼树构造编码。 因此,步骤一:构造哈夫曼树 步骤二:根据哈夫曼树为

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档