数据结构和算法课程设计题目_第1页
数据结构和算法课程设计题目_第2页
数据结构和算法课程设计题目_第3页
数据结构和算法课程设计题目_第4页
数据结构和算法课程设计题目_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北方民族大学课程设课程名称:数据结构与算法院(部)名 称:信息与计算科学学院组长姓名学号同组人员姓名指导教师姓名:纪 峰设计时间:201067-2009627一、数据结构与算法课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员不得重复)1编写函数实现顺序表的建立、查找、插入、删除运算。2、编写函数分别实现单链表的建立、查找、插入、删除、逆置算法。3、编写函数实现双向链表的建立、插入、删除算法。4、编写函数实现顺序栈的进栈、退栈、取栈顶的算法。5、编写函数实现链栈的进栈、退栈、取栈顶的算法。6、编写函数实现双向顺序栈的判空、进栈、出栈算法。7、编写函数实现循环队列的判队空、取队头元素、

2、入队、出队算法。8、编写函数实现链环队列的判队空、取队头节点、入队、出队算法。9、编写函数实现串的,求串长、连接、求字串、插入、删除等运算。10、分别实现顺序串和链串的模式匹配运算。11、实现二叉树的建立,前序递归遍历和非递归遍历算法。12、实现二叉树的建立,中序递归遍历和非递归遍历算法。13、实现二叉树的建立,后序递归遍历和非递归遍历算法。14、实现二叉树的中序线索化,查找 *p 结点中序下的前驱和后继结点。15、分别以临接表和邻接矩阵作为存储就够实现图的深度优先搜索和广度优先搜索 算法。16、利用线性探测处理冲突的方法实现散列表的查找和插入算法。(二)参考题目二(每三人一组,任选三个题目完

3、成)1. 运动会分数统计(限 1 人完成)任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目, 和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,*=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名 的学校。5)数据存入文件并能随时查询6)规定:输入数

4、据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有合理的提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关 的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据 要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书 上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用 1、全部合法数据; 2、整体非法数据; 3、局部非法数据。进行 程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;2. 飞机订票系统 任务:通过此系统可以实现如下功能: 录入: 可以录入

5、航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自 定)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市, 航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票: 可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3. 文章编辑功能:输入一页文字

6、,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过 80个字符,共N行;要求(1)分别统计 出其中英文字母数和空格数及整篇文章总字数; ( 2)统计某一字符串在文章中出现 的次数,并输出该次数; ( 3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符 号。输出形式:(1)分行输出用户输入的各行字符; ( 2)分 4行输出 "全部字母数 "、"数字个数"、"空格个数"、"文章总字数 "(

7、3)输出删除某一字符串后的文章;4. 宿舍管理查询软件1)任务:为宿舍管理人员编写一个宿舍管理查询软件 , 程序设计要求:A. 采用交互工作方式B. 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种 )2)查询菜单 : (用二分查找实现以下操作 )A. 按姓名查询B. 按学号查询C. 按房号查询3)打印任一查询结果(可以连续操作)5. 校园导航问题(限 1 人完成)设计要求:设计你的学校的平面图,至少包括 10 个以上的场所,每两个场所间可以 有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径。6. 教学计划编制问题 设计要求:针对计算

8、机系本科课程,根据课程之间的依赖关系(如离散数学应在数 据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。7. 散列法的实验研究 散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也 可以不同。两者是影响查询算法性能的关键因素。对于几种典型的散列函数构造方 法,做实验观察,不同的解决冲突方法对查询性能的影响。8. 图书借阅管理系统主要分为两大功能:1)图书管理 (增加图书、查询图书、删除图书、图书借阅、还书 );2)会员管理 (增加会员、查询会员、删除会员、借书信息 );9. 学生成绩管 实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、

9、排序、退出。10. 活期储蓄帐目管理 活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。11. 二叉排序树的实现 用顺序和二叉链表作存储结构1)以回车('n')为输入结束标志,输入数列L,生成一棵二叉排 序树T;2)对二叉排序树 T 作中序遍历,输出结果;3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行 操作 2);否则输出信息 “无 x”;12. 最小生成树问题设计要求:在 n 个城市之间建设网络,只需保证连通

10、即可,求最经济的架设方法。 存储结构采用多种。求解算法多种。13通. 讯录的制作 设计目的:用数据结构中的双向链表作数据结构,结合 C 语言基本知识。编 写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:本系统应完成一下几方面的功能:1)输入信息 enter();2)显示信息 display( );3)查找以姓名作为关键字 search();4)删除信息 delete();5)存盘 save( );6)装入 load( ) ;设计要求:1)每条信息至包含 :姓名(NAME )街道(STREET)城市(CITY)邮编(EIP) 国家(STAT巳几项2)作为一个完整的系

