资源描述:
《数据结构项目课程报告--停车场管理系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、安阳师范学院·数据结构项目课程·数据结构项目课程报告安阳师范学院·数据结构项目课程·一、问题描述及分析题目要求:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门外,其他车辆再按原次序进入车场,每辆车停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试
2、为停车场编制按上述要求进行管理的模拟程序。分析:由题目只有一个大门进出并且“先到后处理”可知,应使构造栈模拟停车场,进入离开停车场即入栈出栈的过程;而便道等候的汽车符合“先到先处理”原则,应构造线性队列模拟;构造存储结构,存放车辆信息,车牌号,到达离开时间;通过time.h头文件中的函数获取汽车到来以及离开时间,利用时间差计算价钱。安阳师范学院·数据结构项目课程·主要模块如下图:停车场管理系统车辆到达停车场车辆进入停车场车辆离开停车场车辆停留在便道车辆进入停车场输出车辆的进入信息记录进入的时间位置输出车辆的离开信息记录车辆离开的时间位置输出应缴纳的费用便道的车辆进入停车场安阳师范学
3、院·数据结构项目课程·功能模块及数据结构描述头文件、宏定义以及存储结构结构体定义相关类型的链表空间有顺序栈的定义、链队、车辆信息结构体、时间计算结构体、车辆位置字符型结构体数组和循环单链表存储下一个地址空间。#include#include#include#include#include#defineOK1#defineERROR0typedefstructtime1{chartimes[100];longtime2;}time1;typedefstructnode{charnum[10];t
4、ime1reach;time1leave;}Car;typedefstructStack{Car*stack[100];安阳师范学院·数据结构项目课程·inttop;}SqStack;typedefstructcar{Car*data;structcar*next;}QNode;typedefstructNode{QNode*front;QNode*rear;}LinkQueue;主函数voidmain(){SqStackIn,Out;LinkQueueWait;intch;intMAX;floatprice;printf("请输入停车场的容量:");scanf("%d",&MAX
5、);printf("请输入停车场的收费标准(元/小时):");scanf("%f",&price);InitStack(&In,MAX);InitStack(&Out,MAX);安阳师范学院·数据结构项目课程·InitQueue(&Wait);while(1){system("color0A");printf("=======欢迎使用停车场管理系统====================");printf("输入的停车场容量为%d位,费用为%2.1f元/小时,请按任意键进入系统",MAX,price);getchar();system("CLS");printf("======
6、=欢迎使用停车场管理系统==================");printf("您输入的停车场容量为%d位,费用为%2.1f元/小时。",MAX,price);printf("=========================");printf("(1)车辆到达(2)车辆离开(3)停车场信息(4)退出系统请选择");printf("===========================");while(1){printf("请输入操作的序号");scanf("%d",&ch);switch(ch){case1:arrive(&In,&W
7、ait,MAX,price);break;case2:leave(&In,&Out,&Wait,MAX,price);安阳师范学院·数据结构项目课程·break;case3:info(In,Wait);break;case4:{system("CLS");printf("============================");printf("谢谢使用!");printf("=====================================