停车场管理系统——C语言.docx

上传人:牧羊曲112 文档编号:5034432 上传时间:2023-05-30 格式:DOCX 页数:13 大小:166.46KB
返回 下载 相关 举报
停车场管理系统——C语言.docx_第1页
第1页 / 共13页
停车场管理系统——C语言.docx_第2页
第2页 / 共13页
停车场管理系统——C语言.docx_第3页
第3页 / 共13页
停车场管理系统——C语言.docx_第4页
第4页 / 共13页
停车场管理系统——C语言.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《停车场管理系统——C语言.docx》由会员分享,可在线阅读,更多相关《停车场管理系统——C语言.docx(13页珍藏版)》请在三一办公上搜索。

1、停车场管理系统【要求】(1) 有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用 第二层(停车场可用一个二维数组实现,每个数组元素存放一个车牌号),每辆 车的信息包括车牌号、层号、车位号、停车时间共4项,其中停车时间按分钟计 算。(2) 假设停车场初始状态为第一层已经有4辆车,其车位号依次为14,停车 时间依次为20,15, 10,5,即先将这4辆车的信息存入文件car.dat中(数组的 对应元素也要进行赋值)。(3) 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个 层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空位则必须停 在第一层),停车时间设为5,

2、最后将新停入的汽车的信息添入文件car.dat中, 并将在此之前的所有停车时间加5。(4) 收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算 费用,每5分钟0.2元(停车费用可设置一个变量进行保存),同时从文件car.dat 中删除该车的信息,并将该车对应的车位设置为可用状态(即二维数组对应元素 清零),按用户的选择来判断是否要输出停车收费的总计。(5) 输出停车场中全部车辆的信息。(6) 退出系统。【提示】(1) 需求分析:车辆信息要用文件储存,提供文件的输入输出操作;当车要 离开时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘 式菜单实现功能选择。(2)

3、总体设计:整个管理系统可设计为停车模块、取车模块、车辆信息浏览 模块。二、总体设计根据上面的需求分析,可以将这个系统的设计分为四大模块(如图2-1):停 车、取车、车辆信息浏览、退出。其中主要功能是停车、取车、车辆信息浏览三 个模块。图2-1系统功能模块图根据模块图可画出总的流程图(图2-2)开始图2-2总流程图三、详细设计1、车辆信息车辆信息包括车牌号、层号、车位号、停车时间,将这四类数据组合成结构 体car,以便于引用。【程序】struct carint carnumber;int floor;int position;int time;car12;2、车位信息由于停车场有两层,每层六个车

4、位,故车位信息可由一个二维数组park6 表示,注意停车场中已经停放了 4辆车,设这四辆车的车牌号为6840,4167, 3548, 9201。【程序】int park 2 6=6840,4167,3548,9201,0,0,0,0,0,0,0,0;car0.carnumber=6840;car0.floor=1;car0.position=1;car0.time=20;car1.carnumber=4167;car1.floor=1;car1.position=2;car1.time=15;car2.carnumber=3548;car2.floor=1;car2.position=3;ca

