欢迎来到天天文库
浏览记录
ID:853241
大小:265.53 KB
页数:24页
时间:2017-09-20
《停车场管理系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1需求分析1.1基本要求和目的编写一个可以停放n辆汽车的停车场操作系统,该系统有汽车驶入、驶出停车场、查询停车场等功能。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车车位、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。1.2问题描述设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按
2、车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。2总体设计2.1停车场的设计此系统要求停车场要需要用线性表的顺序存储,所以就要用到top,base的指针。在停车场中的每一辆车都包含车辆的车牌号、车位和进
3、站时间等信息,车牌号是车辆的最基本的信息,它可以准确的找寻到此车;车位是根据停车场的情况分配的,进站时间则是计算车辆费用的唯一信息。所以停车场应该采用结构体来储存,具体方法如下:typedefstructelem{stringname;//intdata;//车牌号inttime[12];}elem;//栈节点typedefstruct{elem*base;elem*top;intstacksize;}sqstack;2.2函数的设计在此程序中是通过函数调用,最终实现程序功能。voidinitstack(sqstack&s);初始化栈;voidpushstack(sqstack&
4、s,queue&q);进栈;voidpopstack(sqstack&s,intx,queue&q)出栈;voidinitqueue(queue&q);初始化队列;voidinputqueue(queue&q,intx);进队列voidoutputqueue(sqstack&s,inty,queue&q);出队列intbusmessage(sqstack&s,queue&q);voidtime(inta[]);时间差函数voidtime1(inta[]);获取时间函数voidtime2(inta[]);获取时间函数voidshow(sqstack&s,queue&q);显示信息的
5、函数3详细设计程序的开始主要是利用主函数来调用各个成员函数。首先,主函数main()是设计了一个界面显示函数,并使用initstack(sqstack&s)函数初始化栈。其流程如下:s.base=(elem*)malloc(size*sizeof(elem));If(!s.base)exit(0);s.top=s.base;图3.1initstack()函数初始化栈首先为栈申请内存空间,如果没有申请成功,就返回,如果申请成功,就令栈顶和栈底指针相等,都指向先申请的内存空间。在此同时,令s.base->next=NULL;Intx;//车牌号s.base[s.stacksize-1
6、].data=x;s.stacksize>sizeinputqueue(q,x);s.stacksizesize)判断停车场的车位长度是否大与现在的汽车长辆数,如过大于,就把车停在便道上。如果小于,就把车停在停车场内,并取得进入车库时的时间。b=a[10]+60-a[4];b=a[10]-a[4];a1=a[11]+60-a[5];If(a[10]>=a[4]a1=a[11]-a[5];If(a[11]>=a[5]inta1,b,c;If(a[9
7、]>=a[3]c=a[9]+12-a[3];c=a[9]-a[3];printf("相差时间为%02d:%02d:%02d",c,b,a1);图3.3求时间差time()函数求时间差函数比较简单,先把时间保存在一个数组中,保存的时候为把年份和月份分别保存在数组中,求时间差的时候,就用后面进入时的时间减去前面进入时的时间,在减的时候先判断一下被减数是否比减数大,如果比减数大就向前面进一位,然后加上进位数在减,这样一直减下去就得到了时间差。Inti=s.stacksize;//车长I
此文档下载收益归作者所有