停车场管理系统_第1页
停车场管理系统_第2页
停车场管理系统_第3页
停车场管理系统_第4页
停车场管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、推荐精选滁滁 州州 学学 院院课课程程设设计计报报告告课程名称:课程名称: 数据结构课程设计报告 设计题目设计题目: 停车场管理问题 系系 别:别: 计算机科学与技术系 专专 业:业: 计算机科学与技术专业 组组 别:别: 二 起止日期起止日期: 2011 年 5 月 20 日2011 年 6 月 20 日 指导教师指导教师: 杨斌 计算机科学与技术系二计算机科学与技术系二一一年制一一年制推荐精选课程设计题目停车场管理问题组长康金山学号2010211097班级计科 101系别计算机科学与技术系专业计算机科学与技术专业组员吉国燕、任祥、徐晟凯指导教师杨斌课程设计目的深入理解数据结构的基本理论,掌

2、握数据存储结构的设计方法,掌握数据结构基于的各种操作的实现方法课程设计所需环境Microsoft Visual C+ 6.0课程设计任务要求用数据结构的基本理论和数据存储的设计方法完成一个实际应用问题,在完成程序设计的同时能够写出比较规范的设计报告课程设计工作进度计划序号起止日期工 作 内 容分工情况15.20-5.23整体思路编写以及修改代码编写。康金山25.23-5.26主函数的编写任祥35.23-5.26数据的保存徐晟凯45.23-5.26数据的计算及输出吉国燕指导教师签字: 年 月 日教研室审核意见:教研室主任签字: 年 月 日推荐精选推荐精选目录引引言言.1需需求求分分析析.12.1

3、 问题描述.12.2 设计思路.12.3 运行环境及开发工具.2概概要要设设计计.23.1 流程图.23.2 主要数据结构.23.3 函数及其实现的功能.3详详细细设设计计.44.1 程序代码.4调调试试与与操操作作说说明明.95.1 操作说明.9课课程程设设计计总总结结与与体体会会.10致致谢谢.11参参考考文文献献.11推荐精选课程设计的主要内容课程设计的主要内容引言引言数据结构主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门

4、计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。需求分析需求分析2.1 问题描述问题描述题目、停车场管理问题 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的

5、次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一个程序模拟该停车场的管理。实现要求 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。实现提示 汽车的模拟输入信息格式可以是:(到达离去,汽车牌照号码,到达离去的时刻)。例如,(A,1,5)表示1号牌照车在5这个时刻到达,而(D,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(E,0,0)时结束。本题可用栈和队列来实现。2.2 设计

6、思路设计思路构造三个主要的结构体分别保存不同的数据,第一个用于保存第一个用于保存车辆停在停车场的车辆,1第二个用于保存停在便道的车辆,第三用保存要离开的车辆,然后设计程序首先要把输入的数据分别保存在相应的结构体里,例如当停车场里没有停满时车辆要停在停车场,因此该车辆的相应数据要存第一个结构体里,相反要是满了就要保存在第二个结构体里,要离开的车辆要推荐精选保推荐精选存在第三结构体里,同时也用到队列栈,当数据输入完整后运行程序,输出要求输出的数据。2最后要对车辆位置进行调整就可以了。2.3 运行环境及开发工具运行环境及开发工具运行环境 Microsoft Visual C+ 6.0;开发工具 C/

7、C+概要设计概要设计3.1 流程图流程图 (1)设计流程图)设计流程图3.2 主要数据结构主要数据结构typedef struct /*用于保存每辆车的信息用于保存每辆车的信息*/char ch;-1-1-1开始输入输入数据i=-1 i=-1返回主程序返回主程序返回主程序主菜单输入记录保存进车出车修改退出推荐精选int chehao;int time;node;typedef struct /*用保存停在停车场的车辆用保存停在停车场的车辆*/int lengh; /*记录车辆的个数记录车辆的个数*/node numn;queue;typedef struct /*用于保存每辆车的信息用于保存每

8、辆车的信息*/char ch1;int chepai;int time1;node1;typedef struct /*保存停在便道的车辆保存停在便道的车辆*/int front,reare;node1 numb20;squeue;typedef struct /*用于保存每辆车的信息用于保存每辆车的信息*/char ch2;int cheph;int time;node2;typedef struct /*保存要离开的车辆保存要离开的车辆*/int top;ode2 number30;stack1;3.3 函数及其实现的功能函数及其实现的功能void create(queue &ch

9、echang,squeue &biandao,stack1 &departure)用于创建结构体以及输入输出要求输出的数据,void xugai(queue &chechang,squeue &biandao,stack1 &departure);对离开的车辆进行删除在相应结构体的信息以及将可能停在便道上的车辆的信推荐精选息移到停车场的结构体里相应位置。详细设计详细设计4.1 程序代码程序代码#includeiostream.h#define n 10typedef structchar ch;int chehao;int time;node;typed

10、ef structint lengh;node numn;queue;typedef structchar ch1;int chepai;int time1;node1;typedef structint front,reare;node1 numb20;squeue;typedef structchar ch2;int cheph;int time;推荐精选node2;typedef structint top;node2 number30;stack1;void main()queue chechang;squeue biandao;stack1 departure;void create

