数据结构课程方案设计书(c版)--停车场管理系统

上传人:m**** 文档编号:401149146 上传时间:2022-12-16 格式:DOCX 页数:16 大小:160.79KB
返回 下载 相关 举报
数据结构课程方案设计书(c版)--停车场管理系统_第1页
第1页 / 共16页
数据结构课程方案设计书(c版)--停车场管理系统_第2页
第2页 / 共16页
数据结构课程方案设计书(c版)--停车场管理系统_第3页
第3页 / 共16页
数据结构课程方案设计书(c版)--停车场管理系统_第4页
第4页 / 共16页
数据结构课程方案设计书(c版)--停车场管理系统_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据结构课程方案设计书(c版)--停车场管理系统》由会员分享,可在线阅读,更多相关《数据结构课程方案设计书(c版)--停车场管理系统(16页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计班级网络营销指导老师吕向阳学号 1040412123姓名魏华二012年1月7日一课程设计题目某停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆汽车停放在最北端),若停车场内已经停满n辆车,则后来的汽车只能在门外的便道即候车场上等候,一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时。在它之后进入的车辆必须先退出车场为它让路,该车辆开出大门外,其它车辆再按原次序进入停车场, 每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为该停

2、车场编制按上述要求进行管理的模拟程序。二流程及图示停车显示信息离开收费系统查询显示信息退出a 1 a 2a 3a n停车场(栈 1)栈 2通道(队列)三、程序运行及截图1.开始界面首先是登陆界面,只要用户名跟密码一样就可以登陆,输入正确后,有一个延迟程序,让使用者感觉更真实如果输入错误了,就是直接退出了2.主界面 登录成功后,则是如下的功能界面:3 .停车场管理系统你可以选择停车,离开,或者查看,当操作完了,可以直接选择退出。 当你输入1 后,会提示你输入停车的车号:在这里输入你想要停车的车号,然后会提示你停车的时间:输入停车时间后,则会显示你刚停车的详细的信息:4.离开 输入 2 ,则会提示

3、你要离开的车号:然后输入离开的车号后,会提示你输入该车离开的时间,输入离开的时间,则会出现如下界面:5 停车场管理系统 系统则会把你刚离开的车俩的详细信息给你打印出来:拉开的车号,所用时间 以及应收的费用。这个时间管理员,可以对照表收费了。6.查看 当你要查看停车场所停车的信息时,你可以选择3 。同样,选择3 确定后会提示你要查看的车号,然后则会把信息打印在界面上:系统会告诉你这俩停在停车场里面的那个位置上。7.退出 当你一切操作完了后,就可以选择退出了,输入4 停车场管理系统随便按个键就退出该系统了。四、程序代码#include#include#include#include#include

4、#include #include using namespace std。#define Max_Size 2/ 停车的最大容量#define HourFare 2 / 每小时的停车费用int CountForStack=0 。 / 栈里现有的车数int CountForQueue=0 。 / 排队等候的车数typedef structchar Condition 。 / 到达或者离开的状态int Arrivetime 。 / 到达时间,默认为-1,表示没有到达int Leavetime。 / 离开时间,默认为-1,表示没有离开int License。/ 车牌号CarNode。/ 保存每辆车

5、的信息typedef struct/ 栈的定义CarNode *base。 / 栈底指针CarNode *top 。 / 栈顶指针int Stacksize。/ 栈的最大容量CarStack。typedef struct QNodechar Condition 。/ 到达或者离开的状态int Arrivetime 。 / 到达时间,默认为-1,表示没有到达int Leavetime。 / 离开时间,默认为-1,表示没有离开int License。/ 车牌号QNode *next 。QNode。typedef struct/ 队列的定义QNode *front 。 / 对头指针QNode * r

6、ear 。 / 队尾指针Queue。bool InitStack(CarStack &S1)/ 初始化栈 S1S1.base=(CarNode*)malloc(Max_Size*sizeof(CarNode) 。if(!S1.base)cout 栈 S1 内存分配失败endl 。return false 。S1.top=S1.base。S1.Stacksize=Max_Size。return true 。bool InitQueue(Queue &Q)Q.front=(QNode*)malloc(sizeof(QNode) 。if(!Q.front)cout队列 Q 内存分配失败!next=N

7、ULL。return true 。bool EnQueue(Queue &Q,QNode &e)/ 插入元素e 为 Q 的新的队尾元素QNode *p=(QNode *)malloc(sizeof(QNode) 。if(!p)coutp 内存分配失败 Arrivetime=e.Arrivetime 。p-Leavetime=e.Leavetime。p-Condition=e.Condition 。p-License=e.License。/ 将 e 赋给 Pp-next=NULL。Q.rear-next=p。Q.rear=p。return true 。bool DeQueue(Queue &Q,

8、QNode &t)/出队列函数if(Q.front=Q.rear)cout 队列为空! next 。t.Arrivetime=p-Arrivetime。t.Condition=p-Condition 。t.Leavetime=p-Leavetime 。t.License=p-License。Q.front-next=p-next 。if(Q.rear=p)Q.rear=Q.front 。free(p) 。return true 。void InitCarNode(CarNode &C,char condition,int arrivetime,int leavetime,int license

9、)C.Arrivetime=arrivetime 。C.Condition=condition 。C.Leavetime=leavetime 。C.License=license。bool Push(CarStack &S1,CarNode &car)/ 插入新的元素car 为的栈顶元素if(S1.top-S1.base=S1.Stacksize)cout 此栈已满,不能压入新的信息endl 。return false 。(*S1.top).Arrivetime=car.Arrivetime。(*S1.top).Condition=car.Condition 。(*S1.top).Leavetime=car.Leavetime 。(*S1.top).License=car.License。+S1.top。 / 栈顶指针上移return true 。bool Pop(CarStack &S1,CarNode &t)/ 出栈操作if(S1.top=S1.base)cout 栈S1 为空,不能执行出栈操作=S1.Stacksize)return true 。elsereturn false 。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号