第一篇:2012级数据结构课程设计题目及要求
2012级数据结构课程设计题目及要求
一、要求
本次课程设计可以从以下的题目中任选其一,每个题目基本实现的要求是:
1、有菜单功能
2、有读写数据存盘功能
3、有数据图形显示或动画显示。
成品应包括以下内容:
1、程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
二、设计题目
三、上交作业及成绩评定
1、上交要求
1)上交课程设计报告和源程序代码。
2)每小组写一份设计报告,以电子版形式上交,排版一定要规范,否则成绩下降一档。
3)以自己的“2012+专业+学号+姓名”建立文件夹,文件夹内容包括程序源码、设计报告的电子文档。
4)课程设计时间为二周,要求每人上机学时不低于20学时。
2、评分标准
根据完成任务的情况(必须进行系统演示)、课程设计报告书的质量和课程设计过程中的工作态度等按照30%、50%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。上机程序检查未通过者、无设计报告者以及严重抄袭他人设计者,成绩为不及格。
注:
每班分为十几个小组,每组2人。
每个题目每班最多只能有两小组选做。
每小组之间不得雷同,否则成绩最多及格。
第二篇:数据结构课程设计题目要求2010-12-22
1.二叉树的遍历和应用
问题描述:以二叉链表表示二叉树,在此基础上实现对二叉树的遍历和应用。要求: 创建二叉树
输出二叉树
二叉树的先序、中序、后序遍历
二叉树的按层遍历
统计二叉树的叶子结点、计算二叉树的深度
设计主函数测试该类。2.猴子选大王(约瑟夫环)
问题描述:一堆猴子都有编号,编号是1,2,3….m,这群猴子(m个)按照1-m的顺序围坐一圈,从1开始数,没数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。输入数据:输入m,n。(m,n为整数,且n 问题描述:设计一个利用赫夫曼算法的编码和译码系统。要求:从键盘给出字符及频度,建立赫夫曼树并输出; 4.图的建立及输出 问题描述:建立图的存储结构(图的类型可以是有向图,无向图;有向网,无向网,任选一组或以上),能够输入图的顶点和边的信息,并存储到相应的存储结构中,而后输出图的邻接矩阵。5.常用排序算法的实现 问题描述:对10000个随机整数,利用插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序,归并排序等方法进行排序,并统计每一种排序上机所花费时间并列出统计表。数据的输入:整数 数据的输出:递增 6.顺序结构、动态链表结构下的一元多项式的加法,减法的实现 问题描述:先建立一元多项式Am(x)和Bn(x) 要求:完成两个多项式的加法,减法;按照降幂排列显示。 7.二叉平衡树 问题描述:从一颗空树开始创建,保证数的有序性,同时要针对数的平衡性做些微调。最终要把创建的二叉排序树转换成二叉平衡树。基本要求:创建(插入,调整),输出。 参考资料:1.《数据结构 (C语言版)》严蔚敏、吴伟民 主编 清华大学出版社 2004.11 2.《数据结构课程设计案例精编(用C/C++描述)》,李建学 等 编著,清华大学出版社 2007.2 3.《数据结构:用面向对象方法与C++语言描述》,殷人昆 主编,清华大学出版社 2007.6 课程设计报告的规范要求: 1.需求分析 进行需求分析,确定每个模块的功能要求。即根据设计题目的要求,充分地分析和理解问题,明确问题要求做的内容。2.算法设计 进行概要设计和详细设计。说明用到的数据结构定义,主程序的流程及各程序模块的调用关系。并用自然语言描述每个模块所设计的算法。3.测试数据 列出对于给定的输入所产生的输出结果。4.源程序及系统文件使用说明 附上关键数据结构的定义及关键算法的源代码。5.心得体会 谈谈课程设计过程中的收获,遇到的问题及解决问题过程的思考,程序调试能力的思考,对数据结构这么课程的思考,在课程设计过程中对《数据结构》课程认识等的思考。6.参考文献 参考文献要注明作者,出版社,出版日期。 7.提交内容包括:a.完整的程序系统(电子方式提交,以学号命名文件夹,由班长统一刻录成光盘上交);b.课程设计报告(字数不少于1500字)。8.课程设计考核方法及成绩评定:课程设计成绩分两部分,设计报告占50%,设计作品占50%;其中设计报告需要答辩。9.报告封面格式 课程设计报告 题目: 班级: 学号: 姓名: 数据结构课程设计 一、教学目的和要求 课程设计是加强学生实践能力的一个强有力手段。综合课设1主要针对数据结构和c/c++语言开展的实践性课程。要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++)程序并上机调试的基本方法。课程设计要求学生在完成程序设计的同时能够写出比较规范的课程设计报告。培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 二、课程设计要求 1、选好题目:每题一人,每班每个题目只允许一人选做,学习委员将选题情况在课设第一天统计上交。 2、课设报告独立思考,独立完成:课设报告出现雷同超过60%,不论什么原因,一律不及格。班和班之间,相同题目的同学,可以组成小组,相互讨论,共同完成课程设计中各任务的设计和调试要求。小组成员间,算法思路可以相同,程序可以类似,但不能完全一样。课设报告不能雷同超过60%。 3、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。 4、设计要点: ⑴需求分析: 在该部分中叙述总共几个模块,每个模块的功能要求。 ⑵系统设计 总体设计:定义某个数据结构的抽象数据类型及其他算法的功能说明。 详细设计:在此定义存储结构,每个部分的算法设计说明(建议描述算法采用流程图)。⑶编码实现 各个算法实现的源程序,对每个题目要有相应的源程序(每个功能模块采用不同的函数实现)。源程序要按照程序的规则来编写,要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。程序能够运行,要有基本的容错功能,尽量避免出现操作失误时出现死循环。⑷调试分析 给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。时间复杂度分析,每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。 ⑸课设总结:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。 5、实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时文件夹的取名规则为:“课设题目(***设计完成)”,如“资源管理系统的设计与实现(张三设计完成)”。该文件夹下包括三个目录:“源代码”、“可执行文件”、“张三_课程设计报告”。由学习委员按规定时间统一上交)。 6、报告提交 形式: 纸介质(要求B5纸张打印,加封皮)和电子文档。 三、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 优秀:答辩所有问题都能答出+报告良好 良好:答辩所有问题都能答出+报告一般 中等:答辩大部分问题能答出+报告良好 及格:答辩大部分问题能答出+报告一般 不及格:答辩几乎答不出问题 或者 报告几乎都是代码 或者 雷同部分达到60% 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)----- 1、设计任务(题目要求)----- 2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)----- 3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)---- 4、编码实现(重要函数的实现代码)----- 5、调试分析(选择多组测试数据、运行截图、结果分析)----- 6、课设总结(心得体会)----- 7、谢辞----- 8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在150行内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 四、课程设计的题目 1、运动会分数统计 2、集合的并、交和差运算的程序 3、长整数的加法运算 4、一元多项式计算器 5、车厢调度问题 6、文章编辑 7、识别广义表的头或尾的演示 8、哈夫曼树及其编码 9、校园导游咨询 10、地图着色问题 11、内部排序算法比较 12、哈希表的设计与实现——线性探测再散列 13、哈希表的设计与实现——二次探测再散列 14、哈希表的设计与实现——链地址法 15、火车售票系统 16、图书管理系统 17、客户消费积分管理系统 18、产品进销存管理系统 19、学生成绩管理系统的设计与实现 20、通讯录管理系统的设计与实现——线性表 21、通讯录管理系统的设计与实现——哈希表 22、简单目录管理系统的设计与实现 23、最短旅程的求解 24、迷宫求解 25、家谱管理系统的设计与实现 26、宿舍管理查询软件 27、语言中平衡符号的问题 28、算术表达式求解 29、表达式求值,可供小学生作业,并能给出分数 30、数制转换问题 31、病人就医管理 32、九宫格问题 33、银行业务模拟 34、停车场管理 35、关键路径问题 36、地铁站建设问题 37、服装销售系统 38、歌星大奖赛 39、机房机位预约模拟系统 40、歌曲信息管理系统 41、简单的试题库管理系统 42、学生点名系统 43、猜数游戏 五、数据结构课程设计的具体内容 要求:全部采用数据结构课程中的内容实现,采用C或C++实现,逻辑结构只能选线性结构、树型结构、图型结构、集合结构中的一种,不能用数据库。 1、运动会分数统计 问题描述: 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为11,7,4,2,1;还有些项目只取前三名,得分顺序为5,3,2。哪些项目取前五名或前三名由学生自己设定。写一个统计程序产生各种成绩单和得分报表。基本要求: (1)各项目结束时,输入前三名或前五名的项目编号、运动员姓名、校名和名次(成绩);(2)产生各学校的成绩单,内容包括每个学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分,并统计各学校总分; (3)可以按学校编号、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;(5)可以按项目编号查询取得前三或前五名的学校;(6)演示程序以用户和计算机的对话方式执行。 2、集合的并、交和差运算的程序 问题描述: 编制一个能演示执行集合的并、交和差运算的程序。基本要求: ⑴集合的元素限定为大小写字母符[′a′….′z ′′A′….′Z ′],集合的大小n<53。 ⑵集合输入的形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。 ⑶输出的运算结果字符串中将不含重复字符或非法字符。⑷演示程序以用户和计算机的对话方式执行。 3、长整数的加法运算 问题描述: 设计一个实现任意长的整数进行加法、减法运算的演示程序。 基本要求: ⑴利用链表实现长整数的存储,每个结点含一个整型变量。提醒:任何整型变量int的范围是-(2^15-1)~(2^15-1)。 ⑵输入和输出形式按照中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。如:-2345,6789,3211; ⑶演示程序以用户和计算机的对话方式执行。 4、一元多项式计算器 问题描述: 设有一元多项式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)。基本要求: ⑴首先判定多项式是否稀疏; ⑵分别采用顺序和链式结构实现; ⑶结果M(x)中无重复阶项和无零系数项; ⑷要求输出结果的升幂和降幂两种排列情况。⑸演示程序以用户和计算机的对话方式执行。 5、车厢调度问题 问题描述: 假设停在铁路调度站(如教科书中图3.1(b)所示)入口处的车厢系列的编号依次为1,2,3,…n。设计一个程序,求出所有可能由此输出的长度为n 的车厢系列。基本要求: ⑴设计一个程序,求出由一个编号依次为1,2,、、、,n的车厢序列可能产生的所有出栈系列。⑵利用双向栈存储结构实现调度站和输出序列这两个栈的空间共享。 ⑶对于每个输出序列演示出所有操作序列的变化过程。 6、文章编辑 问题描述: 输入一页文字,可以统计出文字、数字、空格的个数。基本要求: ⑴静态存储一页文章,每行最多不超过80个字符,共N行。⑵分别统计出其中英文字母和空格数及整篇文章总字数。⑶统计某一字符串在文章中出现的次数,并输出该次数。 ⑶删除某一子串,并将后面的字符前移。 ⑷存储结构使用线性表,分别用几个子函数实现相应的功能。 7、广义表的应用 要求实现的广义表的建立、查找、输出、取表头和取表尾以及求深度等。 本设计用一个主控菜单程序控制,共分为6个子系统。(1)建立广义表(2)输出广义表(3)结点的查找(4)求广义表表头(5)求广义表表尾(6)求广义表的深度 演示程序以用户和计算机的对话方式执行。 8、哈夫曼树及其编码 问题描述: 设计一个利用哈夫曼算法的编码系统,重复地显示并处理以下项目,直到选择退出为止。基本要求: ⑴初始化:键盘输入或文件输入字符集大小n、n个字符和n个权值,建立哈夫曼树; ⑵编码:利用建好的哈夫曼树生成哈夫曼编码; ⑶输出树形的哈夫曼树及哈夫曼编码; ⑷设字符集及频度如下表: 字符 空格 A B C D E F G H I J K L M 频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32 字符 N O P Q R S T U V W X Y Z 频度 1 15 48 16 80 23 8 18 1 51 1 9、校园导游咨询 问题描述: 设计一个校园导游程序,为来访的客人提供各种信息查询服务。基本要求: ⑴设计华东交通大学南区的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。⑵为来访客人提供图中任意景点相关信息的查询。 ⑶为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 10、地图着色问题 问题描述: 设计地图着色软件,对江西地图中11个地级市进行着色,要求相邻地级市所使用的颜色不同,并保证使用的颜色最少。基本要求: ⑴地图采用图型数据结构,每个地级市为一个节点,边表示对应的两个地级市相邻。⑵设计着色算法,保证邻接点不是同一种颜色。⑶演示程序以用户和计算机的对话方式进行。 11、内部排序算法比较 问题描述: 试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。基本要求: ⑴至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。 ⑵待排序表的表长不小于100,其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。⑶最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 12、哈希表的设计与实现——线性探测再散列 问题描述: 设计哈希表实现电话号码查找系统。基本要求: ⑵ 设每个记录有下列数据项:电话号码、用户名、地址; ⑶ 从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表; ⑷ 采用线性探测再散列的方法解决冲突; ⑸ 查找并显示给定电话号码的记录; ⑹ 查找并显示给定用户名的记录。 13、哈希表的设计与实现——二次探测再散列 问题描述: 设计哈希表实现电话号码查找系统。基本要求: (1)设每个记录有下列数据项:电话号码、用户名、地址; (2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表;(3)采用二次探测再散列的方法解决冲突;(4)查找并显示给定电话号码的记录;(5)查找并显示给定用户名的记录。 14、哈希表的设计与实现——链地址法 问题描述: 设计哈希表实现电话号码查找系统。基本要求: (1)设每个记录有下列数据项:电话号码、用户名、地址; (2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表;(3)采用链地址法解决冲突; (4)查找并显示给定电话号码的记录;(5)查找并显示给定用户名的记录。 15、火车售票系统 问题描述: 通过此系统可以实现售票、退票、车票剩余情况查询等功能。每张车票包含车次、车厢、座位信息。基本要求: ⑴在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、车厢、座位情况。⑵为简单起见,在此假设所有出售的车票均为同一车次的车票。⑶购票时,可以显示余票信息,并可以选择买哪张票。 ⑷退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。⑸演示程序以用户和计算机的对话方式进行。 16、图书管理系统 问题描述: 设计一个计算机管理系统完成图书管理基本业务。基本要求: ⑴每种书的登记内容包括书号、书名、著作者、现存量、库存量和借阅信息; ⑵对书号建立索引顺序表以提高查找效率; ⑶系统主要功能如下: ①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; ②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; ③归还:注销对借阅者的登记,改变该书的现存量。⑷演示程序以用户和计算机的对话方式进行。 17、客户消费积分管理系统 问题描述: 针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。基本要求: ⑴采用一定的存储结构进行客户信息的存储; ⑵对客户的信息可以进行修改、删除、添加; ⑶能够根据消费情况进行客户积分的累加; ⑷根据积分情况,对客户实行不同程度的打折优惠; ⑸演示程序以用户和计算机的对话方式进行。 18、产品进销存管理系统 问题描述: 针对某一种行业的库房的产品进销存情况进行管理。基本要求: ⑴采用一定的存储结构对库房的货品及其数量进行分类管理; ⑵可以实现进库房时,产品类的添加、产品的添加、产品数量的添加; ⑶能够查询库房每种产品的总量、进货日期、销出数量、销售时间等; ⑷可以实现产品出库房时,产品数量修改以及达到临界值提醒的功能; ⑸演示程序以用户和计算机的对话方式进行。 19、学生成绩管理系统的设计与实现 问题描述: 能够实现对学生成绩的常用管理功能。基本要求: ⑴采用一定的存储结构对学生成绩进行管理; ⑵可以进行成绩的录入、查询、修改、删除等操作; ⑶可以查询某门课程的平均分,学生的排名,不同分数段的学生人数及学生信息等; ⑷可以查询某学生的各课程分数,总分及学生的班级排名等; ⑸可以按学号排序输出全部学生的成绩信息、总分及班级排名等。⑹演示程序以用户和计算机的对话方式进行。20、通讯录管理系统的设计与实现——线性表 任务:利用线性表完成通讯录的一般性管理工作:(1)添加信息; (2)显示信息:可以按照手机或联系人的姓名拼音排序显示;(3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息;(5)删除信息;(6)保存到文件; 要求: (1)每条记录至少包括姓名、手机、QQ、电子邮箱、城市、邮编等信息。(2)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 21、通讯录管理系统的设计与实现——哈希表 任务:利用哈希表完成通讯录的一般性管理工作:(1)添加信息; (2)显示信息:可以按照手机或联系人的姓名拼音排序显示;(3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息;(5)删除信息;(6)保存到文件; 要求: (1)每条记录至少包括姓名、手机、QQ、电子邮箱、城市、邮编等信息。(2)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 22、简单目录管理系统的设计与实现 任务:利用树型结构设计并实现一个简单的目录管理系统,该系统可以对所有目录进行管理,如目录的新建、删除、查询、目录名称修改、按某种顺序输出所有目录(树的遍历操作)、以树型结构输出所有目录等功能。 23、最短旅程的求解 任务:有n个城市(编号从1到n),它们之间通过双向的道路相连。那里只有n-1条道路,但是,它们的连接方式使得从任意城市都可以走到其他的任何城市。一天,某个游客到了编号为k的城市。他计划从城市k开始,游遍所有的城市m1,m2,m3……,mi,…(不一定要按这个顺序旅游)。每个城市mi都是不同的,并且,也与k不同。他想要以最短的路程旅行完所有的城市(从城市k开始)。请你帮助计算一下,旅游完上述的城市最短需要多少路程。 24、迷宫求解 任务:以一个m*n的长方阵表示迷宫,设置两个门,一个入口,另一个是出口。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 要求: ⑴首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。 ⑵求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑶输出迷宫图,以#号表示障碍物,„ ‟空格表示非障碍物,*表示通路。 25、家谱管理系统的设计与实现 任务:设计并实现一个简单的家谱管理系统。基本要求: (1)建立家族关系并能存储到文件中。(2)实现家族成员的添加、删除功能。 (3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。(4)按某种顺序输出家谱信息(树的遍历操作)、以树型结构输出家谱资料等功能。(5)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 26、宿舍管理查询软件 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:(1)采用交互工作方式; (2)可以增加、删除、修改信息; (3)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序;(4)查询: a.按姓名查询 ;b.按学号查询 ;c按房号查询(5)输出任一查询结果(可以连续操作)。 27、语言中平衡符号的问题 要求:设C语言程序代码中包含如下符号/* */,(),[],{},编写程序检测一段C代码中上述符号是否正确。 28、算术表达式求解 问题描述:给定一个算术表达式,通过程序求出最后的结果。基本要求: (1)从键盘输入要求解的算术表达式; (2)采用栈结构进行算术表达式的求解过程;(3)能够判断算术表达式正确与否;(4)对于错误表达式给出提示; (5)对于正确的表达式给出最后的结果,并可以显示运算的整个过程。(6)演示程序以用户和计算机的对话方式进行。 29、表达式求值,并能给出分数,可供小学生作业练习的小程序 要求: ⑴建立试题库文件,从文件中,随机抽取n个题目; ⑵题目涉及加减乘除,带括号的混合运算; ⑶随时可以退出程序; ⑷保留历史分数,能回顾历史,给出与历史分数比较后的评价; ⑸界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 30、数制转换问题 任意给定一个M进制的数x,实现如下要求:(1)求出此数x的10进制值; (2)实现对X向任意的一个非M进制的数的转换; (3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决);(4)提供交互界面,以便人机交互。 31、病人就医管理 编写一个程序实现就医管理。在病人就医过程中,主要发生三件事: ⑴预检,分科室,挂号。不同科室都是从1号开始挂号。如,内科1号,外科1号,五官科1号等; ⑵病人到达诊室,将病历本交给护士,排到等待队列中候诊。⑶护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。要求程序采用菜单方式,其选项及功能说明如下: ⑴挂号------预检,分科室,生成就诊号。 ⑵排队------输入病人的就诊号,加入到病人排队队列中。 ⑶就诊-------病人排队队列中最前面的病人就诊,并将其从队列中删除。⑷查看排队------从队首到队尾列出所有的排队病人的病历号。⑸下班---------退出运行。 32、九宫格问题 在一个3×3的九宫格中有1—8这8个数字,混乱排序,一个空格随机地摆放在一个格子里。现要求将该九宫格调整为正常按逆序的格式。调整的规则是:每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。编程实现这一问题的求解,并输出求解过程。 33、银行业务模拟 问题描述:设银行有四个服务窗口,一个等待队列, 每个窗口均可以办理存款、取款、挂失、还贷业务,每种业务所需的服务时间不同,优先级不同。客户到达银行后,先到打号机上打号,号票上包括到达时间、编号和需要办理的业务,然后在银行内等候。当任一服务窗口空闲时,处理等候客户中优先级最高,排在最前面的客户的业务。写一个上述银行业务的模拟系统,通过模拟方法求出客户在银行内逗留的平均时间和每个窗口办理的客户数及办理的每种业务数。基本要求:每个客户到达银行的时间和需要办理的业务随机产生,输出一天客户在银行的平均逗留时间和每个窗口每天办理的客户数和每种业务数。 34、停车场管理 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端);若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上依次等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 35、关键路径问题 问题描述: 设计一个程序,求出完成整项工程至少需要多少时间,以及整项工程中的关键活动。基本要求: ⑴对一个描述工程的AOE网,应判断其是否能够顺利进行。⑵若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。 36、地铁站建设问题 问题描述: 以南昌为例,假设要在南昌各辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要设计一个程序,合理安排地铁的建设路线,使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。基本要求: ⑴从包含各辖区的外部地图文件中读入辖区名称和各辖区间的直接距离。⑵根据读入的各辖区的距离信息,计算出应该建设哪些辖区间的地铁路线。⑶输出应该建设的地铁路线及所需要建设的总里程信息。37.服装销售系统 要求:包含三类用户:管理员、店长、销售员; (1)管理员功能:自身密码修改;其他用户的添加、删除;用户信息的修改、统计;商品信息的添加、修改、删除、查找、统计。 (2)店长功能:登录、注销、自身密码修改、自身信息修改;商品信息的修改、统计;查看日报表、月报表、商品销售量报表、营业员业绩报表;查找、浏览、修改商品储备信息。 (3)销售员功能:商品浏览、查找、出售商品,以及查看自己本日报表、本月报表。38.歌星大奖赛 要求: (1)在歌星大奖赛中,每位歌手演唱完,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。歌手的人数在大奖赛开始时确定。(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。 (3)建立数据文件,保存各位歌星比赛时的所有评委分数,包括最高分,最低分和最后得分,并对比赛结果进行排序输出; (4)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 39.机房机位预约模拟系统 20台机器,从早8点到晚8点,每两个小时一个时间段。需要实现如下功能:(1)查询,根据输入时间,输出机位信息; (2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近时间段的空机时间段。另外,如果用户要求在非空时间上机,则将用户信息插入该时间段的等待列表。(3)退出预定,根据输入的时间撤销该时间的预定。 (4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息。40.歌曲信息管理系统 制作一个歌曲信息管理系统,要求提供以下功能: (1)歌曲信息包括歌曲名、作者、演唱者、发行年月等。(2)可以对歌曲信息进行输入、删除、浏览。 (3)可以根据歌曲名、作者、演唱者查询歌曲信息。(4)提供按作者分组显示功能。(5)用文件存储信息。41.简单的试题库管理系统 试题库管理系统要求对试题进行集中、有序、有效的管理,更新方便、查询快捷、组卷灵活,降低劳动强度。 实现新试题库的建立,界面友好、操作方便。按试题的难易程度、题型、章节等分类录入、修改、删除试题,通过文本文件导入试题,并可以实现对相关试题的查询。按照要求自动组卷、生成文本格式试卷并输出,便于用户存档和编辑。同时,该系统还具备一定的安全性,通过用户名和密码登录。42.学生点名系统 要求: (1)读入外部文件存储的学生信息,显示学生历史点名记录;(2)可选择学生班级,对不同班级的学生进行点名。 (3)对学生按学号显示名字,进行点名,并接收键盘输入的信息,分别代表缺课、请假、正常;(4)将点名结果连带日期一起回存到外部文件。(5)提供交互界面,以便人机交互。43.猜数游戏 由计算机“想”一个数,并给出数值范围,请人猜,如果人猜对了,则一局游戏结束。否则,计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录游戏者每次猜的次数,以此反映出猜数者“猜”的水平。 要求: (1)把猜数记录最好的前五名的数据保存在外部文件中,包括游戏者的名字,成绩和排名,并排序输出。 (2)提供交互界面,以便人机交互。 一、表达式求值(2-3人) 问题描述:从键盘上输入中缀算数表达式,计算出表达式的值。 基本要求: 1.程序对所输入的表达式做简单的判断,如果表达式有错,能给出适当的提示。 2.能处理+、-、×、÷ 这四种基本的算术运算符。 二、停车场管理(3-4人) 问题描述:假设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,如果车场内已经停满了汽车,则后来的汽车只能在门外的便道上等候。一旦停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门后,为它让路的车辆再按原次序进入停车场。每辆汽车在离开时都要依据停留时间交费(在便道上停留的时间不计费)。 基本要求: 1.汽车的输入信息格式为:到达/离去的标识,汽车牌照号码,到达/离去的时间。 2.对于不合理的输入信息有适当的提示,例如要求离开的汽车没在停车场或便道时有相应的提示。 提示:以栈模拟停车场,用队列模拟便道,另设一个栈临时停放为让路而从车场退出的车。 三、约瑟夫环问题(2人) 问题描述:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数作为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m是停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。 四、航空客运订票系统(4-5人) 问题描述:业务主要包括查询航线和客票预订的信息、客票预订和办理退票等。 基本要求: 1.系统必须能存储以下数据信息: 航班信息:飞机抵达城市、航班号、飞机号、起降时间、票价、总座位数和剩余座位数、已订票的客户名单。客户信息:客户姓名、证件号、座位号。2.系统能实现的功能: 承办订票业务:根据客户提出的要求查询该航班信息,若满足要求,则为客户办理订票手续,输出座位号。 退票业务:根据客户提供的航班号和订票数量办理退票手续。查询功能:查询航线信息(根据飞机的降落地点输出航班号、飞机好、起降时间、票价和剩余座位数)和客户预订信息(根据客户证件号输出航班号、飞机号和座位号) 五、汉诺塔游戏程序(2-3人) 问题描述:在平面上有三个位置A、B、C,在A位置上有n个大小不等的圆盘、小盘压在大盘上形成圆盘堆。要求将A位置的N个圆盘通过B位置移动到C位置上,并按同样的顺序叠放。移动圆盘时必须遵循以下规则: 1.每一次只能移动一个圆盘 2.圆盘可以放在A、B、C任何一个塔座上 3.任何时刻都不能将大圆盘压在小圆盘上 基本要求: 圆盘的个数从键盘输入(如3-64等);用动画的形式在屏幕上显示盘的移动。六、八皇后问题(2人) 问题描述:八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 基本要求:统计总共有多少种摆法,并以一定方式输出摆好的格局。 七、简单个人图书管理系统(3-4人) 问题描述:学生在学习过程中拥有很多书籍,对购买的书籍进行分类和统计是一种良好的习惯。如果用文件来存储相关书籍的各种信息,包括书号、书名、作者名、价格和购买日期,辅之以程序对书籍信息进行统计和查询会使书籍管理工作轻松有趣。 基本要求: 1.在外存中用文件存储书籍相关信息 2.在内存中设计数据结构存储图书信息 3.能查找、删除、插入、更新 4.能按作者名对书籍进行排序并显示排序结果 八、双端队列(2人) 问题描述:双端队列是插入和删除操作可以在两端进行的线性表,表的两端分别称作端点1和端点2。设计双端队列的数据结构,实现入队、出队等基本操作。 提示:为便于操作,采用带头结点的双链表存储双端队列 九、迷宫问题(2人) 问题描述:迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。在给出入口和出口的前提下,给出动态的迷宫行走路线 基本要求: 1.设计数据结构存储迷宫 提示:用二维数组表示迷宫,1代表有障碍,0代表无障碍 2.设计存储结构保存入口到出口的通路 十、火车车厢重排问题(4-5人) 问题描述:一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号分别为1-n,即货运列车按照第n站到第1站的次序经过车站。为了便于从列车上卸掉相应的车厢,车厢的编号应与车站的编号相同,这样,在每个车站只要卸掉最后一节车厢。所以,给定任意次序的车厢,必须重新排列它们。车厢的重排工作可以通过转轨站完成。在转轨站中有一个出轨、一个入轨和一个缓冲轨,缓冲轨位于入轨和出轨之间。设缓冲轨按先进先出的方式运作,设计算法解决火车车厢重排问题。 基本要求:设计存储结构表示n个车厢、k个缓冲轨以及入轨、出轨。假设k=3。 十一、魔方阵(2人) 问题描述: 在一个n×n的矩阵中填入一个1到n2的数字(n为奇数),使得每一行、每一列、每条对角线的累加和都相等。 十二、简单个人电话号码查询系统(3-4人) 问题描述:人们在日常生活中经常要查找某个人或某个单位的电话号码,要求实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询。 基本要求: 1.在外存中用文件保存电话号码信息 2.在内存中设计数据结构存储电话号码信息 3.将电话号码信息按某一字段排序,以提高查找效率 4.提供插入、删除、修改等维护功能。 十三、直接插入排序基于单链表的实现(1人) 问题描述:采用单链表存储待排序数据,在其上实现直接插入排序算法。 基本要求:排序的数据的个数及其内容由用户从键盘上输入。 十四、患者看病过程模拟(2人) 问题描述:患者到医院看病的过程为先排队等候再看病治疗。在排队的过程中主要重复做两件事:一是患者到达诊室,将病历交给护士,排到等候队列中候诊;二是护士从等候队列中取出下一个患者的病历,该患者进入诊室看病。设计算法模拟该过程。 基本要求: 1.以菜单的形式供用户选择相应的操作 2.可以查看当前正在就诊的病人的信息 3.可以查询当前等候就诊的病人的信息 十五、汽车牌照数据的排序与快速查找(3人) 问题描述:在汽车数据的信息模型中,汽车牌照是关键字,而且是具有结构特点的一类关键字。因为汽车牌照号是数字和字母混编的,例如01B7328,这种记录集合是一个适用于多关键字进行排序的典型例子。 基本要求: 1.首先利用链式基数排序方法排序,然后利用折半查找方法实现对汽车记录按关键字查找 2.汽车记录集合可以人工录入,也可以按自动方式随机生成十六、求图的中心点(2人) 问题描述:假设有一个公司在某个地区有n个产品销售点,现根据业务需要打算在其中某个销售点上建立一个中心仓库负责向其他销售点提供产品。由于运输路线不同,运输费用也不同。假定每天需要向每个销售点运输一次产品,那么应将中心仓库建在哪个销售点上才能使运输费用最低。 十七、集合的交、并和差运算的实现(1-2人) 问题描述:用有序单链表表示集合,实现集合的交、并、差运算 基本要求: 空间复杂度为O(1) 十八、单链表实现十进制大整数运算(1-2人) 问题描述:使用单链表实现不限大小的整数,每个结点存储一位数字,要求实现加、减运算。即能从键盘上输入两个大整数,比如:***12345和-***11111,则加的结果应为:***01234;减的结果应为:***23456。 基本要求: 从键盘上输入运算数和运算符,输出结果。 十九、哈夫曼编码(4-5人) 问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这就要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双工信道(即可以双向传输信息的信道),每端都需要一个完成的编译码系统。试为这样的信息收发站写一个哈夫曼的编译码系统。 基本要求: 1.初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树。 2.编码。利用已建好的哈夫曼树,对正文进行编码。 3.译码。对编码好的内容进行译码。 4.打印编码。 二十、商品货架管理(2人) 问题描述:商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时需要倒货架,以保证生产商品较近的商品在较下的位置。用栈和队列作为周转,实现上述管理过程。 二十一、稀疏矩阵运算器(3人) 问题描述:实现两个稀疏矩阵的加、减、乘运算。 基本要求:可用三元组顺序表存储稀疏矩阵,矩阵的运算结果以通常的阵列形式输出。 二十二、校园导游程序(3-4人) 问题描述:用无向图表示你所在学校的景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等消息。 基本要求: 1.能查询各景点的相关信息 2.为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。 二十三、排序综合(2-3人) 问题描述:利用随机函数产生N个随机整数(20000以上),对这些数使用多种方法进行排序。 基本要求: 1.至少采用三种方法(希尔排序、快速排序、堆排序)实现上述问题求解 2.统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法 3.统计每种算法所用的比较次数和交换次数,最后列表显示 二十四、线索二叉树(1人) 问题描述:建立一个中序线索二叉树,并且完成中序遍历。求该中序线索二叉树上已知结点在中序的前驱和后继; 数据结构课程设计 一、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 优秀:答辩所有问题都能答出+报告良好 或 报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或 报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)----- 1、设计任务(题目要求)----- 2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)----- 3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)---- 4、编码实现(重要函数的实现代码)----- 5、调试分析(选择多组测试数据、运行截图、结果分析)----- 6、课设总结(心得体会)----- 7、谢辞----- 8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在3页内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现 6.集合的并、交和差运算的程序 7.运动会分数统计 8.一元多项式计算器 9.文章编辑 10.哈夫曼树及其编码 11.校园导游咨询 12.通讯录管理系统的设计与实现——单链表 13.地图着色问题 14.内部排序算法比较 15.火车售票系统 16.图书管理系统 17.客户消费积分管理系统 18.产品进销存管理系统 19.迷宫求解 20.通讯录管理系统的设计与实现——哈希表---线性探测再散列 21.语言中平衡符号的问题 22.算术表达式求解 23.数制转换问题 24.九宫格问题 25.停车场管理 26.关键路径问题 27.通讯录管理系统的设计与实现——哈希表——链地址法 28.歌星大奖赛 29.病人就医管理 30.简单目录管理系统的设计与实现 31.最短旅程的求解 32.通讯录管理系统的设计与实现——哈希表——二次探测再散列 33.宿舍管理查询软件 34.表达式求值,并能给出分数,可供小学生作业练习的小程序 35.服装销售系统 36.机房机位预约模拟系统 37.歌曲信息管理系统 38.学生点名系统 39.猜数游戏 三、数据结构课程设计的具体内容(想要优,必须实现“提高部分”的功能,其他,不用完成“提高部分”) 要求:全部采用数据结构课程中的内容实现,采用C或C++实现,逻辑结构只能选线性结构、树型结构、图型结构、集合结构中的一种,不能用数据库。 1.长整数的加法运算 基本要求:设计一个实现任意长的整数进行加法、减法运算的演示程序。 ⑴利用链表实现长整数的存储,每个结点含一个整型变量。提醒:任何整型变量int的范围是-(2^15-1)~(2^15-1)。 ⑵输入和输出形式按照中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。如:-2345,6789,3211; ⑶演示程序以用户和计算机的对话方式执行,可进行多次运算。 提高部分:增加利用顺序表存储结构来实现长整数的加、减和输出功能。2.通讯录管理系统的设计与实现——顺序表 基本要求:利用顺序表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。功能主要包括:(1)添加信息:可新增人员信息; (2)显示信息:可以按照手机号或联系人的姓名拼音排序显示;(3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息:修改完善人员信息;(5)删除信息:删除人员信息; (6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步存储通讯录信息。 3.广义表的应用 基本要求:要求实现的广义表的建立、查找、输出、取表头和取表尾以及求深度等。演示程序以用户和计算机的对话方式执行,并可进行多次交互。用一个主控菜单程序控制,共分为6个子功能。(1)建立广义表(2)输出广义表(3)结点的查找(4)求广义表表头(5)求广义表表尾(6)求广义表的深度。(7)求广义表的长度。提高部分:利用外部.txt文件输入数据信息建立广义表。4.学生成绩管理系统的设计与实现 基本要求:能够实现对学生成绩的常用管理功能。⑴采用一定的存储结构对学生成绩进行管理; ⑵可以进行成绩的录入、查询、修改、删除等操作; ⑶可以查询某门课程的平均分,学生的排名,不同分数段的学生人数及学生信息等; ⑷可以查询某学生的各课程分数,总分及学生的班级排名等; ⑸可以按学号排序输出全部学生的成绩信息、总分及班级排名等。⑹演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件同步存储学生成绩信息。5.家谱管理系统的设计与实现 基本要求: 设计并实现一个简单的家谱管理系统。(1)建立家族关系树,并能存储到外部文件中。(2)实现家族成员的添加、删除功能。 (3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。(4)按某种顺序输出家谱信息(树的遍历操作)、以树型结构输出家谱资料等功能。(5)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 提高部分:通过读取外部.txt文件,建立家族关系树,添加和删除后的结果同步到外部文件。6.集合的并、交和差运算的程序 基本要求:编制一个能演示执行集合的并、交和差运算的程序。 (1)集合的元素限定为大小写字母符[′a′….′z′′A′….′Z′],集合的大小n<53。(2)集合输入的形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去非法字符和重复字符。 (3)输出的运算结果字符串中将不含重复字符或非法字符。 (4)演示程序以用户和计算机的对话方式执行,可多次进行运算。提高部分:采用顺表和链式两种存储结构实现。 7.运动会分数统计 基本要求: 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,积分分别为11,7,4,2,1;有些项目只取前三名,积分分别为5,3,2。哪些项目取前五名或前三名在输入比赛结果时自己设定。写一个统计程序产生各种成绩单和得分报表。 (1)各项目结束时,输入项目编号、所有运动员的姓名、学校名称和比赛名次(成绩),并对前三名或前五名的运动员所在团体和学校,记录比赛积分; (2)产生每个学校的成绩单,内容包括该学校所取得的每项成绩的项目号、运动员姓名、名次(成绩),并统计学校总分; (3)实现按学校编号查询学校的比赛情况,查询结果包含参加各项目的项目编号、运动员姓名、取得的名次、比赛的积分、学校总分、团体总分等; (4)实现按项目编号查询取得前三或前五名的学校的名称;(5)演示程序以用户和计算机的对话方式执行,可多次操作。 提高部分:实现按学校编号排序输出(至少包括学校排名,学校编号,学校名称,学校总分);按男团总分排序输出(至少包括男团排名,学校名称,男团总分);按女团总分排序输出(至少包括女团排名,学校名称,女团总分); 8.一元多项式计算器 基本要求: 设有一元多项式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)。 ⑴首先判定多项式是否稀疏; ⑵要求结果M(x)中无重复阶项和无零系数项; ⑶要求输出结果的升幂和降幂两种排列情况。 ⑷演示程序以用户和计算机的对话方式执行,可进行多次运算。提高部分:采用顺表和链式两种存储结构实现。9.文章编辑 基本要求:输入一页文字,可以统计出文字、数字、空格的个数。 (1)利用外部.txt文件存储一页文章,每行最多不超过80个字符,共N行。(2)分别统计出其中英文字母和空格数及整篇文章总字数。(3)统计某一字符串在文章中出现的次数,并输出该次数。 (4)删除某一子串,并将后面的字符前移,对文章的修改,同步到.txt文件中。提高部分:采用顺表和链式两种存储结构实现。10.哈夫曼树及其编码 基本要求:设计一个利用哈夫曼算法的编码系统。 ⑴初始化:利用外部.txt文件输入字符集大小n、n个字符和n个权值,建立哈夫曼树; ⑵编码:利用建好的哈夫曼树生成哈夫曼编码; ⑶输出哈夫曼树及哈夫曼编码; ⑷演示程序以用户和计算机的对话方式执行,重复地显示并处理以上三个项目,直到选择退出为止。假设字符集及频度如下表: 字符 空格 A B C D E F G H I J K L M 频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32 字符 N O P Q R S T U V W X Y Z 频度 63 1 15 48 16 80 23 8 18 1 51 1 提高部分:输出树形的哈夫曼树。//////进行编码和译码 11.校园导游咨询 基本要求:设计一个校园导游程序,为来访的客人提供各种信息查询服务。⑴设计华东交通大学南区的校园平面图(无向图),所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。⑵为来访客人提供图中任意景点相关描述信息的查询。 ⑶为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短路径。提高部分:查询任意两个景点之间的所有路径。12.通讯录管理系统的设计与实现——单链表 基本要求:利用单链表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。功能主要包括:(1)添加信息:可新增人员信息; (2)显示信息:可以按照手机号或联系人的姓名拼音排序显示;(3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息:修改完善人员信息;(5)删除信息:删除人员信息; (6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步存储通讯录信息。13.地图着色问题 基本要求: 设计地图着色软件,对江西地图中11个地级市进行着色,要求相邻地级市所使用的颜色不同,并保证使用的颜色最少。 ⑴地图采用图型数据结构,每个地级市为一个节点,边表示对应的两个地级市相邻。⑵设计着色算法,保证邻接点不是同一种颜色。⑶输出着色结果。 ⑷演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件输入地图数据,并把着色结果追加到.txt文件内。14.内部排序算法比较 基本要求:试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。⑴至少采用三种方法实现对同一组数据的排序(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。 ⑵待排序表的表长不小于100,其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。⑶最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。⑷演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件存储各次排序的数据、排序的结果、结果的简单分析。15.火车售票系统 基本要求: 通过此系统可以实现售票、退票、车票剩余情况查询等功能。每张车票包含车次、车厢、座位信息。⑴在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、车厢、座位情况。⑵为简单起见,在此假设所有出售的车票均为同一车次的车票。同一车次,有多个车厢,每个车厢有多个座位。 ⑶购票时,可以显示余票信息,并可以选择买哪张票。 ⑷退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。⑸演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件同步存储车票的余票和已售票信息。16.图书管理系统 基本要求:设计一个计算机管理系统完成图书管理基本业务。 ⑴每种书的登记内容包括书号、书名、著作者、现存量、库存量和借阅信息; ⑵对书号建立索引顺序表以提高查找效率; ⑶系统主要功能如下: ①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; ②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; ③归还:注销对借阅者的登记,改变该书的现存量。⑷演示程序以用户和计算机的对话方式进行。提高部分:利用外部.txt文件同步存储图书信息。17.客户消费积分管理系统 基本要求:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。⑴采用一定的存储结构进行客户信息的存储; ⑵对客户的信息可以进行修改、删除、添加; ⑶能够根据消费情况进行客户积分的累加; ⑷根据积分情况,对客户实行不同程度的打折优惠; ⑸演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件同步存储客户和积分信息。18.产品进销存管理系统 基本要求:针对某一种行业的库房产品进行进销存情况的管理。⑴采用一定的存储结构对库房的货品及其数量进行分类管理; ⑵可以实现进库房时,产品类的添加、产品的添加、产品数量的添加; ⑶能够查询库房每种产品的总量、进货日期、销出数量、销售时间等; ⑷可以实现产品出库房时,产品数量修改以及达到临界值提醒的功能; ⑸演示程序以用户和计算机的对话方式进行。 提高部分:利用外部.txt文件同步存储库房产品的详细信息。19.迷宫求解 基本要求:以一个m*n的长方阵表示迷宫,设置两个门,一个入口,另一个是出口。设计一个程序,对任意随机生成的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。⑴首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。 ⑵求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。⑶输出迷宫图,以#号表示障碍物,„ ‟空格表示非障碍物,*表示通路。提高部分:同时实现递归和非递归两种求解算法。 20.通讯录管理系统的设计与实现——哈希表---线性探测再散列 基本要求:利用哈希表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:(1)添加信息:可新增人员信息; (2)显示信息:按照哈希表的存储位置信息排序显示; (3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息:修改完善人员信息;(5)删除信息:删除人员信息; (6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步存储通讯录信息。21.语言中平衡符号的问题 基本要求:设C语言程序代码中包含如下符号/* */,(),[],{},编写程序检测一段C代码中上述符号是否正确,并指出错在哪里。 提高部分:建立外部文件存储需要检测的c代码。22.算术表达式求解 基本要求:给定一个算术表达式,通过程序求出最后的结果。(1)从键盘输入要求解的算术表达式; (2)采用栈结构进行算术表达式的求解过程; (3)能够判断算术表达式正确与否;对于错误表达式给出提示;对于正确的表达式给出最后的结果,并可以显示运算的整个过程。 (4)演示程序以用户和计算机的对话方式进行。提高部分:建立外部.txt文件存储全部运算过程。23.数制转换问题 基本要求:任意给定一个M进制的数x,实现如下要求:(1)求出此数x的10进制值; (2)实现对X向任意的一个非M进制数的转换; (3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决);(4)提供交互界面,以便人机交互。 提高部分:必须实现进制M大于16的情况。24.九宫格问题 基本要求:在一个3×3的九宫格中有1—8这8个数字,混乱排序,一个空格随机地摆放在一个格子里,九宫格布局随机生成。现要求将该九宫格调整为正常按逆序的格式。调整的规则是:每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。编程实现这一问题的求解,并输出求解过程。提高部分:利用外部.txt文件同步记录九宫格的初始布局及求解过程。25.停车场管理 基本要求:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端);若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上依次等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 (1)为停车场编制按上述要求进行管理的模拟程序。(2)可随时查询停车场内及便道的停车情况。 (3)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步记录所有数据。26.关键路径问题 基本要求: 设计一个程序,求出完成整项工程至少需要多少时间,以及整项工程中的关键活动。 (1)从键盘输入一个描述工程的AOE网,并判断其是否能够顺利进行。 (2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。 (3)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步记录所有数据。 27.通讯录管理系统的设计与实现——哈希表——链地址法 基本要求:利用哈希表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:(1)添加信息:可新增人员信息; (2)显示信息:按照哈希表的存储位置信息排序显示; (3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息:修改完善人员信息;(5)删除信息:删除人员信息; (6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步存储通讯录信息。28.歌星大奖赛 基本要求: (1)在歌星大奖赛中,每位歌手演唱完,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。歌手的人数在大奖赛开始时键盘输入。(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。(3)保存每位歌星比赛时的所有评委分数,包括最高分,最低分和最后得分,并在比赛过程的任意时刻,都可对当前比赛结果排序输出; (4)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步记录所有数据。29.病人就医管理 基本要求:编写一个程序实现就医管理。在病人就医过程中,主要发生三件事: ⑴预检,分科室,挂号。不同科室都是从1号开始挂号。如,内科1号,外科1号,眼科1号等; ⑵病人到达诊室,将病历本交给护士,排到等待队列中候诊,不同科室,不同队列。⑶护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。程序采用菜单方式,其选项及功能说明如下: ⑴挂号------预检,分科室,生成就诊号。 ⑵排队------输入病人的就诊号,加入到不同科室的病人排队队列中。⑶就诊-------病人排队队列中最前面的病人就诊,并将其从队列中删除。⑷查看排队------从队首到队尾列出所有的排队病人的病历号。⑸下班---------退出运行。 提高部分:利用外部.txt文件同步记录所有就诊数据。30.简单目录管理系统的设计与实现 基本要求:利用树型结构设计并实现一个简单的目录管理系统。功能主要包括:(1)系统可以对所有目录进行管理,类似C盘、D盘、E盘; (2)实现子目录和文件的新建、删除、查询、子目录和文件名称修改等功能;(3)按某种顺序输出所有子目录及文件信息(树的遍历操作); 提高部分:以树型结构输出所有子目录和文件的信息。31.最短旅程的求解 基本要求:有n个城市(编号从1到n),它们之间通过双向的道路相连。那里只有n-1条道路,但是,它们的连接方式使得从任意城市都可以走到其他的任何城市。一天,某个游客到了编号为k的城市。他计划从城市k开始,游遍所有的城市m1,m2,m3……,mi,…(不一定要按这个顺序旅游)。每个城市mi都是不同的,并且,也与k不同。他想要以最短的路程旅行完所有的城市(从城市k开始)。求旅游完上述的城市最短需要多少路程。提高部分:输出最短旅程的详细旅游路线。 32.通讯录管理系统的设计与实现——哈希表——二次探测再散列 基本要求:利用哈希表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:(1)添加信息:可新增人员信息; (2)显示信息:按照哈希表的存储位置信息排序显示; (3)查找:用名字和手机号分别作为查找的依据,进行查找;(4)编辑信息:修改完善人员信息;(5)删除信息:删除人员信息; (6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步存储通讯录信息。33.宿舍管理查询软件 基本要求:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:(1)采用交互工作方式; (2)可以增加、删除、修改信息; (3)可实现按关键字(姓名、学号、房号)进行排序显示; (4)查询:a.按姓名查询、b.按学号查询、c.按房号查询,输出任一查询结果(可以连续操作)。提高部分:建立外部.txt文件,同步宿舍全部人员的数据,并按关键字房号排序存储。34.表达式求值,并能给出分数,可供小学生作业练习的小程序 基本要求: ⑴建立试题库文件,从文件中,随机抽取n个题目; ⑵题目涉及加减乘除,带括号的混合运算; ⑶随时可以退出程序; ⑷保留历史分数,能回顾历史,给出与历史分数比较后的评价; ⑸界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。 提高部分:保存所有曾经练习过的题目、输入的答案及对错到外部.txt文件。35.服装销售系统 基本要求:包含三类用户:管理员、店长、销售员; (1)管理员功能:自身密码修改;其他用户的添加、删除;用户信息的修改、统计;商品信息的添加、修改、删除、查找、统计。 (2)店长功能:登录、注销、自身密码修改、自身信息修改;商品信息的修改、统计;查看日报表、月报表、商品销售量报表、营业员业绩报表;查找、浏览、修改商品储备信息。 (3)销售员功能:商品浏览、查找、出售商品,以及查看自己本日报表、本月报表。(4)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。提高部分:利用外部.txt文件同步记录所有数据。36.机房机位预约模拟系统 基本要求:20台机器,从早8点到晚8点,每两个小时一个时间段。实现如下功能:(1)查询,根据输入时间,输出当前全部机位信息和可用空闲机位信息; (2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近时间段的空机信息。另外,如果用户要求在非空时间上机,则将用户信息插入该时间段的等待列表。(3)退出预定,根据输入的时间撤销该时间的预定。 (4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息。提高部分:利用外部.txt文件同步记录所有数据。37.歌曲信息管理系统 基本要求: (1)歌曲信息包括歌曲名、作者、演唱者、发行年月等。(2)可以对歌曲信息进行输入、删除、编辑、浏览。(3)可以根据歌曲名、作者、演唱者查询歌曲信息。(4)提供按作者分组显示功能。 提高部分:利用外部.txt文件同步记录所有数据。38.学生点名系统 基本要求: (1)读入外部文件存储的学生信息,包括姓名,学号;(2)可选择学生班级,对不同班级的学生分别进行点名; (3)对学生按在班编号显示名字,进行点名,接收键盘输入的点名时间和能代表缺课、请假、正常的点名信息; (4)查询各班学生的历史点名信息。(5)提供交互界面,以便人机交互。 提高部分:利用外部.txt文件同步记录所有数据。39.猜数游戏 基本要求:开始游戏后,输入用户名,由计算机随机“想”一个数,并给出数值范围,请人猜,如果人猜对了,则一局游戏结束,进入下一局。否则,计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录游戏者每次猜的次数,以此反映出猜数者“猜”的水平。 (1)把猜数记录最好的前五名的数据保存在一定的存储结构里,包括游戏者的名字,成绩和排名,并排序输出,每个用户只取最好成绩存储。(2)提供交互界面,以便人机交互。 提高部分:利用外部.txt文件同步记录所有数据。 -------- 四、教学目的和要求 课程设计是加强学生实践能力的一个强有力手段。综合课设1主要针对数据结构和c/c++语言开展的实践性课程。要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++)程序并上机调试的基本方法。课程设计要求学生在完成程序设计的同时能够写出比较规范的课程设计报告。培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 五、课程设计要求 1、选好题目:每题一人,每班每个题目只允许一人选做,学习委员将选题情况在课设第一天统计上交。 2、课设报告独立思考,独立完成:课设报告出现雷同超过60%,不论什么原因,一律不及格。 3、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。 4、设计要点: ⑴需求分析: 在该部分中叙述总共几个模块,每个模块的功能要求。 ⑵系统设计 总体设计:定义某个数据结构的抽象数据类型及其他算法的功能说明。 详细设计:在此定义存储结构,每个部分的算法设计说明(建议描述算法采用流程图)。⑶编码实现 各个算法实现的源程序,对每个题目要有相应的源程序(每个功能模块采用不同的函数实现)。源程序要按照程序的规则来编写,要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。程序能够运行,要有基本的容错功能,尽量避免出现操作失误时出现死循环。⑷调试分析 给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。时间复杂度分析,每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。 ⑸课设总结:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。 5、实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时文件夹的取名规则为:“课设题目(***设计完成)”,如“资源管理系统的设计与实现(张三设计完成)”。该文件夹下包括三个目录:“源代码”、“可执行文件”、“张三_课程设计报告”。由学习委员按规定时间统一上交)。 6、报告提交 形式: 纸介质(要求B5纸张打印,加封皮)和电子文档。第三篇:数据结构课程设计题目
第四篇:数据结构课程设计题目
第五篇:数据结构课程设计题目