11、(queue &chechang,squeue &biandao,stack1 &departure);void xugai(queue &chechang,squeue &biandao,stack1 &departure);create(chechang,biandao,departure);xugai(chechang,biandao,departure);void create(queue &chechang,squeue &biandao,stack1 &departure)char ch;int chepai;

12、int time;int i,j,k;chechang.lengh=0;biandao.front=-1;biandao.reare=-1;departure.top=-1;cout请输入数据请输入数据 例如例如 A 1 4;coutchchepaitime;while(ch!=E|chepai!=0|time!=0)推荐精选if(ch=A&chechang.lenghn-1)biandao.reare+;biandao.numbbiandao.reare.ch1=ch;biandao.numbbiandao.reare.chepai=chepai;biandao.numbbianda

13、o.reare.time1=time;elsedeparture.top+;departure.numberdeparture.top.ch2=ch;departure.numberdeparture.top.cheph=chepai;departure.numberdeparture.top.time=time;cinchchepaitime;cout停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻endl;for(i=0;ichechang.lengh;i+)coutchechang.numi.chehao chechang.numi.time;cout ;coutendl;c

14、out停在便道的车停在便道的车 车牌号车牌号 停车时刻停车时刻endl;for(i=0;ibiandao.reare+1;i+)coutbiandao.numbi.chepai biandao.numbi.time1;cout ;推荐精选coutendl;cout车牌号车牌号 停车费用停车费用 停车时间停车时间endl;coutendl;for(i=0;i=departure.top;i+)for(j=0;jchechang.lengh;j+)if(departure.numberi.cheph=chechang.numj.chehao)k=2*(departure.numberi.time-

15、chechang.numj.time);coutchechang.numj.chehao;cout ;coutk;cout ;coutk/2;coutendl;for(i=0;i=departure.top;i+)for(j=0;j=biandao.reare;j+)if(departure.numberi.cheph=biandao.numbj.chepai)k=departure.numberi.time-biandao.numbj.time1;coutbiandao.numbj.chepai;cout ;cout0;cout ;coutk;coutendl;推荐精选void xugai(

16、queue &chechang,squeue &biandao,stack1 &departure)int i,j,k;for(i=0;i=departure.top;i+)for(j=0;jbiandao.reare;j+)if(departure.numberi.cheph=biandao.numbj.chepai)while(jbiandao.reare-1)biandao.numbj=biandao.numbj+1;j+;biandao.reare-;for(i=0;i=departure.top;i+)for(j=0;jchechang.lengh;j+)if

17、(departure.numberi.cheph=chechang.numj.chehao)while(jchechang.lengh-1)chechang.numj=chechang.numj+1;j+;if(biandao.front=biandao.reare)chechang.lengh-;elsek=chechang.lengh-1;chechang.numk.ch=biandao.numbbiandao.front+1.ch1;chechang.numk.chehao=biandao.numbbiandao.front+1.chepai;推荐精选chechang.numk.time

18、=departure.numberi.time;调试与操作说明调试与操作说明5.1 操作说明操作说明输入相应的数据例如(输入相应的数据例如(A 1 4)代表进车辆,)代表进车辆, (D 3 4)代表要离开的车辆,然后以)代表要离开的车辆,然后以 E 0 0, 为结束条件。为结束条件。A 1 2A 2 3A 4 5A 3 6D 1 9E 0 05.2 运行结果运行结果停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻1 2;2 3;4 5;3 6;车牌号车牌号 停车费用停车费用 停车时间停车时间 ( 2 )运行结果图)运行结果图1 14 7A A 1 1 2 2A A 2 2 3 3A

19、 A 4 4 5 5A A 3 3 6 6D D 1 1 9 9E E 0 0 0 05.25.2 运行结果运行结果停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻1 1 2 2;2 2 3 3;4 4 5 5;3 3 6 6;车牌号车牌号 停车费用停车费用 停车时间停车时间1 1 1414 7 7PressPress angang keykey toto continuecontinue推荐精选Press ang key to continue课程设计总结与体会课程设计总结与体会1)编程的核心是算法结构,数据结构又包括逻辑结构和物理结构,编程中要时刻注意这些问题。2)调试过程远远

20、比编程过程繁琐,需要足够的耐心对一个个错误进行修改直至完全正确。并且调试过程也需要一定的技巧,能够选取适当的实验数据对程序进行验证,找到出错的地方以进行修正。 我这次的课程设计题目是关于停车场问题的,总体来说,这个题目还是比较简单的,主要是运用了栈和队列的一些知识和操作。也没有用到其他太多的数据结构知识。程序基本上还是能够运行,结果也正确,能够实现那些基本的车辆到达、离开、收费、遍历显示等主要功能。 但我觉得这个程序还有很多小的地方是可以完善的,比如:在输入登记车辆到达时间的时候,没有相关的小时、分钟数字的限制范围(小时 023,分钟 060) ;这就使程序不那么健壮了,还有,在计算收费时如果离开时间是到了第二天了,这样就可能会导致收费时负的或减少很多。就是说,还应该算天数,要不就要规定只能当天停,当天开走。我改了几次改不好,又鉴于程序要求中也没有提及,所以我也就没去该了。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论