C语言程序设计实习报告-停车场管理系统.doc

C语言程序设计实习报告-停车场管理系统.doc

ID:56720974

大小:440.50 KB

页数:25页

时间:2020-07-06

C语言程序设计实习报告-停车场管理系统.doc_第1页
C语言程序设计实习报告-停车场管理系统.doc_第2页
C语言程序设计实习报告-停车场管理系统.doc_第3页
C语言程序设计实习报告-停车场管理系统.doc_第4页
C语言程序设计实习报告-停车场管理系统.doc_第5页
资源描述:

《C语言程序设计实习报告-停车场管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言课程设计实习报告  姓名:成帅安学号:院(系):工程学院专业:土木工程2016年6月第一章停车场管理系统§1.1题目描述1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。3、停车操作:当一辆车进入停车场时,先输入

2、其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。4、收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。(停车费用可设置一个变量进行保存),同时从文件"car.dat"中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。按用户的选择来判断是否要输出停车收费的总计。5、输出停车场中全部车辆的信息。6、退出系统。§1.2算法设计1、需求分

3、析:车辆信息用文件储存,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;用键盘式菜单实现功能选择。2、总体设计思路:整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。另外车辆停放信息涉及到从car.dat中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。整体模块图如下:输入车辆车牌号存车putCar停车模块saveAll将车辆信息存入car.dat输入车牌号码取车getCar取车模块删除车辆信息显示停车费用Main键盘式菜单showInfo车位信息Exit退出图1.整体

4、模块图3、各子程序设计如下:(1)使用全局变量数组,用一个二维数组实现停车场车位的信息,intcars[12][4];(2)通过读取car.dat的数据,对程序初始化。下图为car.dat的初始数据:在init()通过一个for循环完成对car.dat中数据的读取。for(i=0;i<12;i++){fscanf(fp,"%d",&cars[i][0]);fscanf(fp,"%d",&cars[i][1]);fscanf(fp,"%d",&cars[i][2]);fscanf(fp,"%d",&cars[i][3]);}(3)设计一个子程序saveAll

5、()用来保存停车场车位的信息到car.dat。用for循环再将处理后的数据存入文件中。for(i=0;i<12;i++){fprintf(fp,"%d",cars[i][0]);fprintf(fp,"%d",cars[i][1]);fprintf(fp,"%d",cars[i][2]);fprintf(fp,"%d",cars[i][3]);fprintf(fp,"");}(4)停车模块:首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。输入出错时要求继续输入。我们引入flag标志量判断车牌号是否正确,初始

6、intflag=1,从键盘读入车牌号码,并判断:printf("请输入您的车牌号:");do{scanf("%d",&temp);if((temp>9999)&&(temp<))break;flag=0;printf("请重新输入五位数车牌号:");}while(!flag);其次,读取的车牌号正确之后对标志量清零flag=0,代表没有没有找到车位,进行为车辆找停车位的操作,如下:flag=0;for(i=1;i<13;i++){if(cars[i][0]!=0)continue;cars[i][0]=temp;flag=1;break;}通过for循

7、环和continue语句找到没有停车的车位,即car[i][0]不等于0,并将标志量flag赋值1,表示有车位,用break语句跳出循环。再用if语句处理flag==1的情况,即停车场车位已满无法停车。最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。语句如下:for(i=0;i<12;i++){if(cars[i][0]!=0)cars[i][3]+=5;cars[i][2]+=i;}又因为我在car.dat已经对车辆的停放楼层和车位有过初始赋值,可以省去再对cars[i][1]和cars[i][2]的操作。并且可以满足“第一层有空位必须

8、停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。