数据结构停车场管理系统

上传人:cn****1 文档编号:563491084 上传时间:2022-08-07 格式:DOC 页数:14 大小:226KB
返回 下载 相关 举报
数据结构停车场管理系统_第1页
第1页 / 共14页
数据结构停车场管理系统_第2页
第2页 / 共14页
数据结构停车场管理系统_第3页
第3页 / 共14页
数据结构停车场管理系统_第4页
第4页 / 共14页
数据结构停车场管理系统_第5页
第5页 / 共14页
点击查看更多>>
资源描述

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

1、.一、设计目的1了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规进行软件开发, 培养软件工作者所应具备的科学的工作方法和作风。二、设计容设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序, 依次由北向南排列 (大门在最南端,最先到达的第一辆车停放在车场的最北端) ,若车场已停满 n 辆汽车,则后来的汽车只能在门外的便道上等待, 一旦有车开走, 则

2、排在便道上的第一辆车即可开入;当停车场某辆车要离开时, 在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外, 其他车辆再按原次序进入车场, 每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 试为停车场编制按上述要求进行管理的模拟程序。三、设计要求按照从终端读入的输入数据进行模拟管理,每一组输入数据包括三个数据项:汽车“进站”或“出站”信息、汽车牌照以及进站或出站的时刻,对每一组输入数据进行操作后的输出信息为: 若是车辆到达, 则输出汽车在停车场或便道上的停车位置; 若是车辆离去, 则输出汽车在停车场逗留的时间和应交纳的费用(在便道上停留不收费) ,按以顺序结构实现,

3、队列以链表结构实现。四、设计过程1、算法思想分析由于停车场是一个狭窄通道, 而且只有一个大门可供汽车进出, 问题要求汽车停车场按车辆到达时间的先后顺序, 依次由北向南排列。 由此很容易联想到数据结构中的堆栈模型, 因此可首先设计一个堆栈, 以堆栈来模拟停车场, 又因为每个汽车的车牌号都不一样, 这样一来可以根据车牌号准确找到汽车位置, 所以堆栈里的数据元素我设计成汽车的车牌号。 当停车场某辆车要离开时, 在他之后进入的车辆必须先退出车场为它让路, 待该辆车开出大门外, 其他车辆再按原次序进入停车场。 这是个一退一进的过程, 而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈, 以之来暂

4、时存放为出站汽车暂时让道的汽车车牌号。当停车场满后, 继续进来的汽车需要停放在停车场旁边的便道上等候, 若停车场有汽车开走,则按排队的先后顺序依次进站, 最先进入便道的汽车将会最先进入专业资料.停车场,这完全是一个先进先出模型, 因此可设计一个队列来模拟便道, 队列中的数据元素仍然设计成汽车的车牌号。 另外,停车场根据汽车在停车场停放的总时长来收费的,在便道上的时间不计费, 因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录, 当从终端输入时可直接使用。 由于时间不像汽车一样需要让道, 我设计了一个顺序表来存放时间。 又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的

5、需要。2、算法描述与实现(1) 时间结点类型typedef struct timeint hour;int min;Time; /* 时间结点 */(2) 车辆进出站信息类型typedef struct nodechar num10;Time reach;Time leave;CarNode; /*车辆信息结点 */(3) 停车场和便道信息类型typedef struct NODECarNode *stackMax+1;int top;SeqStackCar; /*模拟车站 */typedef struct carCarNode *data;struct car *next;QueueNode

6、;typedef struct NodeQueueNode *head;QueueNode *rear;LinkQueueCar; /*模拟通道 */void InitStack(SeqStackCar *,int n); /*声明栈 */ 初始化,创建一个新栈 S 用于停车场int InitQueue(LinkQueueCar *); /*声明便道 */专业资料./ 初始化,创建一个队列Q 用于便道int Arrival(SeqStackCar *,LinkQueueCar *,int n); /*车辆进站 */CarNode *p;QueueNode *t;p=(CarNode *)mal

7、loc(sizeof(CarNode);flushall();printf(n请输入车牌号 (例如:吉 A1234):);gets(p-num);if(Enter-toptop+;printf(n车辆在车场第 %d 位置 .,Enter-top);printf(n请输入到达时间 :/*:*/);scanf(%d:%d,&(p-reach.hour),&(p-reach.min);Enter-stackEnter-top=p;return(1);else /* 车场已满 ,车进便道等待 */printf(n该车须在便道等待 !);t=(QueueNode *)malloc(sizeof(Queu

8、eNode);t-data=p;t-next=NULL;W-rear-next=t;W-rear=t;return(1);void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *,int n); /* 车辆出站 */(4) 主函数和其它函数的伪码算法void main()专业资料.SeqStackCar Enter,Temp;LinkQueueCar Wait;int ch;int n;n=getn();InitStack(&Enter,n); /*初始化车场 */InitStack(&Temp,n); /*初始化让路的临时栈 */InitQu

9、eue(&Wait); /*初始化便道 */while(1)printf(n1.车辆进站 );printf( 2.车辆出站 );printf( 3.存车信息 );printf( 4.退出系统 n);while(1)printf( 请选择:1|2|3|4.n);scanf(%d,&ch);fflush(stdin);doif(ch4 | ch4 | ch1);break;switch(ch)专业资料.case 1:Arrival(&Enter,&Wait,n);break; /*车辆进站 */case 2:Leave(&Enter,&Temp,&Wait,n);break; /*车辆出站 */c

10、ase 3:List(Enter,Wait);break; /*存车信息 */case 4:exit(0); /*退出系统 */default:break;系统测试程序初始界面:车辆进站:停车场存车信息:车辆进入便道:车辆出站:便道上的车出站:五、设计总结参考文献:数据结构程序设计题典春葆等编清华大学出版社数据结构 (C 语言版 )黄国瑜叶乃菁编清华大学出版社数据结构课程设计苏仕华等编机械工业出版社专业资料.附录:#include#include#include#include/*-*/#define Max 10int getn()int n;printf( 欢迎您光临吉吉停车场,);pri

11、ntf( 本停车场管理实行 24 小时制,停车每分钟 0.1 元.n); printf( 请输入停车场可容纳的车 (最多 10 辆):); scanf(%d,&n);fflush(stdin);doif(n10)printf( 输入的车辆数不在要求围,请重新输入! ); scanf(%d,&n);fflush(stdin);else break;while(n10);return n;typedef struct timeint hour;int min;Time; /* 时间结点 */typedef struct nodechar num10;Time reach;Time leave;Ca

12、rNode; /*车辆信息结点 */typedef struct NODECarNode *stackMax+1;int top;SeqStackCar; /*模拟车站 */typedef struct carCarNode *data;struct car *next;QueueNode;typedef struct NodeQueueNode *head;QueueNode *rear;LinkQueueCar; /*模拟通道 */声明栈 */void InitStack(SeqStackCar *,int n); /*int InitQueue(LinkQueueCar *); /*声明便道 */专业资料.int Arrival(SeqStackCar *,LinkQueueCar *,int n); /*车辆进站 */void Leave(SeqStackCar *,SeqStackCa

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

最新文档


当前位置:首页 > 办公文档 > 演讲稿/致辞

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