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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

大数据结构作业停车场管理系统文档格式.docx

1、这个时间管理员,可以对照表收费了。6.查看 当你要查看停车场所停车的信息时,你可以选择 3。同样,选择 3 确定后会提 示你要查看的车号,然后则会把信息打印在界面上: 系统会告诉你这俩停在停车场里面的那个位置上。7.退出 当你一切操作完了后,就可以选择退出了,输入 4 停车场管理系统 随便按个键就退出该系统了。四、程序代码#includeconio.hiomanipfstreamstring#include windows.husing namespace std;#define Max_Size 2/停车的最大容量 #define HourFare 2 /每小时的停车费用 int Count

2、ForStack=0; /栈里现有的车数 int CountForQueue=0; /排队等候的车数 typedef struct char Condition;/到达或者离开的状态 int Arrivetime;/到达时间,默认为-1,表示没有到达 int Leavetime;/离开时间,默认为-1,表示没有离开 int License;/车牌号 CarNode;/保存每辆车的信息 typedef struct/栈的定义 CarNode *base;/栈底指针 CarNode *top;/栈顶指针 int Stacksize;/栈的最大容量 CarStack; typedef struct

3、QNode char Condition;/到达或者离开的状态 QNode *next; QNode; typedef struct/队列的定义 QNode *front;/对头指针 QNode * rear;/队尾指针 Queue; bool InitStack(CarStack &S1)/初始化栈 S1 S1.base=(CarNode*)malloc(Max_Size*sizeof(CarNode); if(!S1.base) cout栈 S1 内存分配失败endl; return false; S1.top=S1.base; S1.Stacksize=Max_Size; return

4、true; bool InitQueue(Queue &Q) Q.front=(QNode*)malloc(sizeof(QNode);Q.front) coutnext=NULL; bool EnQueue(Queue &Q,QNode &e)/插入元素 e 为 Q 的新的队尾元素 QNode *p=(QNode *)malloc(sizeof(QNode);p) p 内存分配失败 p-Arrivetime=e.Arrivetime;Leavetime=e.Leavetime;Condition=e.Condition;License=e.License;/将 e 赋给 P Q.rear-n

5、ext=p; Q.rear=p; bool DeQueue(Queue &t)/出队列函数 if(Q.front=Q.rear) 队列为空! QNode *p=Q.front-next; t.Arrivetime=p-Arrivetime; t.Condition=p-Condition; t.Leavetime=p-Leavetime; t.License=p-License;next=p- if(Q.rear=p) Q.rear=Q.front; free(p);void InitCarNode(CarNode &C,char condition,int arrivetime,int le

6、avetime,int license) 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)此栈已满,不能压入新的信息 return false; (*S1.top).Arrivetime=car.Arrivetime; (*S1.top).Condition=car.Condition; (*S

7、1.top).Leavetime=car.Leavetime; (*S1.top).License=car.License; +S1.top;/栈顶指针上移 bool Pop(CarStack &t)/出栈操作 if(S1.top=S1.base)栈 S1 为空,不能执行出栈操作 -S1.top;/栈顶指针下移 t.Arrivetime=(*S1.top).Arrivetime; t.Condition=(*S1.top).Condition; t.Leavetime=(*S1.top).Leavetime; t.License=(*S1.top).License; bool IsStackF

8、ull(CarStack &S1)/判断 S1 栈是否已满 return true; else bool IsStackEmpty(CarStack &S1)/判断 S1 栈是否已空 if(S1.top=S1.base) else bool IsQueueEmpty(Queue &Q)/判断队列是否为空 if(Q.front=Q.rear) bool SearchInStack(CarStack &S1,int a)/a 表示要查找的车牌号,如果在停车场里 面,就返回 true bool tag=false;IsStackEmpty(S1)/如果栈 S1 非空 CarNode *p=S1.to

9、p-1; while(p!=S1.base) if(*p).License=a) tag=true; -p; if(*p).License=a) tag=true; return tag; bool SearchInQueue(Queue &Q,int a)/a 表示要查找的车牌号,如果在通道里面,就 返回 trueIsQueueEmpty(Q)/如果队列非空 QNode *p=Q.front- while(p!=Q.rear) if(*p).License =a) tag=true; p=p- /退出此 while 循环时 p 指向最后一个元素 if(*p).License =a) void

