欢迎来到天天文库
浏览记录
ID:52612201
大小:495.50 KB
页数:12页
时间:2020-03-29
《停车场管理系统——C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、停车场管理系统【要求】(1)有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层(停车场可用一个二维数组实现,每个数组元素存放一个车牌号),每辆车的信息包括车牌号、层号、车位号、停车时间共4项,其中停车时间按分钟计算。(2)假设停车场初始状态为第一层已经有4辆车,其车位号依次为1~4,停车时间依次为20,15,10,5,即先将这4辆车的信息存入文件car.dat中(数组的对应元素也要进行赋值)。(3)停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查
2、询车位的使用情况,如果第一层有空位则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添入文件car.dat中,并将在此之前的所有停车时间加5。(4)收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元(停车费用可设置一个变量进行保存),同时从文件car.dat中删除该车的信息,并将该车对应的车位设置为可用状态(即二维数组对应元素清零),按用户的选择来判断是否要输出停车收费的总计。(5)输出停车场中全部车辆的信息。(6)退出系统。【提示】(1)需求分析:车辆信息要
3、用文件储存,提供文件的输入输出操作;当车要离开时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择。(2)总体设计:整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块。二、总体设计根据上面的需求分析,可以将这个系统的设计分为四大模块(如图2-1):停车、取车、车辆信息浏览、退出。其中主要功能是停车、取车、车辆信息浏览三个模块。停车场管理退出停车车辆信息浏览取车图2-1系统功能模块图根据模块图可画出总的流程图(图2-2)NY开始结束显示一系列功能选项根据n的值运行相应模
4、块程序输入n,判断m是否是1~4?图2-2总流程图三、详细设计1、车辆信息车辆信息包括车牌号、层号、车位号、停车时间,将这四类数据组合成结构体car,以便于引用。【程序】structcar{intcarnumber;intfloor;intposition;inttime;}car[12];2、车位信息由于停车场有两层,每层六个车位,故车位信息可由一个二维数组park[2][6]表示,注意停车场中已经停放了4辆车,设这四辆车的车牌号为6840,4167,3548,9201。【程序】intpark[2][6
5、]={6840,4167,3548,9201,0,0,0,0,0,0,0,0};car[0].carnumber=6840;car[0].floor=1;car[0].position=1;car[0].time=20;car[1].carnumber=4167;car[1].floor=1;car[1].position=2;car[1].time=15;car[2].carnumber=3548;car[2].floor=1;car[2].position=3;car[2].time=10;car[3
6、].carnumber=9201;car[3].floor=1;car[3].position=4;car[3].time=5;3、主菜单共包括四项功能:停车、取车、车辆信息浏览、退出。【程序】for(;;){printf("*********************主菜单*********************");printf("请输入数字键:");printf("1.停车");printf("2.取车");printf("3.车辆信息浏览");printf("4.退
7、出");printf("************************************************");scanf("%c",&a);4、各功能模块设计(1)停车模块【需求分析】题目要求必须在一层停满的情况下才能在第二层停车,因此可以利用for语句保证先将第一层停满,设置停车时间为5分钟并将原有车辆的停车时间加5分钟。进行分析时先打开文件检查停车车牌号,若打开文件操作出错则提示不能执行。停车模块流程图如图3-1所示。NY开始输入用户要停车辆的车牌号打开文件出错?提示无
8、法打开文件显示停车成功!关闭文件返回主菜单结束图3-1停车模块流程图【程序】if(a=='1'){printf("请输入车牌号:");scanf("%d",&car[i].carnumber);for(j=0;j<2;++j){for(k=0;k<6;++k){if(park[j][k]==0){park[j][k]=car[i].carnumber;break;}}if(park[j][k]==car[i].carnum
此文档下载收益归作者所有