5、r2.time=10;car3.carnumber=9201;car3.floor=1;car3.position=4;car3.time=5;3、主菜单共包括四项功能:停车、取车、车辆信息浏览、退出。【程序】for(;)(* 主菜单printf(nn*nn);请输入数字键:n);1. 停车 n);2. 取车 n);3. 车辆信息浏览n);4. 退出nn);printf(printf(printf(printf(printf(printf(*nn);scanf( %c”,&a);4、各功能模块设计(1停车模块【需求分析】题目要求必须在一层停满的情况下才能在第二层停车,因此可以利用fori吾 句

6、保证先将第一层停满,设置停车时间为5分钟并将原有车辆的停车时间加5 分钟。进行分析时先打开文件检查停车车牌号,若打开文件操作出错则提示不能 执行。停车模块流程图如图3-1所示。图3-1停车模块流程图【程序】if(a=1)printf(n请输入车牌号:);scanf(%d”,&cari.carnumber);for(j=0;j2;+j)for(k=0;k6;+k)if(parkjk=0)parkjk=cari.carnumber;break;if(parkjk=cari.carnumber)break;cari.floor=j+1;cari.position=k+1;cari.time=5;fo

7、r(j=0;ji;+j)carj.time=carj.time+5;if(fp=fopen(car.dat,w) =NULL)printf(cannot open this filen);exit(0);for(j=0;ji+1;+j)fprintf(fp,car%d.carnumber=%dn car%d.floor=%dncar%d.position=%dncar%d.time=%dn”,j,carj.carnumber,carj.floor,carj.position,carj.time);fclose(fp);printf(n 停车成功!n);printf(n);+i;(2)取车模块【

8、需求分析】首先输入所取车辆的车牌号,若与车库中所停车辆相符,则取车成功。之后 根据用户的选择判断是否需要显示停车费用,此功能可用if条件语句实现。若 需要,按每5分钟0.2元算出金额并显示出来。取车后须将该车停车纪录从文件 中删除。若输入的车牌号与车库中所停车辆不符,则应给予提示。取车模块流程图如图3-2所示。【程序】图3-2取车模块流程图else if(a=2)char b;printf(n请输入车牌号:);scanf(%d,&carNO);for(j=0;ji;+j)if(carNO=carj.carnumber)printf(n是否输出停车费用?(Y/N)”);scanf( %c”,&b

9、);if(b=Y)fee=carj.time/5.0*0.2;printf(车牌号:d 停车费:,carNO);printf(%f 元n 欢迎下次光临!n,fee);else if(b=N)printf(n欢迎下次光临!n);elseprintf(n 输入错误!n);printf(n);parkj/6j%6=0;if(fp=fopen(car.dat”,w)=NULL)printf(cannot open this filen);exit(0);for(k=0;kj;+k)fprintf(fp,car%d.carnumber=%dncar%d.floor=%dncar%d.position=%

10、dncar%d.time=%dn”,k,cark.carnumber,cark.floor,cark.position,cark.time);for(+k;ki;+k)fprintf(fp,car%d.carnumber=%dncar%d.floor=%dncar%d.position=%dncar%d.time=%dn”,k,cark.carnumber,cark.floor,cark.position,cark.time);fclose(fp);printf(n);break;if(j=i)printf(n 输入错误!nn);else continue;(3)车辆信息浏览模块【需求分析】该

11、模块的功能是显示所有学生的纪录信息。其流程图如图3-3所示。|开始:显示车辆信息返回主菜单Ij结束图3-3车辆信息浏览模块流程图【程序】else if(a=3)printf(n停车场所有车辆信息如下:nn);printf(-车牌号层号车位号停车时间n);for(j=0;j2;+j)for(k=0;k6;+k)if(parkjk!=0)printf(%d %d %d%dn,carj*6+k.carnumber,carj*6+k.floor,carj*6+k.position,carj*6+k.time);else continue;if(fp=fopen(car.dat,w)=NULL)prin

12、tf(cannot open this filen);exit(0);(4)退出模块【程序】else if(a=4)break;四、运行结果(1)主菜单:效果如图4-1所示。忒c:sualstudio_6 .o_CH5_52. comcomoNMSDEV98piNoebugi.eMe,i主菜单.停肇迫 12 3 4请输入城宇键图4-1主菜单(2)停车模块输入”1”按下”enter”键进入停车操作,如图4-2所示。成、;亡.&1叫曰旧1:项旧_6,0jZHS_52c. CDmC0PM0NM3DE VJ98piNDebug 1. ee请输入数宇键1234停当退 信息浏览一中中:WMAy、M-:WM

13、-Wy#是也退*七-浇土十书快十*七y 土士羔也一个W*%*七退土请输入车髀号:btMKXXXKXX4*KWXKKKWCM*请输入数宇横车车雷停m-M1 2 3 4-信息浏览青输入车牌号位皿 混成功,图4-3输入车牌号根据需要再停入两辆车,如图4-4、4-5所示。信息浏览且JI且且且:且且,且暑具且 且且煮且且具具具且具具具且H.具JL且蛛具R.且隆具且且* CAVEualStudo 6.0 - CHS- CCTTiCCMMONMSDEY98BINDebugl.eKeI谆翠退2. 墨年3. 圭辆信息浏览4. 每请榆入数字饱1234信息、浏览请输入数字横主栗尊四停冷.这 12 3 4输入车牌号:

14、弱 儡车成珈4.图4-5停入第三辆车(3)取车模块输入”2”按下”enter”键进入取车操作,如图4-6所示。技t ;M5UfllStudio_6 ,0jZH3_dc . EDmC0MM0NMSDEy98piNDebug 1. bke 11舞*:%*装:MX*殖:MM:XX,M:%X:K JC 王菜单 舞菩置舞)0厦舞椅菩行*%知置*逋车车面停肇迫12 3 4请输入数字键请输入车牌号=忒t;V1SufllS:udiD_6.0_CHS_52c.edinCOr/MONMSDEV98piNDebug 1.eke请输入数字键4车曹234览息:请输入牛牌号口4岛 号否输出停车费用?/N)图4-7输入车牌

15、号 根据提示输入”Y”,如图4-8所示。忒t;V1SufllS:udiD_6.0_CHS_52c.edinCOr/MONMSDEV98piNDebug 1.eke9请输入车牌号=3156是否箭出停车菟肾YzWY_兰牌号:3456 停年费涸.2酒丽町L 弥迎F次光临,请输入数字键停笔退- 一! 信息浏览图4-8输出停车费(3)车辆信息浏览模块输入”3”按下”enter”键进入车辆信息浏览模块,如图4-9所示。-三浙 -L-twnw汁 停取_直 12 3 4111111353925291G19停丰场所有车辆信息如下=车牌号房号车位号停车时间84 41fc7 2548 9201 1234 2345图4-9车辆信息浏览模块(4)退出模块输入”4”按下”enter”键退出系统,如图4-10所示。览浏4布曹 停攀退 12 3 4息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号