10、 InCar(CarStack &S1,Queue &Q,int a1,int a2)/表示进入车辆,a1 表示到达时 间,a2 表示车牌号码 if(SearchInStack(S1,a2)车号a2已经存在于停车场内,输入有误 return; if(SearchInQueue(Q,a2)已经存在于通道内,输入有误 if(IsStackFull(S1)/如果堆栈已满,说明停车场已满,需要停车在通道里面 QNode qnode; qnode.Arrivetime=-1;/在通道里面不收费,所以不计时 qnode.Condition=A; qnode.Leavetime=-1;/定义为-1,说明还没

11、有开始离开 qnode.License=a2; EnQueue(Q,qnode);/停在通道上 +CountForQueue;车号:qnode.License停在通道的第CountForQueue号 位置 CarNode carnode; carnode.Arrivetime=a1; carnode.Condition= carnode.Leavetime=-1; carnode.License=a2; Push(S1,carnode); +CountForStack;车号: carnode.License, 到达时间:carnode.Arrivetime 点,停在停车场的第CountForS

12、tack号位置 void Sreach(CarStack &Q,int a) if(SearchInStack(S1,a) a已存在停车场里面的第号位 置 if(SearchInQueue(Q,a) cout停车场已满,车号存在于通道里面的第 号位置,在次等候 return; else 对不起!你查找的车号不在停车场里面 void OutCar(CarStack &Q,int a1,int a2)/出车函数,a1 表示离开时间, a2 表示车牌号码 if(SearchInQueue(Q,a2) 存在于通道里面,还没有进入停车场,不能离开 SearchInStack(S1,a2) 该车不在停车场

13、内 return; CarStack tempstack; InitStack(tempstack);/新建一个栈,存放让路的汽车 bool tag1=false;/标志这个停车场出车以前是否已满,默认为没有满 tag1=IsStackFull(S1); bool tag2=true;/标志通道是否有汽车在等待,默认为通道为空 tag2=IsQueueEmpty(Q); CarNode temp;/用来保存暂时取出的汽车 bool tag3=false; while(1) Pop(S1,temp); if(temp.License=a2) if(a1temp.Arrivetime) cout离

14、开失败! tag3=true; Push(tempstack,temp); else 现在离开停车场,所用时间为:a1-temp.Arrivetime小时,应收 RMB 为:(a1-temp.Arrivetime)*HourFaretag; while(tag!=1&tag!=2&=3&=4) int a1; unsigned int a2; switch(tag) case 1:请输入到达的车号: cina1;请输入到达的时间:a2; InCar(S1,Q,a2,a1); Sreach(S1,Q,a1); break; case 2:请输入离开的车号:请输入离开的时间: OutCar(S1,

15、Q,a2,a1); case 3:请输入你要查看的车号: Sreach(S1,Q,a1); case 4: showmenu(S1,Q); void loging(CarStack & char Administrator15,password15; int a; printf(t*n);t* *nt* 欢迎使用停车场管理系统 *n printf(nt(提示:账号跟密码一样就行)nnnnt 请输入管理员帐号: fflush(stdin); gets(Administrator);ttttttttttt 请输入密码: fflush(stdin); gets(password); /比较用户名和密

16、码 if(strcmp(Administrator,Administrator) = 0 & strcmp(password,Administrator) = 0) nnttt 您已成功登陆,请稍侯!nnttt / 延迟 for(a = 0;20;a+) Sleep(150); /进入页面时清屏 system(clsnnttt 您输入的帐号或者密码错误!void main() CarStack carstack; InitStack(carstack);/建立并且初始化用于停车场的堆栈 Queue carQueue; InitQueue(carQueue);/建立并且初始化用于通道的队列 lo

17、ging(carstack,carQueue);五、心的体会 在生活与工作中许多领域都用到数据结构,但关键是如何将问题模型转换,变换成我们熟知的知识应用,即抽象具体化。首先是要把所学的知识重新好 好巩固下,其次,每次课程设计总会有些东西不懂的,这时我们就要上网去查资 料,这样会让我们养成一个好的自主学习的习惯。这次的课程设计,我开始是分 析了这个系统需要做些什么,然后分析要用到哪些代码,哪些结构,哪些算法开 实现这些功能。它让我明白了栈和队列实 际会用在哪些方面,同时我有些不懂的,我会看书,或是在网上找,慢慢的也增 加了自己的知识量。 这次的停车场系统做的很简单,和真正的停车场系统来比,根本就不算什么 了。真正的停车场是不会那么退出停车场的,每次离开都要人家后面的让道,还不被

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

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