c语言大数据结构停车场系统实验报告材料.doc
《c语言大数据结构停车场系统实验报告材料.doc》由会员分享,可在线阅读,更多相关《c语言大数据结构停车场系统实验报告材料.doc(10页珍藏版)》请在课桌文档上搜索。
1、word实验题目:实验六 停车场管理一、 需求分析1 程序的功能:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列大门在最南端,最先到达的第一辆车停放在车场的最北端,假如车场内已停满n辆汽车,如此后来的汽车只能在门外的便道上等候,一旦有车开走,如此排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。1建立静态数组栈作为模拟停车场,动态链表栈作为模拟便道。2车
2、辆到达,停入停车场或者便道,记录车牌号,到达时间。3车辆离开,记录离开时间,输出停车时间和收费。将便道内车停入停车场,记录进入时间。4列表显示停车场,便道内车辆情况。5列表显示历史记录已经离开车的车牌号,到达离开时间,收费。2 输入输出的要求:(1) 输入:字符串车牌号,到达时间,离开时间(2) 输出:停车时间和收费,停车场和便道的停车情况,历史记录。3 测试数据:1停车场:车牌号 苏A1111 到达时间12:20 离开时间13:002停车场:车牌号 苏A1111 到达时间12:20 离开时间13:00;车牌号 苏A2222 到达时间13:00 离开时间14:00 选择停车场内1号位离开,再选
3、择停车场内2号位离开3停车场:车牌号 苏A1111 到达时间12:20 离开时间13:00;车牌号 苏A2222 到达时间13:00 离开时间14:00 便道:车牌号苏A3333 到达时间12:30 离开时间13:00;车牌号 苏A4444 到达时间13:00 离开时间15:00 选择停车场内2号位离开,再选择选择停车场内2号位离开4停车场:车牌号 苏A1111 到达时间12:20 离开时间13:00;车牌号 苏A2222 到达时间13:00 离开时间14:00 便道:车牌号苏A3333 到达时间12:30 离开时间13:00;车牌号 苏A4444 到达时间13:00 离开时间15:00 输出
4、停车场内和便道的停车情况5停车场:车牌号 苏A1111 到达时间12:20 离开时间13:00;车牌号 苏A2222 到达时间13:00 离开时间14:00 便道:车牌号苏A3333 到达时间12:30 离开时间13:00;车牌号 苏A4444 到达时间13:00 离开时间15:00 让苏A1111和苏A2222离开后,再输出停车场内和便道的停车情况,以与历史记录6选择4退出系统二概要设计4 本程序所用的抽象数据类型的定义ADT Stack数据对象:D=ai|ai为ElemSet,i为正整数数据关系:R1=|ai-1,ai都属于D,i为正整数 根本操作:InitStack(&S) /构建一个空
5、栈S DestroyStack(&S) /S 被销毁 StackLength(S) /返回 S 的元素个数,即栈的长度。 StackEmpty(s) /假如栈 S 为空栈,如此返回 TRUE,否如此 FALE。 GetTop(S, &e) /用 e 返回 S 的栈顶元素 ClearStack(&S) /将 S 清为空栈 Push(&S, e) /入元素 e 为新的栈顶元素。 Pop(&S, &e) /删除 S 的栈顶元素,并用 e 返回其值2. 主程序的流程与各程序模块之间的层次关系 1流程:输出菜单“。先选择1,输入车牌号,输出车在停车场的位置,再输入到达时间。随意选择1,2,3,4。假如选
6、1,停车场满后停在便道上,输入车牌号。选择2,输入要离开的车辆在停车场的位置和离开时间。输出停车时间和费用。假如便道上有车,将一辆车移到停车场,输入现在时间。选择3,输出菜单“。选择1,2,3,分别显示停车场,便道,历史记录的情况。选择4返回到开始菜单。最后选择4完毕程序。 二、 详细设计1. 采用c语言定义相关的数据类型1typedef struct timeint hour;int min;Time; /*时间结点*/2typedef struct nodechar num10;Time reach;Time leave; int time;/车停在停车场的总时间CarNode; /*车辆
7、信息结点*/3typedef struct NODECarNode stackMAX+1;int top;SeqStackCar; /*模拟车站*/4typedef struct carCarNode data;struct car *next;QueueNode;5typedef struct NodeQueueNode *head;QueueNode *rear;LinkQueueCar; /*模拟通道*/1主函数void main()SeqStackCar Enter,Temp;LinkQueueCar Wait,Leavecar;int ch;InitStack(&Enter); /*
8、初始化车站*/ InitStack(&Temp); /*初始化让路的临时栈*/InitQueue(&Wait); /*初始化通道*/ InitQueue(&Leavecar); /*初始化离开的车*/while(1) printf(n*);printf(n1. 车辆到达);printf( 2. 车辆离开);printf( 3. 列表显示);printf( 4. 退出系统n); printf(*n);while(1)scanf(%d,&ch);if(ch=1&chtop=0;3初始化便道int InitQueue(LinkQueueCar *carwait) /*初始化便道*/carwait-h
9、ead=carwait-rear=(QueueNode *)malloc(sizeof(QueueNode);if(!carwait-head) exit(OVERFLOW);carwait-head-next=NULL;/队列初始化为NULLreturn OK;4车辆到达,登记车牌号和到达时间int Arrival(SeqStackCar *enter,LinkQueueCar *wait) /*车辆到达*/ if(enter-topMAX) /车辆停入停车场并且登记车牌和到达时间printf(请输入车牌号 : );scanf(%s,enter-stackenter-top.num);pri
10、ntf(该车在停车场第%d个位置n,(enter-top)+1);printf(请输入该车的到达时间 : );scanf(%d:%d,&(enter-stackenter-top.reach.hour),&(enter-stackenter-top.reach.min);(enter-top)+;return OK;else /车辆停在便道上并且登记车牌和到达时间 EnQueue(wait);printf(请输入车牌号 : );scanf(%s,wait-rear-data.num);printf(该车停在便道上等待n);return OK; 5插入新的链表尾void EnQueue(Link
11、QueueCar *wait) /*插入新的队尾*/ QueueNode *p=wait-rear;wait-rear=(QueueNode *)malloc(sizeof(QueueNode);if(!wait-rear) exit(OVERFLOW);p-next=wait-rear;wait-rear-next=NULL;6车辆离开,登记离开时间,输出停车时间和收费。将便道内车辆int Leave(SeqStackCar *enter,SeqStackCar *temp,LinkQueueCar *wait,LinkQueueCar *leavecar)int i,j=enter-top
12、; QueueNode *q=NULL; if(!enter-top) /假如停车场内没有车如此返回printf(停车场内没有车);return ERROR;printf(请输入车在停车场中的位序(1-%d): ,j);scanf(%d,&i);while(ienter-top) printf(输入错误,请重新输入(1-%d): ,j); scanf(%d,&i); while(temp-top +istack(temp-top)+=enter-stack-(enter-top);fee(enter,leavecar);while(temp-top) /将临时存放的车再停回停车场enter-s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据结构 停车场 系统 实验 报告 材料

链接地址:https://www.desk33.com/p-21154.html