停车场管理.doc_第1页
停车场管理.doc_第2页
停车场管理.doc_第3页
停车场管理.doc_第4页
停车场管理.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

计算机系网络工程专业数据结构课程设计题 目: 停车厂管理问题 班 级: 网络工程06103 姓 名: 唐锦涛 学 号: 06 同组人姓名: 起 迄 日 期: 2008.2.252008.2.29 课程设计地点: A517 指导教师: 席金菊 评阅意见:成绩评定:评阅人: 日期:完成日期:2008年2月29日一、设计题目:停车场管理二、题目描述(功能要求)设计一个停车场管理系统,模拟停车场的运作,通过此程序具备以下功能:1、要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理;2、要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻;3、该系统完成以下功能:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费);4、要求栈以顺序结构实现,队列以链表实现。三、基本设计思路车辆到达车辆离开列表显示退出系统模拟停车场管理车牌号码便 道车 场离开时间车辆位置到达时间四、代码以及具体分析 1.park.h/定义头文件#include#include#include#defineNULL0#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineOVERFLOW-2typedefintStatus;/*-停车场-*/#defineMax_Content1 /停车场容量#definePrice0.05 /停车费用(元/分)typedefstructtimeinthour;intminute;Time; /时间结点typedefstructcarnodecharnum10;Timereach;Timeleave;CarNode; /汽车结点typedefstructcarseqstack CarNodeelemMax_Content;inttop;CarStack; /停车场(栈)typedefstructquenodeCarNode*data;structquenode*next;QueNode; /通道结点typedefstructcarlinkqueue QueNode*front;QueNode*rear;CarQueue;/候车通道(队列)/*-常用函数声明-*/voidInitStack(CarStack&s);/初始化栈StatusStackEmpty(CarStacks);/判断栈是否为空StatusPush(CarStack&s,CarNodec);/入栈StatusPop(CarStack&s,CarNode&c);/出栈voidInitQueue(CarQueue&q);/初始化队列StatusQueueEmpty(CarQueueq);/判断队列是否为空StatusEnQueue(CarQueue&q,CarNodec);/入队StatusDeQueue(CarQueue&q,CarNode&c);/出队voidCarCopy(CarNode&c1,CarNodec2);/汽车结点拷贝voidReach(CarStack&s,CarQueue&q);/车辆到达voidLeave(CarStack&s,CarQueue&q);/车辆离开voidList(CarStacks,CarQueueq);/车辆显示voidPrint(CarNodec);/打印出站车的信息2.std.cppvoid CarCopy(CarNode &c1,CarNode c2)/汽车结点拷贝c1.reach.hour=c2.reach.hour;c1.reach.minute=c2.reach.minute;c1.leave.hour=c2.leave.hour;c1.leave.minute=c2.leave.minute;strcpy(c1.num,c2.num);void Reach(CarStack &s,CarQueue &q)/车辆到达CarNode c;printf(n请输入车牌号(例:湘J12345):);flushall();gets(c.num);if(s.top=1&ii)/后面的汽车进入临时栈 Pop(s,c); Push(temp,c); Pop(s,c); Print(c);/打印费用 while(temp.top0) Pop(temp,c); Push(s,c); if(!QueueEmpty(q)/便道里面车辆进入停车场 CarCopy(c,*(q.front-next-data); printf(n便道的%s号车进入车场第%d位置.,c.num,s.top+2); printf(n请输入现在的时间/*:*/); scanf(%d:%d,&c.reach.hour,&c.reach.minute); Push(s,c); DeQueue(q,c); else printf(n便道里没有车.n);else printf(停车场里面没有车!);void List1(CarStack s) /*列表显示车场信息*/ CarNode c;if(!StackEmpty(s) /*判断车站内是否有车*/ c=s.elems.top; printf(n车场:); printf(n 位置 到达时间 车牌号n); while(!StackEmpty(s) printf( %4d ,s.top+1); printf(%6d:%d ,c.reach.hour,c.reach.minute); puts(c.num); Pop(s,c); else printf(n车场里没有车);void List2(CarQueue q) /*列表显示便道信息*/ QueNode *p;if(!QueueEmpty(q) /*判断通道上是否有车*/ p=q.front-next; printf(n等待车辆的号码为:); while(p!=NULL) printf(%s,p-data); p=p-next; else printf(n便道里没有车.);void List(CarStack s,CarQueue q)/车辆显示int flag,tag;flag=1;while(flag)printf(nnn-); printf(n请选择 1|2|3:); printf(n1.车场n2.便道n3.返回n); printf(-n); while(1) scanf(%d,&tag); if(tag=1|tag=1&chdata=temp;n-next=NULL;q.rear-next=n;q.rear=n;returnTRUE;StatusDeQueue(CarQueue&q,CarNode&c)/出队QueNode*n;n=(QueNode*)malloc(sizeof(QueNode);if(!n)exit(OVERFLOW);if(QueueEmpty(q)returnFALSE;elsen=q.front;q.front=n-next;CarCopy(c,*n-next-data);free(n);returnTRUE;六、总结1、复习了数据结构的相关知识,特点和存储方式;2、初

温馨提示

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

评论

0/150

提交评论