停车场管理.docx
- 文档编号:30198045
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:15
- 大小:93.08KB
停车场管理.docx
《停车场管理.docx》由会员分享,可在线阅读,更多相关《停车场管理.docx(15页珍藏版)》请在冰豆网上搜索。
停车场管理
目录
摘要1
前言2
正文3
1.问题描述3
2.逻辑设计4
3.详细设计7
4.程序编码9
5.程序调试与测试11
6.结果分析14
设计总结15
参考文献16
致谢17
摘要
通过之前对数据结构(C语言版)的学习与认识,在此次课程设计中设计并开发停车场管理系统的程序。
要求使用顺序栈模拟停车场,链队列模拟车场外的便道,实现车辆入栈、出栈、入队列、出队列、信息输出等功能。
该设计要求为停车场编制按上述要求进行管理的模拟程序。
通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
关键词:
设计;顺序栈;链队列;存储结构
前言
《数据结构(C语言版)》实训是计算机科学与技术专业集中实践性环节之一,是学习理论课程后进行的一次全面的综合练习。
其目的在于加深对数据结构程序设计中基础理论和基本知识的理解,培养我的数据抽象能力,促进理论与实践的结合。
通过此次训练能够加深我们对课程设计的理解,并通过训练将所学的知识运用于实践。
我此次所做的是关于停车场管理系统的题目,通过这个题目主要是将我们所学的有关类的知识运用于实践。
并能通过此次实践巩固我们所学的知识,进一步加深对它的理解。
此次实践使用顺序栈模拟停车场,链队列模拟车场外的便道,实现车辆入栈、出栈、入队列、出队列、信息输出等功能;培养了我的实际操作能力和分析解决实际问题的能力。
正文
1.问题描述
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须退出车场为它让路,待该辆车开出大门外,其它车辆按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
该设计要求为停车场编制按上述要求进行管理的模拟程序。
通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现。
2.逻辑设计
2.1本程序包含三个模块:
1)主程序模块:
Voidmain()
{
初始化;
do{
接受命令;
处理命令;
}while(命令!
=“退出”)
}
2)栈模块——实现栈抽象数据类型
3)队列模块——实现队列抽象数据类型
2.2抽象数据的定义:
1)时间点的定义:
typedefstructtime
{
inthour;
intmin;
}Time;
2)定义每辆车的牌号、开入时间、开出时间:
typedefstructnode
{
stringnum;
Timereach;
Timeleave;
}CarNode;
3)用栈定义构造的停车场:
typedefstructNODE
{
CarNode*stack[MAX+1];
inttop;
}SeqStackCar;
4)用队列结点定义,构造停车场外的单个等候车辆:
typedefstructcar
{
CarNode*data;
structcar*next;
}QueueNode;
5)用队列定义,构造停车场外的等候便道:
typedefstructNode
{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar
6)函数的声明:
voidInitStack(SeqStackCar*);//初始化堆栈函数声明
intInitQueue(LinkQueueCar*);//初始化队列头结点函数声明
intArrival(SeqStackCar*,LinkQueueCar*);//车辆进入时登记函数声明
voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);//车辆离开时函数声明
voidList(SeqStackCar,LinkQueueCar);/*查看停车场内车辆情况及便道上车辆情况的函数声明*/
2.3模块的调用图:
3.详细设计
3.1系统流程图
3.2重要部分的伪码算法:
车辆到达或者离开的伪码算法:
do{
输出菜单选项;
如果选择1,即车辆到达,
则{若栈不满,车辆进栈,停到停车场;
}
如果选择2,即车辆离开,
则{如果队不空并且栈不满,被选的车辆离开,队列上的车出队入栈;
被选的车辆离开;
计算时间及其所需费用;
}
如果选择4,退出程序;
}while(输入的菜单选项不正确)
4.程序编码
4.1主函数和其他函数的实现或伪码算法:
voidmain()
{
SeqStackCarEnter,Temp;//初始栈,中转栈
LinkQueueCarWait;//便道队列
inta;
InitStack(&Enter);
InitStack(&Temp);
InitQueue(&Wait);//初始化
while
(1)
{
cout<<"********************************************************************"< cout<<"欢迎光临停车场! "; cout<<"(*^__^*)! "; cout< cout<<"车辆离开登记->请按2"< cout<<"车辆停靠查询->请按3"; cout<<"退出系统->请按4"< while (1) { cin>>a; if(a>=1&&a<=4)break; elsecout< 1~4."; } switch(a) { case1: Arrival(&Enter,&Wait);break;//调用入停车场函数 case2: Leave(&Enter,&Temp,&Wait);break;//调用出停车场函数 case3: List(Enter,Wait);break;//调用查看函数 case4: exit(0); default: break; } } } 5.程序调试与测试 5.1系统测试 图1 主界面 图2 进站时间与车牌号 图3 车辆到达登记完成 图4 车辆离开登记 图5 车辆停靠查询开始 图6退出系统 6.结果分析 6.1在程序调试过程中遇到的相关问题 1)最初调试中车牌号编写为int型,输入的只能是数字,但现实生活中车牌号都为汉字+英文字母+数字,在改进过程中,改成字符型,后来发现,真正地原因没有找到,因此经过几次测试,都没有成功! 2)在对车辆的到达和离开时间的定义上限制条件不成熟,再输入时间时可以是任意数字而不会出现错误,在输入字母时不会提示错误而直接进入死循环,使得程序不能在进行下去,而被迫退出。 3)在进行车辆到达登记的时候,登记完成以后没有显示车位,因此在车辆离开登记的时候出现了缺陷。 7.设计总结 通过这一次课程设计,我学到的东西比以前上课学到的还要多,这让我明白,理论永远是理论,要是没有实践,理论永远是一纸空文。 我们要从实践中才能学到更多的东西。 而实践又要以理论为基础,要是数据结构知识不扎实,做出的程序也是漏洞百出。 所以,我们要将理论和实践结合起来,把我们在课堂上学到的东西运用在实际中,这样才能提高我们自身的能力。 在此次实践中我明白在开发一个软件项目的过程中,程序调试过程占了一个绝大部分的时间,可见程序调试的重要性。 通过程序调试,我们发现了程序中的达不到要求的地方,并且能够从中改进程序编写的内容,如结构的编排,更好的判断方法等等。 在这两周的课程设计中,从拿到题目到完成整个过程周的时间里,学到了很多东西,不仅加深了对我们所学知识的理解,而且在实践的过程中体会到实践与理论相结合的重要性。 所以对于我们这个专业来说不仅要深度理解书本上的知识,还需在此基础上加强实践锻炼! 参考文献 1严蔚敏,吴伟民.《数据结构(C语言版)》.清华大学出版社. 2严蔚敏,吴伟民.《数据结构题集(C语言版)》.清华大学出版社. 3《DATASTRUCTUREWITHC++》.WilliamFord,WilliamTopp.清华大学出版社(影印版). 4谭浩强.《c语言程序设计》.清华大学出版社. 5.数据结构与算法分析(Java版),APracticalIntroductiontoDataStructuresandAlgorithmAnalysisJavaEditionCliffordA.Shaffer,张铭,刘晓丹译 电子工业出版社2001年1月 致谢 在经历了两个星期的课程设计,终于在老师规定的时间内完成了预定的设计要求,达到了预期的目的,完成了导师布置的任务。 在论文即将完成之际,回 顾紧张但又充实的学习和开发过程,我在此向所有帮助过我的老师和同学们致以最真诚的感谢。 在本次课程设计中,我们从指导老师张老师身上学到了很多东西。 这段时间我们了解了程序的博大精深,这段时间的学习我看到了老师的无私奉献,也看到了老师的来回奔波,让我们非常感动,通过这次学习激发了我们对学习的的兴趣。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理
![提示](https://static.bdocx.com/images/bang_tan.gif)