《数据结构》课程设计。
课程设计时间:10~16周周二下午。
一、课程设计的目的。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求。
1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成,其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求。
b)概要设计。
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构,请写出该存储结构的定义)。
c)详细设计。
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析。
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
e)课程设计总结。
总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;
4、课程设计提交内容:
a) 每组的课程设计结果要进行检查和演示,程序源**和文档文件等必须上交,作为考核内容的一部分。
b) 课程设计报告。可以结合3中的每个步骤对自己负责编写的部分重点描述。在电子文件中写明小组各成员具体分工,在ppt演示中明确说明。
所有内容打包成文件夹,文件夹内应至少包括:源**、课程设计报告、可执行文件、ppt等。
三、上交作业及成绩评定。
1、上交要求。
按照课程设计提交内容准备,其中课程设计报告以打印文稿的形式上交,电子文档在16周课程结束前统一拷贝至各班学习委员处,最后由交至各班学习委员交至2503办公室。
2、评分标准。
根据完成任务的情况,分别在第15周和第16周周二下午,各小组以ppt和源**执行文件形式在机房进行系统演示,面向全体同学讲解。课程设计报告书的质量、演示情况和课程设计过程中的工作态度等按照%加权综合打分。上机程序检查未通过者、最终无设计报告者或严重抄袭他人设计者,成绩为不及格。
备注: 每班分为6~8个小组,每组4人,特殊情况可5人一组。自由分组,分组名单由各班学习委员确认后在第10周周四下午4:00前交给任课老师。
每个题目每班最多只能有二个小组选做,评分时根据各题目难度确认难度系数,由得分和难度系数相乘得出最终分数。每组最少要完成二个题目,完成三个和三个以上者可加分。
每小组之间题目及内容不得雷同,否则成绩最高为及格。
四、课程设计内容:
一、敢死队问题 (0.8)
有m个敢死队员要炸掉敌人的一个碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。
如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,请你设计一个程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
要求:至少采用两种不同的数据结构的方法实现。
二、设计一个航空客运定票系统。基本要求如下: 1.0
1、 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
2、 系统能实现的操作和功能如下:
1) 查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
2) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。若需要,可登记排队候补;
3) 承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
3、 实现提示:两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。
由于预约人数无法预计,队列也应以链表作为存储结构。
三、校园导游咨询(为来访的客人提供各种信息服务)1.0
1、 基本要求:
1) 参考校园设计平面图,在校园景点选10个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
2) 为来访客人提供图中任意景点相关信息的查询。
3) 为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
2、 实现提示:一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。顶点和边均含有相关信息。
四、停车场管理问题 1.0
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一个程序模拟该停车场的管理。
实现要求] 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。
实现提示] 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘a’,,1,5)表示1号牌照车在5这个时刻到达,而(‘d’,,5,20)表示5号牌照车在20这个时刻离去。
整个程序可以在输入信息为(‘e’,0,0)时结束。本题可用栈和队列来实现。
五、全国交通咨询模拟 1.1
问题描述】处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。
基本要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。
2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。
4)旅途中耗费的总时间应该包括中转站的等候时间。
5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
测试数据】实现提示】(1)对全国城市交通图和班车时刻表及飞机航班表的编辑,应该提供文件形式输入和键盘输入两种方式。飞机航班表的信息应包括:起始站的出发时间、终点站的到达时间和票价;列车时刻表则需根据交通图给出各个路段的详细信息,例如:
对于从北京到上海的火车,需给出北京至天津、天津至徐州及徐州至各段的出发时间、到达时间和票价信息。
2)以邻接表作交通图的存储结构,表示边的结点内除含有邻接点的信息外,包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。
六、编制一个求解迷宫通路的图形界面演示程序。 1.0
问题描述:1) 输入一个任意大小的迷宫,任设起点、终点、障碍,用栈求出一条走出迷宫的路径,并显示在屏幕上。
2) 根据用户界面提示,用键盘输入。home键设置迷宫起点,end键设终点,上下左右箭头键移动,enter键添加墙,del键删除墙,完成后按f9键演示,esc键退出。
3)本程序要求至少得出一条成功的通路,也可求得全部路径(也可全部路径)。此外,也可尝试保存或载入测试文件(此功能不做强行要求)。
4)当未输入起点时,消息显示“error: you must set startplace.”;未输入终点时,显示“error:
you must set endplace.” 找到路径时,屏幕显示足迹,并在消息框出现path found,否则消去足迹,显示path not found.
七、****会成绩数据库 1.1
****会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括,400,1500米,跳高,跳远,标枪,铅球铁饼等。进入系统后可以输入和修改某个项目的结果情况,可以按各系院编号输出总分;按总分排序;按男团体总分排序 ;按系院编号查询;按项目编号查询;按女团体总分排序。
分步实施:1) 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2) 完成最低要求:建立一个文件,包括某个系,5个项目的得分情况,能对文件中的信息进行扩充(追加),修改和删除;
3) 进一步要求:完成对多个系,多个项目的得分排序,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。
键盘输入:系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)
数据结构课程设计题目
题目1实现两个链表的合并。要求 编一程序将a表和b表归并成一个新的递增有序的单链表c 值相同的元素均保留在c表中 并要求利用原表的空间存放c。测试数据 1 a表 30,41,15,12,56,80 b表 23,56,78,23,12,33,79,90,55 2 a表 30,41,15,12,56,8...
数据结构课程设计题目
题目1 图的遍历。功能 实现图的深度优先,广度优先遍历算法,并输出原图结构及遍历结果。分步实施 1 初步完成总体设计,搭好框架 2 完成最低要求 两种必须都要实现,写出画图的思路 3 进一步要求 画出图的结构,有兴趣的同学可以进一步改进图的效果。要求 1 界面友好,函数功能要划分好。2 总体设计应画...
数据结构课程设计题目
数据结构课程设计 题目与要求。一 实验学时 两周。二 要求 1 题目从以下题目中选择,完成程序设计及设计文档。2 程序的要求 实现的功能要求尽量完善。完善基本功能的基础上,再扩充其它功能。3 课程设计说明书的格式要求 a4纸打印,格式设置统。一 规范 美观。三 题目。1.运动会分数统计 限1 人完成...