数据结构课程设计题目许又泉1.docx
- 文档编号:11950518
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:12
- 大小:24.19KB
数据结构课程设计题目许又泉1.docx
《数据结构课程设计题目许又泉1.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计题目许又泉1.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构课程设计题目许又泉1
以下题目可供选择,原则上一人一题
Ø12月16日请小组组长沈明将学生的选题情况发给我。
(做一个表格、填写好姓名、学号、课题名称)
Ø12月26日下午在实验室5427或5428演示各自程序并回答指导教师提问、提交打印文档的电子文档。
Ø12月29日提交所有电子及打印文稿
一、数据结构课程设计要求
1.学生必须仔细阅读“10网本数据结构课程设计相关事宜”,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上2小时的上机来调试C或C++语言设计的程序,总共至少要上机调试程序20小时。
属于教师指定的安排上机时间学生不得缺席。
二、数据结构课程设计题目
1. 运动会分数统计(限1人完成)
任务:
参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:
7、5、3、2、1,前三名的积分分别为:
5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)
功能要求:
1) 可以输入各个项目的前三名或前五名的成绩;
2) 能统计各学校总分,
3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5) 数据存入文件并能随时查询
6) 规定:
输入数据形式和范围:
可以输入学校的名称,运动项目的名称
输出形式:
有中文提示,各学校分数为整形
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;
2. 飞机订票系统(限1人完成)
任务:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
3. 文章编辑(限1人完成)
功能:
输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
4. 纸牌游戏
任务:
编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:
这时正面向上的牌还有哪些?
5. 宿舍管理查询软件(限1人完成)
1) 任务:
为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:
A. 采用交互工作方式
B. 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
2) 查询菜单:
(用二分查找实现以下操作)
A. 按姓名查询
B. 按学号查询
C. 按房号查询
3) 打印任一查询结果(可以连续操作)
6. 地图着色问题(限1人完成)
设计要求:
已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。
7. 校园导航问题(限1人完成)
设计要求:
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
8. 学校超市选址问题(带权有向图的中心点)(限1人完成)
设计要求:
对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。
请为超市选址,要求实现总体最优。
9. 教学计划编制问题(限1人完成)
设计要求:
针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。
10. 散列法的实验研究(限1人完成)
散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。
两者是影响查询算法性能的关键因素。
对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。
11. 图书借阅管理系统(限1人完成)
主要分为两大功能:
1) 图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
2) 会员管理(增加会员、查询会员、删除会员、借书信息);
12. 学生成绩管理(限1人完成)
实现功能:
输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。
13. 活期储蓄帐目管理(限1人完成)
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:
1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;
2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
14. 二叉排序树的实现(限1人完成)
用顺序和二叉链表作存储结构
1) 以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排 序树T;
2) 对二叉排序树T作中序遍历,输出结果;
3) 输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;
15. 最小生成树问题(限1人完成)
设计要求:
在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
存储结构采用多种。
求解算法多种。
16. 通讯录的制作(限1人完成)
设计目的:
用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。
编写一个通讯录管理系统。
以把所学数据结构知识应用到实际软件开发中去。
设计内容:
本系统应完成一下几方面的功能:
1) 输入信息——enter();
2) 显示信息———display();
3) 查找以姓名作为关键字———search();
4) 删除信息———delete();
5) 存盘———save();
6) 装入———load();
设计要求:
1) 每条信息至包含:
姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项
2) 作为一个完整的系统,应具有友好的界面和较强的容错能力
3) 上机能正常运行,并写出课程设计报告
17. 哈夫曼编码/译码器(限1人完成)
【问题描述】
设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。
【基本要求】
1) 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)
2) 分别采用动态和静态存储结构
3) 初始化:
键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;
4) 编码:
利用建好的哈夫曼树生成哈夫曼编码;
5) 输出编码;
6) 设字符集及频度如下表:
字符空格ABCDEFGHIJKLM
频度1866413223210321154757153220
字符NOPQRSTUVWXYZ
频度5763151485180238181161
【进一步完成内容】
1) 译码功能;
2) 显示哈夫曼树;
3) 界面设计的优化。
18. 图书管理系统(限1人完成)
【问题描述】
设计一个计算机管理系统完成图书管理基本业务。
【基本要求】
1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2) 对书号建立索引表(线性表)以提高查找效率;
3) 系统主要功能如下:
*采编入库:
新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
*借阅:
如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
*归还:
注销对借阅者的登记,改变该书的现存量。
【进一步完成内容】
1) 系统功能的进一步完善;
2) 索引表采用树表。
3) 设计内容
4) 程序流程图
5) 源程序
6) 软件测试报告(包括所用到的数据及结果)
19. 散列表的设计与实现(限1人完成)
【问题描述】
设计散列表实现电话号码查找系统。
【基本要求】
1) 设每个记录有下列数据项:
电话号码、用户名、地址;
2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
3) 采用一定的方法解决冲突;
4) 查找并显示给定电话号码的记录;
5) 查找并显示给定用户名的记录。
【进一步完成内容】
1) 系统功能的完善;
2) 设计不同的散列函数,比较冲突率;
3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
20. 走迷宫游戏(限1人完成)
程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。
游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
要求:
1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
2) 迷宫的墙足够结实,老鼠不能穿墙而过;
3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:
墙变路、路变墙;
5) 找出走出迷宫的所有路径,以及最短路径。
利用序列化功能实现迷宫地图文件的存盘和读出等功能
21. 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。
(限1人完成)
设有一元多项式Am(x)和Bn(x).
Am(x)=A0+A1x1+A2x2+A3x3+…+Amxm
Bn(x)=B0+B1x1+B2x2+B3x3+…+Bnxn
请实现求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x)。
要求:
1) 首先判定多项式是否稀疏
2) 分别采用顺序和动态存储结构实现;
3) 结果M(x)中无重复阶项和无零系数项;
4) 要求输出结果的升幂和降幂两种排列情况
22. 利用栈求表达式的值,可供小学生作业,并能给出分数。
(限1人完成)
要求:
建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价
23. 简易文本编辑器(限1人完成)
要求:
1) 具有图形菜单界面;
2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除
3) 可正确存盘、取盘;
4) 正确显示总行数。
24. 二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
(限1人完成)
要求:
遍历的内容应是千姿百态的。
25. 树的应用(限1人完成)
要求:
实现树与二叉树的转换的实现。
以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
26. 学生搭配问题(限1人完成)
一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.
请设计一系统模拟动态地显示出上述过程,要求如下:
1) 输出每曲配对情况
2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.
3) 尽量设计出多种算法及程序,可视情况适当加分
提示:
用队列来解决比较方便.
27. 敢死队问题(限1人完成)
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行此战士任务。
如果前一个战士没完成任务,则要再派一个战士上去。
现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。
如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,接着去执行任务。
以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
要求:
至少采用两种不同的数据结构的方法实现。
如果采用三种以上的方法者,可加分。
28. 猴子吃桃子问题(限1人完成)
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。
用多种方法实现求出原来这群猴子共摘了多少个桃子。
要求:
1) 采用数组数据结构实现上述求解
2) 采用链数据结构实现上述求解
3) 采用递归实现上述求解
4) 如果采用4种方法者,适当加分
29. 数制转换问题(限1人完成)
任意给定一个M进制的数x,请实现如下要求
1) 求出此数x的10进制值(用MD表示)
2) 实现对x向任意的一个非M进制的数的转换。
3) 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
30. 排序综合(限1人完成)
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。
要求:
1) 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。
并把排序后的结果保存在不同的文件中。
2) 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
3) 如果采用4种或4种以上的方法者,可适当加分。
31. 学生成绩管理系统(限1人完成)
现有学生成绩信息文件1(1.txt),内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
学生成绩信息文件2(2.txt),内容如下:
姓名 学号 语文 数学 英语
陈果 31 57 68 82
李华明 32 88 90 68
张明东 33 48 42 56
李明国 34 50 45 87
陈道亮 35 47 58 77
…. .. .. .. …
试编写一管理系统,要求如下:
1) 实现对两个文件数据进行合并,生成新文件3.txt
2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt
3) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)
4) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)
5) 要求使用结构体,链或数组等实现上述要求.
6) 采用多种方法且算法正确者,可适当加分.
32. 图的遍历和生成树求解实现(限1人完成)
要求:
1) 先任意创建一个图;
2) 图的DFS,BFS的递归和非递归算法的实现
3) 最小生成树(两个算法)的实现,求连通分量的实现
4) 要求用邻接矩阵、邻接表、十字链表多种结构存储实现
33. 线索二叉树的应用(限1人完成)
要求:
实现线索树建立、插入、删除、恢复线索的实现。
34. 稀疏矩阵应用(限1人完成)
要求:
实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。
三、上交相关内容要求
上交的成果的内容必须由以下四个部分组成,缺一不可
1.上交源程序:
学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);
2.上交程序的说明文件:
(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;
3.课程设计报告:
(保存在word文档中,文件名要求按照"姓名-学号-课程设计报告"起名,如文件名为"张三-001-课程设计报告".doc)按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求
b)概要设计
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?
问题如何解决?
),算法的改进设想。
4.课设总结:
(保存在word文档中)总结可以包括:
课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容
5、电子文档(源程序、程序使用说明、课程设计报告)由课程设计小组组长统一收集交给我。
6、其它要求的打印文档(1、学生需交材料:
任务书(双面打印)2份、评阅表(打印空表手写)1份、课程设计报告1份,并按封面、任务书、评阅表、目录、正文的顺序订好,课程设计实践笔记本一本,所有材料装入课程设计文件袋中。
)
7、12月26日下午在实验室5427或5428演示各自程序并回答指导教师提问、提交打印文档的电子文档。
8、12月29日提交所有电子及打印文稿
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)