11、统,应具有友好的界面和较强的容错能力3)上机能正常运行,并写出课程设计报告14. 哈夫曼编码/译码器【问题描述】 设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选 择退出为止。【基本要求】1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)2)分别采用动态和静态存储结构3)初始化:键盘输入字符集大小 n、n 个字符和 n 个权值,建立哈夫曼树;4)编码:利用建好的哈夫曼树生成哈夫曼编码;5)输出编码;6)设字符集及频度如下表:字符 空格 A BCDEFGHI JK LM频度 1 8664 1 3 2232 1 03 21 1547571 5

12、3220字符 NOPQRSTUVWXYZ频度 5763151 4851 80238181 161【进一步完成内容】1)译码功能;2)显示哈夫曼树;3)界面设计的优化。15. 图书管理系统【问题描述】 设计一个计算机管理系统完成图书管理基本业务。【基本要求】1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只 将库存量增加;*借阅:如果一种书的现存量大于 0,则借出一本,登记借阅者的书证号和归还期限, 改变现存量;*归还:注销对借阅者的登记,改变

13、该书的现存量【进一步完成内容】1)系统功能的进一步完善;2)索引表采用树表。3)设计内容4)程序流程图5)源程序6)软件测试报告(包括所用到的数据及结果) 16.散列表的设计与实现【问题描述】 设计散列表实现电话号码查找系统。【基本要求】1)设每个记录有下列数据项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。【进一步完成内容】1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度

14、的变化。17. 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。设有一元多项式Am(x)和Bn(x).Am(X)=A 0+A1X1+A2X2+A3X3+ +AmXm123nBn(X)=BO+BlX +B2X +B3X + +Bnx请实现求 M(x)= Am(x)+Bn(x)、M(X)= Am(X)-Bn(X)和 M(X)= Am(X)Bn(X)。要求:1)首先判定多项式是否稀疏2)分别采用顺序和动态存储结构实现;3)结果M(x)中无重复阶项和无零系数项;4)要求输出结果的升幂和降幂两种排列情况18. 简易文本编辑器要求:1)具有图形菜单界面;2)查找,替换(等长,不等长),插入(

15、插串,文本块的插入)、块移动(行块,列块 移动),删除3)可正确存盘、取盘;4)正确显示总行数。19. 二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法 的实现,应包含建树的实现(。限 1 人完成) 要求:遍历的内容应是千姿百态的。树与二叉树的转换的实现。以及树的前序、后序的递归、非递归遍历算法,层次序 的非递归遍历算法的实现,应包含建树的实现。要求:遍历的内容应是千姿百态的。20. 学生搭配问题一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞 池的两边的椅子上 .每曲开始时 ,依次从男生和女生中各出一人配对跳舞 , 本曲没成功 配对者坐着等

16、待下一曲找舞伴 .请设计一系统模拟动态地显示出上述过程,要求如下 :1)输出每曲配对情况2)计算出任何一个男生(编号为X)和任意女生(编号为丫),在第K曲配对跳舞的情况.至 少求出 K 的两个值 .3)尽量设计出多种算法及程序 ,可视情况适当加分 提示 :用队列来解决比较方便 .21. 猴子吃桃子问题有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求:1)采用数组数据结构实现上述求解2)采用链数据结构实现上述求解3)采用递归实现上述求解22. 数制转换问题任意给定一个 M 进制的数 x ,请实现如

17、下要求1)求出此数 x 的 10进制值(用 MD 表示)2)实现对 x 向任意的一个非 M 进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解 决)。23.排序综合利用随机函数产生 N 个随机整数( 20000 以上),对这些数进行多种方法进行排序。要求:1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、 起泡排序、快速排序、选择排序、堆排序、归并排序) 。并把排序后的结果保存在不 同的文件中。2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比) ,找出 其中两种较快的方法。3)如果采用 4种或 4种以上的

