《数据结构课程设计》指导书。
一。选题要求。
1.基本数据结构的操作:设计出相关数据结构的相关函数库,以便在程序设计中调用。
2.相关应用:利用相关函数库描述一个实际问题。
3.每个学生至少选做一题。
二。设计要求。
1)编程实现逻辑结构、存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
4)测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。
5)所设计的数据结构应尽可能节省存储空间。
6)程序的运行时间应尽可能少。
三.考核要求。
1.考勤。2.验收。
3.课程设计报告。
四、设计报告格式及要求:
1、题目。2、设计目的。
3、逻辑结构、存储结构定义及相关算法。
4、应用设计。
5、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
6、课程设计心得及体会。
7、源程序清单和执行结果:清单中应有足够的注释。
五.课程设计题目。
一)顺序表、链表的操作及应用。
课题1:设计一个计算机管理系统完成图书管理基本业务。
基本要求:1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2)对书号建立索引表(线性表)以提高查找效率(索引表采用树表);
3)系统主要功能如下:
采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
归还:注销对借阅者的登记,改变该书的现存量。
课题2:活期储蓄帐目管理:
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:
1)能比较迅速地找到储户的帐户,以实现存款、取款记账;
2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
课题3:猴子吃桃子问题:
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
要求:1)采用数组数据结构实现上述求解。
2)采用链数据结构实现上述求解。
3)采用递归实现上述求解。
4)可扩展采用4种以上方法。
课题4:敢死队问题:
有m个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。
如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
要求:至少采用两种不同的数据结构的方法实现。
二)栈和队列的操作及应用。
课题5:数制转换问题。
任意给定一个m进制的数x,请实现如下要求。
1)求出此数x的10进制值(用md表示)
2)实现对x向任意的一个非m进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
课题6:利用栈求表达式的值,可供小学生作业,并能给出分数。
要求:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括号的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。
课题7:程序开始运行时显示一个迷宫地图,迷宫**有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
要求:1)老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
2)迷宫的墙足够结实,老鼠不能穿墙而过;
3)正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
4)添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
5)找出走出迷宫的所有路径,以及最短路径;
利用序列化功能实现迷宫地**件的存盘和读出等功能。
课题8:设计一个模拟电梯工作过程的图形演示系统。要求所设计的电梯能符合市场上大多数系统的要求。
课题8:学生搭配问题。
一班有m个女生,有n个男生(m不等于n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上。每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴。
请设计一系统模拟动态地显示出上述过程,要求如下:
1)输出每曲配对情况;
2)计算出任何一个男生(编号为x)和任意女生(编号为y),在第k曲配对跳舞的情况至少求出k的两个值;
3)尽量设计出多种算法及程序。
提示:用队列来解决比较方便。
三)树的操作及应用。
课题9:树与二叉树的转换的实现。以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
课题10:二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
课题11:采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。
要求:1)描述压缩基本符号的选择方法。
2)运行时的压缩原文件的规模应不小于5k。
3)提供恢复文件与原文件的相同性对比功能。
课题12:设计程序以实现构造哈夫曼树的哈夫曼算法。
要求:1)可以使用实验工具的有关功能。
2)要能演示构造过程。
3)求解出所构造的哈夫曼树的带权路径长度。
课题13:设计程序完成如下功能:对给定的图结构,实现求解最小生成树的kruskal算法,并给出求解过程的动态演示。
四)图的操作及应用。
课题14:图的遍历和生成树求解实现。
要求:1)先任意创建一个图;
2)图的dfs,bfs的递归和非递归算法的实现。
3)最小生成树(两个算法)的实现,求连通分量的实现。
4)要求用邻接矩阵、邻接表、十字链表多种结构存储实现。
课题15:设计程序完成如下功能:对给定的图结构和起点,产生其所有的深度优先搜索遍历序列,并给出求解过程的动态演示。
课题16:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的prim算法,并给出求解过程的动态演示。
课题17:学校超市选址问题(带权有向图的中心点)
设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。
课题18(校园导航问题):
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
课题19(马的遍历问题):设计程序完成如下要求:在中国象棋棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子能按象棋的规则不重复地走过棋盘上的每一位置。
要求:1)依次输出所走过的各位置的坐标。
2)最好能画出棋盘的图形形式,并在其上动态地标注行走过程。
3)程序能方便地地移植到其它规格的棋盘上。
课题20:在8×8的国际象棋棋盘上,如果在放置若干个马后,使得整个棋盘的任意空位置上所放置的棋子均能被这些马吃掉,则称这组放置为棋盘的一个满覆盖。若去掉满覆盖中的任意一个棋子都会使这组放置不再是满覆盖,则称这一满覆盖为极小满覆盖。
设计程序完成如下要求:
要求:1)求解一个极小满覆盖。
2)最好能画出棋盘的图形形式,并在其上动态地演示试探过程。
3)程序能方便地移植到其它规格的棋盘上。
课题21:在中国象棋棋盘上实现上一课题的任务。
要求:除了上一课题的要求外,还要考虑到“别腿”的规定。
五)查找操作及应用。
课题22:设计散列表实现**号码查找系统。
基本要求:1)设每个记录有下列数据项:**号码、用户名、地址;
2)从键盘输入各记录,分别以**号码和用户名为关键字建立散列表;
3)采用一定的方法解决冲突;
4)查找并显示给定**号码的记录;
5)查找并显示给定用户名的记录。
扩展要求:1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
六)排序操作及应用。
课题23:给出一组实验来比较下列排序算法的时间性能:快速排序、堆排序、希尔排序、冒泡排序、归并排序(其它排序也可以作为比较的对象)
要求:1)时间性能包括平均时间性能、最好情况下的时间性能、最差情况下的时间性能等。
2)实验数据应具有说服力,包括:规模范围要大(如从100到10000),数据的初始特性类型要多,因而需要具有随机性;实验数据的组数要多,即同一规模的数组要多选几种不同类型的数据来实验。实验结果要能以清晰的形式给出,如图、表等。
3)算法所用时间必须是机器时间,也可以包括比较和交换元素的次数。
4)实验分析及其结果要能以清晰的方式来描述,如数学公式或图表等。
5)要给出实验的方案及其分析。
1 数据结构课程设计指导书
数据结构课程设计 指导书。一。选题要求。1.基本数据结构的操作 设计出相关数据结构的相关函数库,以便在程序设计中调用。2.相关应用 利用相关函数库描述一个实际问题。3.每个学生至少选做一题。二。设计要求。1 编程实现逻辑结构 存储结构及各种基本函数以及常用函数 自己确定函数 函数形式及理由 2 最好...
数据结构课程设计指导书
数据结构。课。程。设。计。指。导。书。目录。一 课程设计的基本任务3 二 课程设计的基本要求3 三 课程设计的基本步骤和方法4 四 课程设计说明书 含报告的书写规范5 五 附录 课程设计大纲等内容13 一 课程设计的基本任务。数据结构是一门涉及多门课程的课程,难度较大,需要较好的c语言的程序设计和调...
数据结构课程设计指导书
数据结构。课。程。设。计。指。导。书。一 课程设计的基本任务3 二 课程设计的基本要求3 三 课程设计的基本步骤和方法4 四 课程设计说明书 含报告的书写规范5 五 附录 课程设计大纲等内容13 一 课程设计的基本任务。数据结构是一门涉及多门课程的课程,难度较大,需要较好的c语言的程序设计和调试能力...