




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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)NY开始结束显示一系列功能选项根据n的值运行相应模块程序输入n,判断m是否是14?图2-2 总流程图三、详细设计1、车辆信息车辆信息包括车牌号、层号、车位号、停车时间,将这四类数据组合成结构体car,以便于引用。【程序】struct carint carnumber;int floor;int position;int
4、time;car12;2、车位信息由于停车场有两层,每层六个车位,故车位信息可由一个二维数组park26表示,注意停车场中已经停放了4辆车,设这四辆车的车牌号为6840,4167,3548,9201。【程序】int park26=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.
5、floor=1;car2.position=3;car2.time=10;car3.carnumber=9201;car3.floor=1;car3.position=4;car3.time=5;3、主菜单共包括四项功能:停车、取车、车辆信息浏览、退出。【程序】for(;)printf("nn *主菜单*nn");printf(" 请输入数字键:n");printf(" 1.停车n");printf(" 2.取车n");printf(" 3.车辆信息浏览n");printf(" 4.退
6、出nn");printf(" *nn");scanf(" %c",&a); 4、各功能模块设计(1)停车模块【需求分析】题目要求必须在一层停满的情况下才能在第二层停车,因此可以利用for语句保证先将第一层停满,设置停车时间为5分钟并将原有车辆的停车时间加5分钟。进行分析时先打开文件检查停车车牌号,若打开文件操作出错则提示不能执行。停车模块流程图如图3-1所示。NY开始输入用户要停车辆的车牌号打开文件出错?提示无法打开文件显示停车成功!关闭文件返回主菜单结束图3-1 停车模块流程图【程序】if(a='1')printf(&
7、quot;n请输入车牌号:");scanf("%d",&cari.carnumber);for(j=0;j<2;+j)for(k=0;k<6;+k)if(parkjk=0)parkjk=cari.carnumber;break;if(parkjk=cari.carnumber)break;cari.floor=j+1;cari.position=k+1;cari.time=5;for(j=0;j<i;+j)carj.time=carj.time+5;if(fp=fopen("car.dat","w"
8、) =NULL)printf("cannot open this filen");exit(0);for(j=0;j<i+1;+j)fprintf(fp,"car%d.carnumber=%dn car%d.floor=%dn car%d.position=%dn car%d.time=%dn",j,carj.carnumber,carj.floor,carj.position,carj.time);fclose(fp);printf("n停车成功!n");printf("n");+i;(2)取车模块【需求分
9、析】首先输入所取车辆的车牌号,若与车库中所停车辆相符,则取车成功。之后根据用户的选择判断是否需要显示停车费用,此功能可用if条件语句实现。若需要,按每5分钟0.2元算出金额并显示出来。取车后须将该车停车纪录从文件中删除。若输入的车牌号与车库中所停车辆不符,则应给予提示。取车模块流程图如图3-2所示。NYYN结束输入所取车辆的车牌号码是否找到停车纪录?提示输入错误询问是否输出费用?显示停车费用开始返回主菜单图3-2取车模块流程图【程序】else if(a='2')char b;printf("n请输入车牌号:");scanf("%d",&a
10、mp;carNO);for(j=0;j<i;+j)if(carNO=carj.carnumber)printf("n是否输出停车费用?(Y/N)");scanf(" %c",&b);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");else printf(&quo
11、t;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;k<j;+k)fprintf(fp,"car%d.carnumber=%dn car%d.floor=%dn car%d.position=%dn car%d.time=%dn",k,cark.carnumber,cark.floor,cark.p
12、osition,cark.time);for(+k;k<i;+k)fprintf(fp,"car%d.carnumber=%dn car%d.floor=%dn car%d.position=%dn car%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)车辆信息浏览模块【需求分析】该模块的功能是显示所有学
13、生的纪录信息。其流程图如图3-3所示。开始结束显示车辆信息返回主菜单图3-3 车辆信息浏览模块流程图【程序】else if(a='3')printf("n 停车场所有车辆信息如下:nn");printf(" 车牌号 层号 车位号 停车时间n");for(j=0;j<2;+j)for(k=0;k<6;+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);
14、else continue;if(fp=fopen("car.dat","w")=NULL)printf("cannot open this filen");exit(0); (4)退出模块【程序】else if(a='4')break;四、运行结果(1)主菜单:效果如图4-1所示。图4-1 主菜单(2)停车模块输入”1”按下”enter”键进入停车操作,如图4-2所示。图4-2 停车模块根据提示输入车牌号按下”enter”键,如图4-3所示。图4-3 输入车牌号根据需要再停入两辆车,如图4-4、4-5所示。图4-4 停入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西方国家政治文化与竞争机制试题及答案
- 2025年羟丙纤维素项目发展计划
- 2025年烧伤整形科手术器械项目发展计划
- 木工铅笔在线平台行业深度调研及发展项目商业计划书
- 模特培训AI应用行业跨境出海项目商业计划书
- 瑜伽放松班行业深度调研及发展项目商业计划书
- 河流博物馆行业深度调研及发展项目商业计划书
- 人口低生育率背景下基础教育高质量发展策略研究
- 培养高素质应用型人才的策略及实施路径
- 关于成立家具公司可行性研究报告(范文参考)
- 高原病科发展规划
- 钻芯法检测技术自测题单选题100道及答案
- 《Python程序设计基础教程(微课版)》全套教学课件
- 行贿忏悔书-保证书
- HG∕T 4377-2012 浮动上滤式过滤器
- 机关事务管理局门套施工合同
- 毕业设计(论文)-某中型货车悬架总成设计
- 广东省汕尾市2023-2024学年八年级下学期7月期末生物试题
- 2024年上海卷高考数学真题试卷及答案
- 《百合花开》教学设计
- 模拟电子技术基础智慧树知到期末考试答案章节答案2024年北京航空航天大学
评论
0/150
提交评论