数据结构课程设计具体要求

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计具体要求

一、课程的性质、任务与目的

教学目的:

1.使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。

2.使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。

3.使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。二、本课程涉及的基本理论

数据结构中关于“线性表、栈和队列、树和二叉树、图、查找和排序”等基本理论。

三、课程基本要求

基本要求:

1.巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。

2.培养学生自学参考书籍,查阅手册、图表和文献资料的能力。

3.通过训练,使学生初步掌握简单软件的分析方法和设计方法。

4.了解与课程有关的工程技术规范,能正确解释和分析实验结果。

5.题目具有足够的工作量。

6. 课程中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。

7. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关

环境的设置方法,准备好有关的文件。

8. 按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;

其中包括:

a)需求分析:

在该部分中叙述,每个模块的功能要求

b)概要设计

在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。

c)详细设计

各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功

能模块采用不同的函数实现)。

源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

d)调试分析

测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。

课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;

9. 每组实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考

核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号姓名”,如“200413498 高魁”。该文件夹下至少包括:“源代码”、“课程设计报告”、“可执行文件”。由学习委员收集刻盘按规定时间统一上交)。

10. 课程设计报告可以附原代码,也可以只对对重点函数及结构进行说明。报告格式参照

数据结构习题集。

11. 报告提交

时间:第2周星期五收集上交,迟交无成绩。

形式:课程报告(要求打印)和电子文档全班(统一刻盘)。

四、训练内容:(每人完成3类题目中的各一道题即可)

两类题目:

第一类:

趣味问题(如汉诺塔、约瑟夫环、八皇后问题、串的模式匹配等问题);

第二类:

1.内部排序演示

【问题描述】

设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数。

【基本要求】

(1) 对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;

(2) 待排序的元素的关键字为整数。其中的数据要用伪随机产生程序产生(如10000个),至少用5组

不同的输入数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。

(3) 演示程序以人机对话的形式进行。

(4) 界面友好,易与操作。采用菜单方式进行选择。

【选做内容】

(1) 对不同表长进行比较;

(2) 验证各算法的稳定性;

2.校园导游咨询

【问题描述】

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

【基本要求】

(1) 设计本校的校园平面图,所含景点不少于6个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

(2) 为来访客人提供图中任意景点相关信息的查询。

(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。3.建通讯录

【问题描述】

设计散列表实现通讯录查找系统。

【基本要求】

(1) 设每个记录有下列数据项:电话号码、用户名、地址;

(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;

(3) 采用线性探测再散列法解决冲突;

(4) 查找并显示给定电话号码的记录;

(5) 通讯录信息文件保存;

(6) 要求人机界面友好,使用菜单方式进行选择。

【实现提示】

主函数:根据选单的选项调用各函数,并完成相应的功能。

Menu()的功能:显示英文提示选单。

Quit()的功能:退出选单。

Create()的功能:创建新的通讯录。

Append()的功能:在通讯录的末尾写入新的信息,并返回选单。

Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信

息,并返回选单。

Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。

Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

List()的功能:显示通讯录中的所有记录。

Save()的功能:保存通讯录中的所有记录到指定文件中。

Load()的功能:从指定文件中读取通讯录中的记录。

4.哈夫曼编码/译码器

【问题描述】

设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(压缩文件,后缀名.cod);反过来,可将一个压缩文件译码还原为一个文本文件(.txt)。

【基本要求】

(1) 输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树;

(2) 将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),

(3) 输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;

(4) 显示指定的压缩文件和文本文件;

(5) 界面友好,易与操作。采用菜单方式进行选择。

5.计算器

【问题描述】

利用栈设计一个简单的计算器,可以做加、减、乘、除等基本运算。

第三类:

1. 学生成绩管理系统

【基本要求】

(1)按学期、按班级完成对学生成绩的录入、修改;

(2)按班级统计学生的成绩;

(3)求学生的总分及平均分;

(4)根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;

(5)按班级输出学生的成绩单。

2. 影碟出租管理系统

相关文档
最新文档