程序设计—泊车管理系统.doc_第1页
程序设计—泊车管理系统.doc_第2页
程序设计—泊车管理系统.doc_第3页
程序设计—泊车管理系统.doc_第4页
程序设计—泊车管理系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计报告( 2011 / 2012 学年 第 一 学期) 题 目: 泊车管理系统 专 业 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 计算机软件教学中心 日 期 泊车管理系统一、 课题内容和要求1、内容:(1)管理人员根据口令进入系统; (2)管理车位信息(车位编号,状态)和每分钟的收费费率; (3)停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间;如果车位已满要给出提示;(4)取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。2、要求:(1) 首先自己设计好界面和算法,车位信息可以保存在文件中; (2) 界面友好,可操作性强,输入信息符合逻辑;(3) 必须完成所要求的各基本功能。二、需求分析(模块一)输入指令:管理员输入指令,如果密码错误,提示重新输入密码;当密码正确,进入车位信息模块。(模块二)车位信息:显示当前车位状况、收费标准,根据车位状况,可以选择存车、取车或者退出。(模块三)存 车:当有空闲车位时,显示空闲车位编号,根据提示选择想要停入的车位,输入车牌号,即可成功停车。 当没有空闲车位但有候车车位时,提示是否候车。选择候车,输入车牌号,候车成功;选择离开,返回车位信息模块。 当没有空闲车位也没有候车车位时,提示没有车位,返回车位信息模块。(模块四)取 车:输入车牌号,自动显示收费金额,取车成功,返回车位信息模块。三、概要设计 输入密码正确收费标准车位信息1. 存车2. 取车3. 退出按3按2按1取车退出存车四、详细设计 #include #include #include#include#includevoid order(); /*指令操作*/void end(); /*管理员退出*/void situation();/*车位信息*/void putcar(); /*存车*/void takecar(); /*取车*/struct tm *local;/*读取系统时间*/time_t t;struct tm *locall;time_t tt;struct tm *localll;time_t ttt;int sum=0;int cars136;void main()/*页面*/char choice;printf(*欢迎进入泊车管理系统*nn);printf(t 请输入指令:);order();dochoice=getchar();switch(choice)case1:situation();break;case2:end();while(1);void order()/*指令操作模块*/char pass=3032;/*设置的密码*/char str5=0,ch;int i=0,n=strlen(pass);while(n-)ch=getch(); /读取字符,不显示if(ch!=n)putchar(*);stri+=ch;getchar();strstrlen(pass)=0;if(strcmp(str,pass)=0)printf(nn登陆成功!n);printf(n进入系统请按1nn);printf(退出系统请按2 );elseprintf(n密码错误,请重新输入:);order();void situation()/* 车位信息模块 */ int i; char choice;printf(n 收费标准n);printf( 停车不足30分钟的,需支付7.5元;超过30分钟的部分按15/时收费n); printf(nt 当前车位信息nn);printf(tt车位号tt车牌号tt时:分n); for(i=0;i=13)printf(tt停车场拥挤,请选择其他停车场n);situation();else if(sum=10) /*如果停车位已停满*/ printf(ntt现在没有多余的停车位!n);printf(ntt是否在候车位等待? ); d1=getchar();d=getchar();switch(d)case y:/*选择候车*/printf(ntt请输入车牌号码: );scanf(%d,&n);for(m=10;m13;m+)if(carsm0=0) /*第m+1号候车位空闲*/ carsm1=n;/*存入车牌号*/carsm0=1;break;printf(tt在候车位停车成功!n);sum=sum+1;/*停车总数加1*/situation();break;case n :/*不候车*/printf(tt谢谢使用此存车系统!n);printf(tt祝您旅途愉快n);printf(tt再见!n);situation();default : situation();else /*有停车位*/ printf(n现在剩下 );for(j=0;j10;j+) /*for循环语句查询剩余的车位*/if(carsj0=0)printf(%d,j+1); /*车位号*/printf(号车位!n);printf(n您想停在哪一个车位? );scanf(%d,&b);/*输入车位号*/for(j=0;j10;j+)while(carsj0!=0&b=j+1)/*如果选择有车的车位*/printf(ntt车位正在使用n);printf(ntt请重新选择!);scanf(%d,&b);if(carsj0=0&b=10)/*如果正确选择车位*/ printf(ntt请输入您的车牌号码: );back0: scanf(%d,&c); for(i=0;itm_hour;carsb-13=local-tm_min;sum=sum+1;situation();void takecar()/*取车模块*/ int i,m,t,a;/*i(车位号),t(计时),m(候车位号),a(取车车牌号)*/ double pay;int k=-1;printf(nt请输入您的车牌号码: );back1: scanf(%d,&a);for(i=0;itm_hour;carsi5=locall-tm_min;k=i;/*取的是第K位的车*/ carsk0=0;break;if(k=-1)printf(此车牌号不存在,请重新输入车牌号: );goto back1;t=(carsk4*60+carsk5)-(carsk2*60+carsk3);if(t30|t=0)pay=7.5; /*如果泊车时间不足30分钟,需支付7.5元*/elsepay=(t-30)*0.25;printf(nntt您需要支付:%.2f元n,pay);printf(tt取车成功!n);printf(tt再见!n);sum=sum-1; /*存入的车辆总数减1*/for(m=10;mtm_hour;carsk3=localll-tm_min;for(m=10;m12;m+)carsm0=carsm+10; /* 将候车位上的车上移*/cars120=0;else /*候车位没有车*/carsi0=0;situation();void end() printf(n=感谢使用泊车管理系统!=nn);printf(t如需进入系统,请再次输入密码:);order();五、测试数据及其结果分析 输入密码:1988在屏幕上显示* 提示密码错误,请重新输入输入密码:3032在屏幕上显示* 显示登陆成功,并显示选项进入系统或退出系统结果分析:符合密码输入要求在车位信息页面,显示了收费标准和车位状态,界面简洁清晰。按1 选择存车按3 选择3号车位输入a123 输入车牌号停车成功 车牌号并不显示a123按1 选择存车按5 选择5号车位输入234 输入车牌号停车成功 车牌号显示234结果分析:程序不识别字母,不具有实际可操作性。应该将输入的车牌号变量由整型改为字符按2 选择取车输入a123 输入车牌号取车成功 显示费用,3号车位没有车按2 选择取车输入1234 输入车牌号提示车牌号不存在,重新输入结果分析:自动计算车费,免去手动输入时间,同时在一定程度上减少输错车牌号造成的影响。当输入a123时,可以成功取车,因此程序需要优化。当没有车位时按1 选择存车提示没有车位,询问是否愿意候车按y 选择候车 按 n 选择不候车提示输入车牌号 显示感谢使用等话语输入124 输入车牌号显示候车成功结果分析:实现了设计时的需求,对各种情况的分析具有人性化。但是没有提示候车的车位号,可能会造成不必要的麻烦。当候车位有车时按2 取车取车成功后,候车位的信息会自动覆盖取完车的信息结果分析:信息自动覆盖,但是没有提示,可能会造成些许麻烦。六、调试过程中的问题 在口令输入模块中,一开始,我们的密码输入是显示的明文,经过老师的提点以及联系实际,密码应该是输入数字或字母,但显示的是*(星号)。最后我们将密码的输入由getchar();改为getch();这样,密码就不会显示出来。在存车模块中,一开始,我们忽略了几种人为的可能。比方说:不小心选择了已经有车的车位,不小心输入了一个已经停入车库的车牌号。因此,我们适当使用了goto语句,尽量避免人为造成的错误。另外一个未解决的问题就是输入的车牌号必须是数字,不符合实际情况。在取车模块中,只需要输入车牌号就可以取车。下一步,我们希望能修改成对车位号和车牌号同时符合才能取车。在退出模块,一开始,我们用了exit();函数,并在.cpp中成功运行。但是在.c中,需要有返回值。最后,我们把exit改成end,也具有结束的意思,解决了一定要有返回值的问题。在存取车模块中,最初的时间计算是人工输入,这并不科学。经过查找资料,我们调用了库函数,实现了读取系统当前时间。在和另一组交流的时候,我们发现程序缺少文件的存档,如果遇到停电等意外,会造成数据的丢失。7、 课程设计总结刚开始拿到题目,我们觉得无从下手,毕竟我们这组的同学对C语言掌握的并不多。多亏网络资源的丰富,我们可以找到类似的程序,可以参考其他人做这种程序时的想法。但是,参考是参考,不能完全拷贝他人的程序,而且,很多程序是有错误不能运行的。所以,最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论