- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
停车场管理系统数据结构课设报告
计算机与通信工程学院 2015级《数据结构》课程设计实验报告
第 PAGE 1 页
数据结构课程设计
停车场管理系统
目 录
TOC \o 1-2 \h \u
19087 一、课设目的 2
20994 二、问题描述 2
27423 三、基本要求 2
24284 四、详细设计 3
7710 (1)原理分析 3
18906 (2)功能模块 3
8012 (3)用户手册 6
5494 (4)流程图 6
3624 (5)测试用例 7
5746 (6)测试目的 7
23205 (7)测试要求 7
6727 五、程序源码 7
3172 六、测试结果 13
25076 七、课设总结 15
24765 八、参考文献 15
一、课设目的
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程中的问题分析,系统设计,程序编码,测试等基本方法和技能;
提高综合应用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发和一般规范进行软件开发,培养软件工作者所应具有的
科学的工作方法和作风。
二、问题描述
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
三、基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;
若是车离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。
详细设计
(1)原理分析:
栈是一种只能在一段进行输入和输出操作的线性表,表尾称为栈顶,表头称为栈底。栈的主要特点是“后进先出”,即后进栈的元素先处理,停车场的容量即为栈的存储空间。
队列是限定仅能在表的一段进行插入,在表的另一端进行删除的线性表。队列中可以插入的一段称为队尾,可以删除的一端称为队首。队列的主要特点是“先进先出”。
停车场管理系统是充分利用数据结构中栈和队列的思想实现的,用到两个堆栈,一个用来模拟停车场,另一个为临时栈,存储为离开停车场的车辆让道的其他车辆;一个队列结构,存储便道的车辆信息。
typedef struct{//定义栈,表示停车场
CarNode *base;//停车场的堆栈底
CarNode *top;//停车场的堆栈顶
int stacksize;//停车场的容量
}Park;
typedef struct{//定义队列,表示便道
CarPtr front;//便道的队列的队头
CarPtr rear;//便道的队列的队尾
int length;
}Shortcut;
(2)功能模块:
?车辆到达:a、若栈不满,车辆进栈,停到停车场;
b、若栈满,车辆入队,停到便道;
Status Arrival(Park P,Shortcut S)
{int number,ar_time; //对进站车辆的处理:
printf(请输入车牌号:); //记录车牌号,时间,并根据停车场
scanf(%d,number); //是否满来判断入栈还是入队列
printf(进场的时刻:);
scanf(%d,ar_time);
if(P.stacksizeSIZE)
{ CarNode c;
c.number=number;
c.ar_time=ar_time;
Push(P,c);
printf(该车应停在第%d号车道.\n,P.stacksize);
}
您可能关注的文档
- 西南大学网络与继续教育学院课程考试试卷 金融理论与实务.doc
- 西南大学网络与继续教育学院课程考试试题卷(中兽医学)0897.doc
- 西南大学网络与继续教育学院课程考试试题卷新税制 2017年6月 专业:会计学.doc
- 西南大学网络与继续教育学院课程考试答题卷(教育统计学).doc
- 西南大学网络与继续教育学院课程考试试题答案2017年6月土木工程材料 A卷 大作业.doc
- 西南大学网络与继续教育学院课程考试试题卷0856《行政组织学》 答案.doc
- 西南大学网络教育学院2018年6月土木工程专业《基础工程》大作业试卷及答案.doc
- 西南科技大学化工原理自测题.doc
- 西南大学网络与继续教育学院课程考试试题答案 马克思主义基本原理.doc
- 西园镇党建创新促脱贫攻坚案例.doc
文档评论(0)