欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    停车场管理(共14页).doc

    • 资源ID:13530865       资源大小:139.50KB        全文页数:14页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    停车场管理(共14页).doc

    精选优质文档-倾情为你奉上中 国 地 质 大 学本科生课程论文封面课程名称 C语言程序设计 教师姓名 邵老师 本科生姓名 胡 迪 本科生学号 本科生专业 资源勘查工程(油气方向)所在院系 资源学院 类别: C.本科生 日期: 2011年12月30日 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录1课程论文题目 27.停车场管理2【要求】(1) 有一个两层的停车场,每层有6个车位,当第一层车停满是才允许在第二层停车,(停车场可用一个二维数组来实现,每个数组中存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算(2) 假设停车场初始状态为第一层已经停有四辆,车其车位号依次为14,停车时间依次为20,15,10,5。即先将这四俩车的信息存入文件“car.dat”中(数组的对应元素也要进行赋值)(3) 停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件”car.dat”中,并将在此之前的所有车的 停车时间加5.(4) 收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用每5分钟0.2元.(停车费用可设置一个变量进行保存),同时从文件”car.dat”中删除该车的 信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零).按用户的选择来判断是否要输出停车收费的总计.(5) 输出停车场中全部车辆的信息.(6) 退出系统.【提示】(1) 需求分析车辆信息要用文件存储,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择.(2) 总体设计整个管理系统可设计为停车模块、取车模块、车辆信息浏览模块.2程序设计思路按照题目要求,需要解决一个两层停车场的停车,取车以及对停车场内现有所有车辆信息的浏览问题。我考虑车辆的信息包括车牌号码,层号,车位号以及停车时间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,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;) printf(" 请选择: 1停车 2取车 3输出停车场中全部车辆的信息 0退出n" );scanf("%d", &a);while(a<0|a>3)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) printf("cannot open filen"); return; for(i=0;i<12;i+) for(j=0;j<4;j+)if(fwrite(cars,2,1,fp)!=1) printf("file write errorn"); fclose(fp); 3、停车函数void Park()停车函数是当有车进入停车场,输入车牌号,通过for循环来检查车应该停在哪里,继续赋值后将它通过save()写入文件car.dat中。void Park()/*停车操作*/ int i,x;printf("n - 欢迎您的光临! - ");printf(" n 请输入车牌号:n"); printf(" 注意:车牌号要在 1000 至 9999 之间n ");scanf("%d",&x);/*输入要停车的车牌号*/ if(x>9999|x<1000)printf("输入错误的车牌号,请从新输入:");elsefor (i=0;i<12;i+) if(carsi0=0) carsi0=x;save();printf("n 成功n"); printf("层=%d,车位=%dn",carsi1,carsi2); break;/*如果此车号不在,则进行停车操作*/for (i=0;i<12;i+) if(carsi0!=0) carsi3+=5;/*所有停车时间+5*/ save();/*保存以上信息到文件*/ 4、取车函数void 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;i<12;i+) if(carsi0=y) carsi0=0;/*取车后车牌号清零*/ price=0.2*carsi3/5;/*计算停车费用*/ printf("n 价格是 %8.2fyuann",price);/*打印停车费用*/ 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;i<12;i+) for(j=0;j<4;j+) fread(cars,2,1,fp);/*读文件*/ printf(" %6d",carsij); printf("n"); fclose(fp);/*关闭文件"car.dat"*/ 6、void Exit()退出函数退出函数为了执行后使程序关闭,这是通过对主函数的一个for循环的控制条件来执行的void Exit()/退出函数printf(" press any key to continue. " );d=0;6程序代码#include <stdio.h>#include <stdlib.h>int cars124=1001,1,1,20,1002,1,2,15,1003,1,3,10, 1004,1,4,5,0,1,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;int d; void save() /储存信息函数int i,j;if(fp=fopen("car.dat","w")=NULL) printf("cannot open filen"); return; for(i=0;i<12;i+) for(j=0;j<4;j+)if(fwrite(cars,2,1,fp)!=1) printf("file write errorn"); fclose(fp); void Park()/*停车操作*/ int i,x;printf("n - 欢迎您的光临! - ");printf(" n 请输入车牌号:n"); printf(" 注意:车牌号要在 1000 至 9999 之间n ");scanf("%d",&x);/*输入要停车的车牌号*/ if(x>9999|x<1000)printf("输入错误的车牌号,请从新输入:");elsefor (i=0;i<12;i+) if(carsi0=0) carsi0=x;save();printf("n 成功n"); printf("层=%d,车位=%dn",carsi1,carsi2); break;/*如果此车号不在,则进行停车操作*/for (i=0;i<12;i+) if(carsi0!=0) carsi3+=5;/*所有停车时间+5*/ save();/*保存以上信息到文件*/ void Leave()/*取车操作*/ int i,y;float price;printf("n 取车n输入车牌号:n");printf("n 车牌号在 1000 至 9999 之间nn"); scanf("%d",&y);/*输入要取车的车牌号*/ for(i=0;i<12;i+) if(carsi0=y) carsi0=0;/*取车后车牌号清零*/ price=0.2*carsi3/5;/*计算停车费用*/ printf("n 价格是 %8.2fyuann",price);/*打印停车费用*/ carsi3=0;/*时间清零*/ save(); break; else;break;if(i=12)printf("n 此车不在停车场!n");/*如果此车不在,打印号码不在*/ void Information()/停车信息int i,j;fp=fopen("car.dat","r");/*打开文件"car.dat"*/ printf(" n 车牌号 层号 位置 时间n"); for(i=0;i<12;i+) for(j=0;j<4;j+) fread(cars,2,1,fp);/*读文件*/ printf(" %6d",carsij); printf("n"); fclose(fp);/*关闭文件"car.dat"*/ void Exit()/退出函数printf(" press any key to continue. " );d=0;void main() int a;save();/初始化,避免开始进行3浏览信息时司机 for(d=1; d!=0;) printf(" 请选择: 1停车 2取车 3输出停车场中全部车辆的信息 0退出n" );scanf("%d", &a);while(a<0|a>3)printf("输入的不合法,请输入0-3选择:");switch (a)case 1:Park();break;case 2:Leave();break;case 3:Information();break;case 0:Exit();7程序运行结果(1)对于停车模块的操作如下:输入“1”按下”enter”进入停车操作。根据提示输入车牌号,停车操作完成。数据运行结果见下图:2):这一部分是取车模块的操作。步骤类似于停车模块,具体操作如下:输入“2”按下”enter”进入停车操作。根据提示输入车牌号,取车操作完成。数据运行结果见下图:(图中分别取得车为1001号,1003号 1005号)(3):这一部分是车辆信息浏览模块的内容。它的操作是在(1),(2)的基础之上的具体操作步骤如下:输入“3”按下”enter”进入停车操作。根据提示输入车牌号,车辆信息浏览模块操作完成。(4)退出系统,输入0,数据运行结果见下图(6) 再次停车检查是否停车正确。8编程中遇到的困难及解决方法由于是第一次如此完整的编写一个程序,编程过程中遇到了许许多多的困难,但由于平时在机房编过许多简单程序,对一些基本的错误犯得相对少一些,当然由于不仔细也遇到过许多很纠结的错误,记忆犹新的是主函数for循环中由于太多,少打了一个,在编译过程中出现error,这是始料未及的,最后是通过一个个函数单独检验才发现并解决这个问题。同时在写这个程序时,有关文件的一章还没学,自己通过自学后对于文件的读写也还不熟练,并且常出错,如fwrite()写进文件中括号里各项的输入,在向老师请教及修改,得到老师的帮助后才把这个问题解决。还有关于Exit()函数的编写时不知道如何下手,通过仔细思考想到用for循环的控制条件来使问题解决。开始在将save()函数隔绝出来时,执行主函数没有初始化导致一开始执行浏览信息操作时就死机,在翁老师指出这个问题后我改正后解决了这个漏洞。当然由于仅仅半年的C语言的学习,对它还不是很了解,所以还参考大量的有关资料。总的来说,在老师的帮助,自己的努力下,最终将停车场管理问题圆满解决。9总结心得及良好建议 C语言实习的过程中,老师主要起引导作用,主要靠自己的学习和编写。当然老师在这个过程中也起着画龙点睛,雪中送炭的作用。可能学习C语言时觉得书本知识都会,可实际要能自己独立编出一个完整的程序,与平时课下的努力是分不开的。C语言的学习不能仅仅停留在书本知识上,必须灵活应用到实践中,所以这次实习学习起了很大的作用。最后,我认为C语言是理科性质的学科,必须保有严谨的态度,在编程过程中认真仔细才能减少错误的发生。同时出现错误是正常的事情,应该冷静的进行一步步的调试,才能在编程的过程中得心应手。10致谢在C语言的实习过程中,让我巩固了C语言的基础知识,以前从来没有这样编过完整并且较为复杂的程序,实习让我有这样的一个机会,自己独立思考,独立设计编写程序。我觉得如今我才算真正摸到了C语言这门课的皮毛。在实习过程中,我要感谢我的老师,一个是带我走进C语言大门的翁老师(老师讲课特别好,C+会再选翁老师的课),我开始喜欢C语言,把所学知识掌握牢固。同时,在这次实习中,邵老师也给了我很大的帮助,老师陪伴我度过了这么长的时间,并且耐心指导,让我能将书本的知识和实践有机结合起来,真正融会贯通,真正对C语言这门课程有了一定的了解。最后真心希望自己能好好努力将明年计算机二级考过,不辜负老师的期望。专心-专注-专业

    注意事项

    本文(停车场管理(共14页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开