停车场管理系统

上传人:夏** 文档编号:431715380 上传时间:2022-11-17 格式:DOC 页数:20 大小:239KB
返回 下载 相关 举报
停车场管理系统_第1页
第1页 / 共20页
停车场管理系统_第2页
第2页 / 共20页
停车场管理系统_第3页
第3页 / 共20页
停车场管理系统_第4页
第4页 / 共20页
停车场管理系统_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

1、停车场管理系统及源码目录一、需求分析31、输入的形式和输入值的范围;32、输出的形式;33、程序所能达到的功能;34、测试数据:3二 概要设计41 基本操作:42 本程序包含三个模块:4三 详细设计41 元素类型,结点类型和指针类型:42 每个模块的分析:53 完整的程序:10四 使用说明、测试分析及结果16五、实验总结19一、需求分析1、输入的形式和输入值的范围; 本演示程序中,停车场车位n应为12,首先应输入一个值赋给初始报数上限12,程序应能自动保存车主的车牌号和分配的车位号。车牌号为4为有效数字。2、输出的形式; 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之

2、后,由用户在键盘上输入相应数据(即每位车主的车牌号),停车场内车位序号由程序自动分配。3、程序所能达到的功能;a.地下停车场共有m(m =12)个停车位。 b.停车登记:车牌号,系统分配的车位,等候时间,停车费用。要求:i.车位已全部占用时,不能办理停车,要在过道上等待停车位空出 来。ii.当有空位出来时,提示停在过道上的车进入停车场。c.取车登记:车牌号要求:i.与停车登记时记录的信息共同构成一条停车记录。ii.当车离开时,要去除相应的信息。d.统计 i.当前全部停靠车辆的车牌号及车位。4、测试数据:本系统为了方便测试,先初始化了11个满位,只要再输入一个测试数据测试入场功能就可以进入到,场

3、满入队的操作。因为中文显示页面会出现乱码,所以本系统所有的提示句子用英语指示,有语法错误请原谅。测试数据如下: (1)在首显的操作版面上从提示语言可以实现相应的操作。离开和查询停车场相应的信息(这项有,停车场内的空位情况和等候队列停车的情况)。(2)n1=1598:测试是否能停车场。为测试队满,所以程序数组只定义了一个空位。操作步骤会有相应提示。 n2=1587:由于队满,所以程序转像等候队列。操作成功会有相应提示。二 概要设计 为了实现上述操作,在停车场管理方面,考虑到汽车停放绝对位置是不变,所以用到了二维数组。而在等候队列方面,顾名思义,用到了队列的存储。系统则是在这两个数据结构上传递数据

4、的。用到文件存储方法。1 基本操作:int InitQueue();操作结果:构造空队列,若成功就初始化停车队列的相关信息。int readcommand() ; /*选择功能*/void initialization() ;int readcommand() ;操作结果:显示界面。2 本程序包含三个模块十个函数体: 文件存储:void save();停车场二维数组操作:void car_park(); /*停车操作*/void car_get(); /*取车操作*/void printfdata() /*打印停车场内信息*/void initialization() ; /*初始函数*/队列

5、操作:int InitQueue(); /*初始化队列*/int EnQueue(); /*入队*/int DeQueue(); /*出队*/int print(); /*打印队列*/三 详细设计 1 元素类型,结点类型和指针类型:Int cars124=1111,1,1,5,2222,1,2,10,3333,1,3,10,4444,1,4,15,5555,1,5,20,6666,1,6,25,7777,2,1,10,8888,2,2,10,9999,2,3,10,1212,2,4,10,1313,2,5,10,0,2,6,0; /*二维数组代表停车信息*/(carsio车牌号 carsi1楼

6、层 carsi2楼层对应的车位 carsi3停车时间)typedef struct int number;Car; /*车牌 */typedef struct QNode /*定义一个链式队列(候车道)*/ Car data; struct QNode *next; /*指向下一结点*/QNode,*QueuePtr;typedef struct QueuePtr front; QueuePtr rear;LinkQueue;2 每个模块的分析:(1) 主程序模块:void main() while(1) /*初始化界面*/ /*读取停车场状况*/ case 1: car_park(); /*

7、停车操作*/ case 2: car_get(); /*取车操作*/ case 3: printfdata(); /*停车/候车信息*/ case 0: exit(0); break; /*推出系统*/ default : printf(ERROR! Press Enter to continue.); (2)停车场二维数组操作;/*停车场汽车管理,执行顺序是输入车牌后场满,车辆进入等待队列*/void car_park() /*输入车牌号*/ /*检查输入数据是否合格*/ if(i!=12) printf(nWrong number or its parked !n); /*如果此车号以在,

8、打印此车已停*/ else if(/*输入数据合格*/) /*插入数组*/ for(i=0;i=0) /*无空车位,进入等待队列*/ /*选择操作功能。是否入队*/ EnQueue(&Q,e);/*入队*/ /*汽车离场*/void car_get() /*车牌输入*/ for(i=0;i12;i+) /*场内有匹配的车辆则执行相关操作*/ /*计算停车费*/ carsi0=0; /*取车后车牌清0*/ carsi3=0; /*时间清0*/ /*候车队车辆出队操作*/ /*没匹配车牌时的操作*/(3)队列操作:int InitQueue(LinkQueue *Q) /*构造一个空队列 Q*/

9、int EnQueue(LinkQueue *Q,Car e ) /*候车道插入操作*/void DeQueue(LinkQueue *Q,Car *e) /*等候车辆出队*/int print(LinkQueue *Q) /*输出队列*/ (4) 文件存储模块:void save()FILE *fp;int i,j;if(fp=fopen(cars,w)=NULL)/*打开文件*/if(fwrite(cars,2,1,fp)!=1)/*写入文件*/fclose(fp);void printfdata() /* 停车场信息*/FILE *fp;fp=fopen(cars,r);/*读取文件,停

10、车场数据*/print();/*读取队列内数据*/fclose(fp);(5)初始化页面模块:int readcommand() /*选择函数*/ /*命令行接入数字选择功能操作*/void initialization() /*初始函数*/ /*初始化页面*/(6) 函数调用关系图 有空位入场:开始initialization() readcommand() main()初始化页面车辆入场操作car_park()车牌登记Save()保存信息有空位 N Y是否入等候队列 N YEnQueue()入队操作 完成回到主界面开始 汽车离开:car_get()汽车离开Save()向等候队列的车辆提示有空位等候队列的车主选择入队

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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