数据结构课程设计任务书一、课程设计目的本课程设计的目的考察学生对常见数据结构及相关算法的综合应用能力,达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,解决实际问题中数据的合理存储表示,并根据相应的存储结构设计效率较高的算法实现对问题的求解;通过此次课程设计进一步培养学生良好的程序设计技巧和分析问题解决问题的能力。
二、课程设计题目课程设计题一:同学录设计目的:1.掌握线性表的数据存储。
2.掌握线性表的基本操作。
3.掌握查找的基本算法。
具体功能:1.对同学基本信息进行录入,应能分类录入不同阶段的同学信息,同学信息包括同学姓名、身份证号、联系电话、qq号码、爱好、联系地址、邮箱等信息;2.对同学信息进行查询,可按同学姓名、地址、年龄段等多种方式进行查询;3.对同学信息进行排序,可按同学姓名、年龄、地址、qq号等多种方式查询;;4.对同学信息进行修改;5.对同学信息进行删除;6.可以对同学的信息进行不同方式的展示。
设计要求:1.要求用文件实现对信息的保存;2.选用链表和顺序表均可;3.要求用面向对象程序设计思想实现。
课程设计题二:算术题测试程序设计目的:1.掌握栈的存储结构。
2.掌握栈基本操作的实现。
3.能引用栈解决相关的实际问题。
具体功能:1.能随机出题,题数由用户输入确定,算术题包括加减乘除四则运算,表达式项数应不限,可以包含括号;2.需要进行表达式的合法性验证;3.用户交互输入答案;4.计算机核对用户答案;5.能对用户的测试评分;6.实现多用户系统,并对用户的用户名和得分保存到文件,此功能选作。
设计要求:1. 要求用面向对象程序设计思想实现;2. 系统具有一定的容错性;3. 要求具有较好的交互性。
课程设计题三:哈夫曼树及其应用设计目的:熟悉树的各种存储结构及其特点。
掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。
设计内容:欲发一封内容为AABBCAB ……(共长100 字符,其中:A 、B 、C 、D 、E 、F分别有7 、9 、12 、22 、23、27个)的电报报文,实现哈夫曼编码和译码。
设计要求:分析系统需求。
建立哈夫曼树。
进行哈夫曼编码,并求出平均编码长度。
译码。
对编码好的内容进行译码。
课程设计题四:交通咨询系统设计设计目的:熟练掌握迪杰斯特拉算法和费洛伊德算法,能够利用它们解决最短路径问题。
能够解决工程项目实施过程中的关键路径问题。
设计内容:设计一个交通咨询系统,能让旅客咨询从任一个城市定点到另一个城市定点之间的最短路径或最低花费或最少时间等问题。
对于不同的咨询要求、输出城市间的路程或所需时间或所需花费。
设计要求:建立交通网络网的存储结构。
总体设计要画流程图。
提供程序测试方案。
界面友好。
课程设计题五:排序算法比较一、设计目的1.掌握各种排序的基本思想。
2.掌握各种排序方法的算法实现。
3.掌握各种排序方法的优劣分析及花费的时间的计算。
4.掌握各种排序方法所适应的不同场合。
二、设计内容和要求利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。
课程设计题六、迷宫问题非递归求解任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;课程设计题七散列表的设计与实现【问题描述】设计散列表实现电话号码查找系统。
【基本要求】1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3) 采用一定的方法解决冲突;4) 查找并显示给定电话号码的记录;5) 查找并显示给定用户名的记录。
【进一步完成内容】1) 系统功能的完善;2) 设计不同的散列函数,比较冲突率;3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
课程设计题八银行业务活动的模拟任务:假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。
因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。
如果某个窗口的业务员正空闲,则可上前输业务。
反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。
编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。
功能要求:1).实现数据的输入;2).各个窗口数据的访问和输出;3)当前窗口的人员分布情况动态显示。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计。
请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
课程设计题九停车场管理任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
要求:以栈模拟停车场,以队列模拟车场外的便道。
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。
栈以顺序存储结构实现,队列以链表结构实现。
课程设计题十基于医院分诊系统的排队策略1)问题的提出:近年来,随着医疗事业的发展,医院的规模不断扩大,科室门类划分的也越来越细,随之而来的是病人排队挂号和看病变的繁琐,等待时间变长,为此,需要制定一种良好的排队策略,减少病人的等待时间,提高医院的服务质量。
2)问题的假设:1,我们假设医院实行八小时工作制,一天工作八小时,即480分钟。
2,医院门诊分为普通号和专家号,普通号一个科室有数位医生,专家号一个科室仅有一个医生,并且将普通号和专家号相互独立,以方便模拟。
3,我们将病人分为A类和B类,对于A类病人,我们仅进行一次诊断,即用户挂号后进入队列,在进行一次诊断后即完成诊治。
B类病人需要进行两次诊断和一次检查,在完成一次诊断后,医生开出检查意见,病人进行检查,完成后病人需返回科室进行第二次诊断,在第二次完成后即完成诊治。
4,病人的产生使用一般的随机数生成,同理,病人的诊治时间也使用随机时间。
5,实际中,每位医生每天接诊的人数是有一定限制的,尤其是专家门诊。
但考虑病人来源的数据无论自实际数据库,还是来自根据实际情况的随机模拟数据,各类病人的数量都对应了实际的各科室接诊病人的限制。
6,对于由于到达时间过晚,部分病人将无法完成诊断,我们将忽略这部分病人。
3)两种策略的制定:一级分诊队列模式: 每个诊室队列只对应一个诊区候诊队列,我们将之记作Q,一般排队规则是:①刚完成挂号的病人,添加在Q的末尾;②按医嘱完成体检的病人,直接插入在Q的首部。
这种排队规则广泛应用于中小医院。
二级分诊队列模式: 每个诊室队列对应一个候诊区候诊队列和一个候诊厅候诊队列,我们将前者记作Q1,后者记作Q2。
一般情况下,因为诊区空间限制,Q1的人数限制在2、3人左右;而候诊厅空间较大,所以对Q2的人数不作限制。
一般排队规则是:①刚完成挂号的病人,添加在Q2的末尾;②按医嘱完成体检的病人,直接插入在Q2的首部;③医师始终对Q1中的首位病人诊治,每位病人诊治结束时,若Q2不空,则Q2的首位病人脱离Q2,进入Q1的尾部。
这种排队规则广泛应用于大中型医院。
提示:病人及挂号时间可以先通过随机数生成存储在文件,然后逐个读取病人信息及达到时间进行处理。
三、课程设计要求:1、每人一题,且需独立完成。
2、每人的设计程序必须为可执行的exe文件,且需指导教师验收合格。
学生程序必须在课程设计的最后一天交由指导教师验收合格。
过期不再验收程序,如程序验收不合格或在规定时间内未经指导教师验收,则视为该生程序没有完成。
3、每人必须在规定时间内到机房做程序,指导老师将严格考勤,上机期间严禁做与课程设计无关的事情。
指导教师将随时抽查。
4、每人必须撰写课程设计报告并上交纸质稿(格式附后)。
5、上交材料包括课程设计报告电子稿和程序代码电子稿(每位同学先建立一个文件夹,取名规则为“学号姓名”,文件夹里存放上交电子内容,分别是“学号+姓名+报告”和“学号+姓名+程序”,每班取一文件夹名,取名规则为班级号,内放该班同学上交内容,每班学习委员统一收齐后拷贝给指导老师。
特别注意,上交的程序必须是在相应的编程环境下存在的源程序文件,不能是*.txt或*.doc文件等。
四、课程设计评分标准:1.程序设计质量(占40%)2.课程设计报告质量(占30%)3.平时表现(占30%)五、上机时间安排表(以实验课表为准)课程设计的时间及教师安排附:课程设计报告格式。
1、需求分析说明(说明为何做该题目,程序最终需要完成的功能,从其需求上说明。
)2、总体设计(从总体上说明该题目的框架,用文字和图表说明)3、详细设计(对数据结构进行详细的描述,设计好相应数据结构以及其操作功能,要求用C++设计成类;用文字详细描述每个功能实现的算法及思路。
)4、实现部分(主要描述程序调试过程,报告中只要贴入核心代码)5、程序测试(给出各测试数据及其对应的测试结果,和程序运行图贴于此处。
并能对程序运行结果分析之,且需提出改进算法。
)6、总结注:全文字体用宋体小四,标题用黑体小三,所有行间距为1.25,段落间距为0。
封面需统一如下所示《数据结构与算法设计》课程设计报告题目:学生姓名:学号:班级:指导教师:2012年月日。