18、方法者,可适当加分。24.学生成绩管理系统现有学生成绩信息文件1 (1.txt),内容如下姓名学号语文数学英语张明明01677882李成友02789188张辉灿03688256王露04564577陈东明05673847学生成绩信息文件 2(姓名 学号 语文2.txt)数学,内容如下英语陈果31576882李华明32889068张明东33484256李明国34504587陈道亮35475877试编写一管理系统 ,要求如下 :1)实现对两个文件数据进行合并 ,生成新文件 3.txt2)抽取出三科成绩中有补考的学生并保存在一个新文件 4.txt3)合并后的文件3.txt中的数据按总分降序排序(至少采

19、用两种排序方法实现)4)输入一个学生姓名后 ,能查找到此学生的信息并输出结果 (至少采用两种查找方法实 现)5)要求使用结构体 ,链或数组等实现上述要求 .6)采用多种方法且算法正确者 ,可适当加分.25. 图的遍历的实现要求:1) 先任意创建一个图;2)图的DFS,BFS的递归和非递归算法的实现3)要求用有向图和无向图分别实现4)要求用邻接矩阵、邻接表多种结构存储实现26. 线索二叉树的应用要求:实现线索树建立、插入、删除、恢复线索的实现27. 稀疏矩阵应用要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现(1)稀疏矩阵的存储(2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置28.树的应用

20、 要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法, 层次序的非递归算法的实现,应包含建树的实现。29. 文本文件单词的检索与计数 设计要求与分析: 要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成 且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现 在文本中的行号、在该行中出现的次数以及位置。该设计要求可分为三个部分实现: 其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一 个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词, 输入一个单词,检索并输出该单词所在的行号、该行中出现的次

21、数以及在该行中的 相应位置。(1).建立文本文件(2)给定单词的计数(3)检索单词出现在文本文件中的行号、次数及其位置(4)主控菜单程序的结构 头文件包含 菜单选项包含 建立文件、单词定位、单词计数、退出程序 选择 1-4 执行相应的操作,其他字符为非法。30. 任意长的整数加法) 问题描述:设计一个程序实现两个任意长的整数的求和运算。 基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程 序。要求输入和输出每四位一组,组间用逗号隔开。如: 1,0000,0000,0000,0000。31. 串的查找和替换 问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所

22、有给定 的单词替换为另外一个单词,再存盘。32.约瑟夫环问题描述:编号为1, 2n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针 方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的 m 值,从他的顺时针方向上的下一个开始重新从 1 报数,如此下去,直至所有人全 部出列为止,设计一个程序求出出列顺序。基本要求:1、利用单循环链表作为存储结构模拟此过程;2、键盘输入总人数、初始报数上限值 m 及各人密码;3、按照出列顺序输出各人的编号。33. 构造可以使 n 个城市连接的最小生成树问题描述: 给定一个地

23、区的 n 个城市间的距离网,用 Prim 算法或 Kruskal 算法建立 最小生成树,并计算得到的最小生成树的代价。基本要求:1、城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的 定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。 要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最 小生成树的代价。2、表示城市间距离网的邻接矩阵(要求至少 6个城市, 10条边)3、最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。34. 客户消费积分管理系统问题描述: 针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行

24、不同程度的打折优惠。基本要求:1. 采用一定的存储结构进行客户信息的存储;2. 对客户的信息可以进行修改、删除、添加;3. 能够根据消费情况进行客户积分的计算;4. 根据积分情况实行不同程度的打折优惠;35. 产品进销存管理系统 问题描述:针对某一种行业的库房的产品进销存情况进行管理。 基本要求:1. 采用一定的存储结构对库房的货品及其数量进行分类管理;2. 可以进行产品类的添加、产品的添加、产品数量的添加;3. 能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;36. 特殊矩阵的压缩存储算法的实现) 问题描述: 对于特殊矩阵可以通过压缩存储减少存储空间。 基本要求:1. 针对多种特

25、殊矩阵进行压缩存储,并能显示压缩后的相关地址和值;2. 输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值;37. 算术表达式的求解 问题描述:给定一个算术表达式,通过程序求出最后的结果。基本要求: 1从键盘输入要求解的算术表达式; 2采用栈结构进行算术表达式的求解过程; 3能够判断算术表达式正确与否; 4对于错误表达式给出提示; 5对于正确的表达式给出最后的结果;38. 实时监控报警系统 问题描述:建立一个报警和出警管理的系统 基本要求:1. 采用一定的存储结构存储报警信息,要求有内容、时间;2. 有一次的出警就应该在待处理的信息中删除这条信息;3. 记录出警信息;4. 待处理信

26、息过多时会发出警告;39. 车厢调度 问题描述:假设停在铁路调度站入口处的车厢序列的编号一次为 1,2,3,4。设计 一个程序,求出所有可能由此输出的长度为 4 的车厢序列。40.迷宫问题(栈)问题描述:以一个 m*n 的长方阵表示迷宫, 0和 1分别表示迷宫中的通路和障碍。设计一个程 序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论 。 基本要求:首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。 求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的方向,如:对于下列数据的迷宫,输出的一条通路为:(1,1,1), (1,2,2) ,(3,2,3),(3,1,2),。测试数据: 迷宫的测试数据如下:左下角( 1, 1)为入口,右下角( 8, 9)为出口。实现提示: 计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某个方向进行探 索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出 口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设的 迷宫没有通路。可以二维数组存储迷宫数据,通常设定入口点的下标为(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论