一、设计目的 ..................................................................................................... 2 二、设计要求 ..................................................................................................... 2 三、设计选题 ..................................................................................................... 2 四、基础类题目 ................................................................................................. 4
(一)、停车场管理 ...................................................................................... 4
1、设计内容: ................................................................................... 4 2、设计要求: ................................................................................... 4 3、实验步骤 ....................................................................................... 5 4、程序调试及运行结果分析 ........................................................... 6 5、实验总结 ....................................................................................... 7 6、主要算法流程图 ........................................................................... 7 (二)、校园导游咨询 .................................................................................. 8
1、设计任务 ....................................................................................... 8 2、设计要求: ................................................................................... 8 3、实验步骤 ....................................................................................... 9 4、程序调试及运行结果分析 ........................................................... 9 5、实验总结 ..................................................................................... 10 6、主要算法流程图 ......................................................................... 11
五、提高题目: ............................................................................................... 12
(一)、试题三 ......................................................................................... 12
1、设计内容简介 ............................................................................. 12 2、算法设计说明 ............................................................................. 13 3、测试结果 ..................................................................................... 14 4、分析与探讨 ................................................................................. 14 (二)、纪念品发放事件 ............................................................................ 14
1、设计内容简介 ............................................................................. 14 2、算法设计说明 ............................................................................. 16 3、测试结果 ..................................................................................... 16 4、分析与探讨 ................................................................................. 16
六、指导教师 ................................................................................................... 17 七、基础题源代码 ........................................................................................... 17
(一)、停车场管理: ................................................................................ 17 (二)、校园导游咨询: ............................................................................ 26 八、提高题源代码 ........................................................................................... 33
(一)、提高题三: .................................................................................... 33 (二)、提高体五: .................................................................................... 37
一、设计目的
《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求
1、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2、学生必须仔细研读《数据结构》课程设计(实习)要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3、本次课程设计按照教学要求需要在一周半时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4、编程语言任选。
三、设计选题
说明:课程设计题目主要分为两大类:
一是基础类题,主要是验证性题,少数是简单的综合性题,侧重考查学生对数据结构课程中重要数据结构和算法的理解与掌握程度,相对较简单;
本类题目选题要求:要求个人所选题目必须独立完成,不得合作;原则上不得参考别人的程序,若个人能力有限必须参考,参考成分不得超过30%,其中参考部分自己必须能消化吸收,否则无效;为培养学生分析问题、解决问题的实际动手能力和团队协作能力,鼓励有能力的学生尽可能选作第二类题目,故选作第一类题目的学生,无论完成多少题目,原则上最高分不超出90分。
二是提高类题,主要是设计性题,侧重考查学生综合能力,包括营火利用所学知识(主要是数据结构和算法等相关知识)去分析问题、解决问题的实际动手能力以及团队协作精神和协调能力;题目相对较难,多数题目无现成算法,考验学生的创新能力和综合素质。
本类题目选题要求:每个题目的可以有2名同学组成一个2人小组共同协作完成(可以自由组队),2人分工负责程序编写、测试以及实验报告撰写工作。程序员、测试员、文档员的工作难度不同,其工作的分数分配也应不同,原则上每人至少(必须)在每个题目中将三种角色分别成功体验一遍,才能及格分,每个队至少做9题(每位队员至少做2题)有能得到满分100,建议每队做9题以上。
四、基础类题目
(一)、停车场管理 1、设计内容:
设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
2、设计要求:
以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。
相关函数声明:
a、//输出离开停车场的车辆情况
void Print(CarNode *p,int room) b、//车辆进入时登记函数声明
int Arrival(SeqStackCar *Enter,LinkQueueCar *W) c、//车辆离开时函数声明
Void Leave(SeqStackCar*Enter,SeqStackCar*Temp, LinkQueueCar*W) d、//车辆列表显示函数
void Inquire(SeqStackCar S,LinkQueueCar W)
3、实验步骤
3.1、数据结构与核心算法的设计描述
a、//输出离开停车场的车辆情况 void Print(CarNode *p,int room)
b、//车辆进入时登记函数声明
int Arrival(SeqStackCar *Enter,LinkQueueCar *W)
c、//车辆离开时函数声明
void Leave(SeqStackCar*Enter,SeqStackCar*Temp, LinkQueueCar*W)
d、//车辆列表显示函数
void Inquire(SeqStackCar S,LinkQueueCar W)
e、//查看停车场内车辆情况的函数定义 void Inquire1(SeqStackCar *S)
f、//查看便道上停靠车辆情况的函数定义 void Inquire2(LinkQueueCar *W)
void InitStack(SeqStackCar *s) //堆栈初始化 int InitQueue(LinkQueueCar *Q)//队列初始化 3.2、函数调用及主函数设计