停车场管理(共14页).doc
《停车场管理(共14页).doc》由会员分享,可在线阅读,更多相关《停车场管理(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上中 国 地 质 大 学本科生课程论文封面课程名称 C语言程序设计 教师姓名 邵老师 本科生姓名 胡 迪 本科生学号 本科生专业 资源勘查工程(油气方向)所在院系 资源学院 类别: C.本科生 日期: 2011年12月30日 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录1课程论文题目 27.停车场管理2【要求】(1) 有一个两层的停车场,每层有6个车位,当第一层车停满是才允许在第二层停车,(停车场可用
2、一个二维数组来实现,每个数组中存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算(2) 假设停车场初始状态为第一层已经停有四辆,车其车位号依次为14,停车时间依次为20,15,10,5。即先将这四俩车的信息存入文件“car.dat”中(数组的对应元素也要进行赋值)(3) 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件”car.dat”中,并将在此之前的所有车的 停车时间加5.(4) 收费管理(取车):当有车离开
3、时,输入其车牌号,先按其停车时间计算费用每5分钟0.2元.(停车费用可设置一个变量进行保存),同时从文件”car.dat”中删除该车的 信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零).按用户的选择来判断是否要输出停车收费的总计.(5) 输出停车场中全部车辆的信息.(6) 退出系统.【提示】(1) 需求分析车辆信息要用文件存储,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择.(2) 总体设计整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块.2程序设计思路按照题目要求,需要解决一个两层停车场的停车,取
4、车以及对停车场内现有所有车辆信息的浏览问题。我考虑车辆的信息包括车牌号码,层号,车位号以及停车时间4四项信息,可以用一个结构体来实现,而双层停车场的信息可以有一个二维数组来实现,我想将两者用一个二维数组的结构体实现,但使用后发现不好用,还是改成一个复杂的二维数组。开始考虑题目如果仅仅用一个main函数和文件的读写来实现体现不出模块性,于是将各个模块用几个函数分开来写,使思路更加清晰,结构更加分明。3功能模块图(每个功能模块都标注函数名称,如右图)4数据结构设计设计二维数组int cars124=1001,1,1,20,1002,1,2,15,1003,1,3,10,1004,1,4,5,0,1
5、,5,0,0,1,6,0,0,2,1,0,0,2,2,0,0,2,3,0, 0,2,4,0,0,2,5,0,0,2,6,0第一列为车牌号,第二列为层号,第三列为位号,第四列为时间;FILE *fp用于文件car.dat的读写,以及int型的i,j控制循环,输入数字c进行选择调用哪一个函数。并且定义了一个int型d来控制主函数循环的结束,即实现退出系统。5算法设计1、主函数main()主函数通过输入一个数字来选择调用什么函数,而这个功能通过switch()的选择结构来调用。void main() int a;save();/初始化,避免开始进行3浏览信息时司机 for(d=1; d!=0;) p
6、rintf( 请选择: 1停车 2取车 3输出停车场中全部车辆的信息 0退出n );scanf(%d, &a);while(a3)printf(输入的不合法,请输入0-3选择:);switch (a)case 1:Park();break;case 2:Leave();break;case 3:Information();break;case 0:Exit();2、储存信息函数void save()储存信息函数为了方便,不用每一次都进行文件的存储,特地添加这个函数实现功能。void save() /储存信息函数int i,j;if(fp=fopen(car.dat,w)=NULL) print
7、f(cannot open filen); return; for(i=0;i12;i+) for(j=0;j9999|x1000)printf(输入错误的车牌号,请从新输入:);elsefor (i=0;i12;i+) if(carsi0=0) carsi0=x;save();printf(n 成功n); printf(层=%d,车位=%dn,carsi1,carsi2); break;/*如果此车号不在,则进行停车操作*/for (i=0;i12;i+) if(carsi0!=0) carsi3+=5;/*所有停车时间+5*/ save();/*保存以上信息到文件*/ 4、取车函数void
8、 Leave()取车函数是通过输入要取车的车牌号来选择车,输出车辆停车的费用并将刷新后的信息再次写入car.dat文件中。void Leave()/*取车操作*/ int i,y;float price;printf(n 取车n输入车牌号:n);printf(n 车牌号在 1000 至 9999 之间nn); scanf(%d,&y);/*输入要取车的车牌号*/ for(i=0;i12;i+) if(carsi0=y) carsi0=0;/*取车后车牌号清零*/ price=0.2*carsi3/5;/*计算停车费用*/ printf(n 价格是 %8.2fyuann,price);/*打印停
9、车费用*/ carsi3=0;/*时间清零*/ save(); break; else;break;if(i=12)printf(n 此车不在停车场!n);/*如果此车不在,打印号码不在*/ 5、浏览信息函数void Information()浏览信息函数是输出车辆全部信息之用。void Information()/停车信息int i,j;fp=fopen(car.dat,r);/*打开文件car.dat*/ printf( n 车牌号 层号 位置 时间n); for(i=0;i12;i+) for(j=0;j4;j+) fread(cars,2,1,fp);/*读文件*/ printf( %
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 14
限制150内