1、图2-1系统功能模块图根据模块图可画出总的流程图(图2-2)图2-2 总流程图三、详细设计1、车辆信息车辆信息包括车牌号、层号、车位号、停车时间,将这四类数据组合成结构体car,以便于引用。【程序】struct car int carnumber; int floor; int position; int time;car12;2、车位信息由于停车场有两层,每层六个车位,故车位信息可由一个二维数组park26表示,注意停车场中已经停放了4辆车,设这四辆车的车牌号为6840,4167,3548,9201。int park26=6840,4167,3548,9201,0,0,0,0,0,0,0,0
2、; 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; car2.time=10; car3.carnumber=9201; car3.floor=1; car3.position=4; car3.time=5;3、主菜单共包括四项功能:for(;) printf(nn *主菜单*n
3、n); 请输入数字键:n 1.停车n 2.取车n 3.车辆信息浏览n 4.退出nn *nn scanf( %c,&a); 4、各功能模块设计(1)停车模块【需求分析】题目要求必须在一层停满的情况下才能在第二层停车,因此可以利用for语句保证先将第一层停满,设置停车时间为5分钟并将原有车辆的停车时间加5分钟。进行分析时先打开文件检查停车车牌号,若打开文件操作出错则提示不能执行。停车模块流程图如图3-1所示。图3-1 停车模块流程图 if(a=1 printf(n请输入车牌号: scanf(%dcari.carnumber); for(j=0;j2;+j) for(k=0;k6;+k) if(pa
4、rkjk=0) parkjk=cari.carnumber;break; if(parkjk=cari.carnumber)break; cari.floor=j+1; cari.position=k+1; cari.time=5; for(j=0;i; carj.time=carj.time+5; if(fp=fopen(car.dat,w) =NULL) printf(cannot open this filen exit(0);i+1; fprintf(fp,car%d.carnumber=%dn car%d.floor=%dn car%d.position=%dn car%d.time
5、=%dn,j,carj.carnumber,carj.floor,carj.position,carj.time); fclose(fp); printf(n停车成功! +i; (2)取车模块首先输入所取车辆的车牌号,若与车库中所停车辆相符,则取车成功。之后根据用户的选择判断是否需要显示停车费用,此功能可用if条件语句实现。若需要,按每5分钟0.2元算出金额并显示出来。取车后须将该车停车纪录从文件中删除。若输入的车牌号与车库中所停车辆不符,则应给予提示。取车模块流程图如图3-2所示。图3-2取车模块流程图 else if(a=2 char b;carNO); if(carNO=carj.car
6、number)n是否输出停车费用?(Y/N) scanf(b); if(b=Y fee=carj.time/5.0*0.2; printf(车牌号:%d 停车费:,carNO);%f元n欢迎下次光临!,fee); else if(b=N printf(n欢迎下次光临! else n输入错误! parkj/6j%6=0; if(fp=fopen()=NULL) exit(0); for(k=0;j; fprintf(fp,k,cark.carnumber,cark.floor,cark.position,cark.time); for(+k; fclose(fp); if(j=i)nn else
7、 continue;(3)车辆信息浏览模块该模块的功能是显示所有学生的纪录信息。其流程图如图3-3所示。图3-3 车辆信息浏览模块流程图else if(a=3n 停车场所有车辆信息如下: 车牌号 层号 车位号 停车时间n if(parkjk!=0) %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( exit(0); (4)退出模块4)break;四、运行结果(1)主菜单:效果如图4-1所示。图4-1 主菜单(2)停车模块输入”1
8、”按下”enter”键进入停车操作,如图4-2所示。图4-2 停车模块根据提示输入车牌号按下”enter”键,如图4-3所示。图4-3 输入车牌号根据需要再停入两辆车,如图4-4、4-5所示。图4-4 停入第二辆车图4-5 停入第三辆车(3)取车模块输入”2”按下”enter”键进入取车操作,如图4-6所示。图4-6 取车模块根据提示输入车牌号,如图4-7所示。图4-7 输入车牌号根据提示输入”Y”,如图4-8所示。图4-8 输出停车费输入”3”按下”enter”键进入车辆信息浏览模块,如图4-9所示。图4-9 车辆信息浏览模块输入”4”按下”enter”键退出系统,如图4-10所示。图4-10 退出系统
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1