ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:170.04KB ,
资源ID:1919405      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1919405.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告停车场管理系统.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告停车场管理系统.docx

1、数据结构课程设计报告停车场管理系统 实验二 停车场管理 班级:A0712 学号:12 XX:冷清淼 成绩:_指导教师签名:_一、问题描述设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场,汽车按到达的先后次序,由北向南依次排列假设大门在最南端。假设停车场已停满n辆车,那么后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费在便道上停留的时间不收费。设计要求:1模拟上述管理过程。要求以顺序栈模拟

2、停车场,以链队列模拟便道。2从终端读入汽车到达或离去的数据,每组数据包括三项:1是“到达还是“离开;2汽车牌照;3“到达或“离开的时刻。3与每组输入信息相应的输出信息为:如果是到达的车辆,那么输出其在停车场中或便道上的位置;如果是离去的车辆,那么输出其在停车场中停留的时间和应交的费用。二、算法说明1数据构造说明1用到两个堆栈:一个为车场栈;另一个为临时栈temptypedef struct NODE CarNode *stackMAX+1; int top;SeqStackCar; /*模拟车场*/(2)一个队列构造,存储便道车辆信息: typedef struct Node QueueNod

3、e *head; QueueNode *rear; LinkQueueCar; /*模拟便道*/2算法说明(1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 图1 2以模块为单位分析算法 1、“到达模块:到达时有两种情况,即车场是否满,未满那么直接进入停车场;满时,到便道等待。如图2。 图2 2.“离开模块:离开时,当车库为空时,提示没有车,完毕;否那么车辆离开。如图3。 图3 3. “显示模块:显示模块有两个显示选项,即:车场与便道。如图4。图4三、测试结果 一测试用例说明:测试用例要合理并且足够,既要有正确用例,也要有错误用例,同时检验程序的正确性和强壮性1第一

4、组测试用例1测试输入:停车场的车辆离开,如下表:效劳选择车牌号/车位到达/离开时间1QH05815:251AB12318:451EA64223:15220:30210:65错误 2测试目的:测试离开方法时间格式控制以及费用计算是否正确。3正确输出:第一次离开的是AB123,应交费3.45元。第二次时,当在输入65时,应该提示输入错误,重输。4实际输出:5错误原因:第一个错误是在计算时,一个数字错了;第二个是没有对时间格式控制。6当前状态:已改正2第二组测试用例1测试输入:连续6辆车到达,如下表: 效劳选择 车牌号 到达时间1A8828 7:561S22968:251WW6668:451HK45

5、615:501GH99912:301DD55513:40(2)测试目的:测试到达方法与列表显示方法能否正确完成。3正确输出:先到达的五辆车先进入停车场,最后到达的一辆在便道等候。4实际输出:5错误原因:没有作出时间先后的判断,而是先输入先进入。6当前状态:待修改3第三组测试用例1测试输入:接上一步输入离开信息,下表:效劳选择离开车位离开时间便道车进入时间2313:3013:402测试目的:测试离开方法功能是否成功以及便道进入车场是否正确。3正确输出:输出3号车位的车辆离开信息清单,便道1号车进入停车场。4实际输出:(5)错误原因:没有错误。 6当前状态:通过二测试结果分析 此停车管理系统根本可

6、能实现一个小的停车场的管理,其“到达与“离开方法都相比照拟完整,以及结算清单明了。尽管在时间先后上有出现混乱,但当其用到实际应用时,那个时间先后就可以防止了。但在输入数据时,要按照严格的格式输入,否那么有可能出现死去或崩溃。假设本系统能加上保存功能就更好了,因为一个系统在使用过程中总会关机等,而此系统的缺点却是没有保存功能,关闭之后就要重新建立了。会慢慢完善。附录:源代码/系统说明:本系统适应于小型停车场,且停车时间在一天之的短期停放停车场。/在此系统中,车库容量设置为5,便于测试。在实际使用中可以对容量大小按实际情况设置。#include#include#include#include#de

7、fine MAX 5 /*车库容量,可以根据实际情况改变*/#define price 0.01 /*一辆车每分钟费用,可变*/typedef struct time int hour; int min;Time; /*时间结点*/typedef struct node char num10; Time reach; Time leave;CarNode; /*车辆信息结点*/typedef struct NODE CarNode *stackMAX+1; int top;SeqStackCar; /*模拟停车场*/typedef struct car CarNode *data; struc

8、t car *next;QueueNode;typedef struct Node QueueNode *head; QueueNode *rear;LinkQueueCar; /*模拟便道*/*方法声明*/void InitStack(SeqStackCar *); /*初始化栈*/ int InitQueue(LinkQueueCar *); /*初始化便道*/int Arrival(SeqStackCar *,LinkQueueCar *); /*车辆到达*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*车辆离开*/

9、void List(SeqStackCar,LinkQueueCar); /*显示信息*/ void PRINT(CarNode *p,int room); /*输出离开车辆的信息清单*/void main() system(color F2); /*设置系统颜色,本系统为白底绿字f2*/ SeqStackCar Enter,Temp; LinkQueueCar Wait; int ch; InitStack(&Enter); /*初始化车站*/ InitStack(&Temp); /*初始化让路的临时栈*/ InitQueue(&Wait); /*初始化通道*/ while(1) cout

10、欢送使用本停车管理系统 endl; cout*endl; cout - 1. 车辆到达 - endl; cout - 2. 车辆离开 - endl; cout - 3. 列表显示 - endl; cout - 4. 退出系统 - endl; cout*endl; cout!说明:请注意正确输入时间,在输入“时后,按“ENTER或者“空格,再输入“分。不要为非数字!endl; cout请选择所需要的效劳! (1-4).ch; if(ch=1&ch=4)break; else cout输入错误!请选择:(1-4).top=0; for(i=0;istacks-top=NULL;int InitQu

11、eue(LinkQueueCar *Q) /*初始化便道*/ Q-head=(QueueNode *)malloc(sizeof(QueueNode); if(Q-head!=NULL) Q-head-next=NULL; Q-rear=Q-head; return(1); else return(-1);int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*车辆到达*/ CarNode *p; QueueNode *t; p=(CarNode *)malloc(sizeof(CarNode); flushall(); cout请输入车牌号(例:A

12、1234):num); if(Enter-toptop+; cout车辆在车场第top 位置!endl; cout请输入到达时间:(小时:分钟)p-reach.hour; while(p-reach.hourreach.hour23) /控制时间格式正确 cout输入错误!endl; cout请重输入到达时间的时(0-23)!p-reach.hour; cinp-reach.min; while(p-reach.minreach.min59) /控制分钟输入正确 cout输入错误!endl; cout请重输入到达时间的分(0-59)!p-reach.min; Enter-stackEnter-top=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1