ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:648.01KB ,
资源ID:29676176      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29676176.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计停车场管理系统汇总.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序设计停车场管理系统汇总.docx

1、程序设计停车场管理系统汇总程序设计报告( 2014 / 2015 学年 第 1学期)题 目:停车场管理系统 专 业 组长 学号姓名 组员 学号姓名 指 导 教 师 指 导 单 位 日 期 成员分工组长()代码部分:取车、查询信息、修改停车费费率模块实验报告:测试数据和结果分析、调试过程中的问 题组员()代码部分:管理员登陆模块实验报告:概要设计和课程小结组员()代码部分:停车模块的实现实验报告:课程内容和要求、需求分析评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达

2、熟练程度回答问题准确度简短评语 教师签名: 年 月 日评分等级备注评分等级共五种:优秀、良好、中等、及格、不及格停车场管理系统一、 课题内容和要求 停车场管理是一个计时收费系统,同时也是一个能对车位进行管理的系统,最基本的功能是实现停车、取车、查询以及修改停车费费率等功能。同时,为了使用的方便和安全的考虑设计了管理员能对密码进行修改的功能。在停车的功能中采用了文件流的形式,对车位、车牌号、车型都进行了保存,以便于查询功能的实现,除此之外,也是为了能够实现在取车模块中利用输入的车牌号自动计算出停车的费用。停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。 取车时,需要根据

3、车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上,可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关信息。本系统对不同车型的费率给出了默认值,管理员可以根据实际需要对费率进行修改。功能要求:用C/C+设计一个程序实现停车场管理系统,要求如下:(1) 管理人员根据口令进入系统;(2) 管理人员有权限对登陆账号和密码进行修改;(3) 管理车位信息(车位编号,状态)和每小时的收费费率;(4) 停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;(5) 取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊

4、时间自动计算费用并显示在屏幕上。(6) 管理人员可以根据需要随时更改每小时的收费费率。二、 需求分析停车场管理系统的功能框架图如图1所示。图1 功能框架图(1)系统主要包括了管理员登陆、停车操作、取车操作、信息查询、费率修改这五大模块,每个模块都用用相应的函数来实现这些功能。(2)在管理员登陆模块中,设置了三次输入机会,用户名和密码事先用文档存储,供使用者进入系统;若管理员连续输入密码错误超过提示,则系统给出修改密码或者退出系统的提示,这些功能在函数名为loadin()的函数中实现。(3)管理员登陆模块结束之后便到了系统的主要界面,选择操作1是停车模块。在选择停车操作之后,系统能够实现“将第一

5、个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示”这一功能用函数compare()和jugement()共同实现的。进入停车模块后,还应选择不同的车型进行停车,这一过程会调用putcar()和gettime()函数,用来给出不同车型的费率和调用停车时的系统时间。(4)通常选择了停车操作之后取车和查询功能才会有意义,所以取车和查询公共主要是使用了campare()函数,调用strcmp()字符串比较函数对输入的车牌号和停车时的车牌号进行比较,若相同,则返回该车位,达到取车和查询的作用。(5)不同的停车场可以根据需要修改每种车型的车辆对应的费率。这个功能在修改费率的模块中实现。(6)

6、根据不同的车型以及其停泊时间收费,间差乘以单价就是最后收费,其中取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上。这个功能需要调用系统时间,因此在整个程序中包含了头文件后(#include)利用结构这种数据类型来实现。三、概要设计 1. 主要结构体为了实现停车场管理系统的停车、取车、查询、修改功能,主要用一个while循环,通过输入的数字选择相应的操作。同时为了实现每个模块的功能,引用一些相应的子函数。下面是主要结构体的流程图: 图2 主要结构体流程图2. 主要函数流程图(1)管理员登陆模块管理员登陆模块是用函数loadin()来实

7、现的,在loadin()函数中对账号和密码都有三次的输入机会,用变量ai来记录输入的次数,当ai=3时,进入修改密码的界面。在修改密码模块了,用strcpy()函数将输入的字符串adpassword1赋值给密码adpassword(adpassword为全局变量,所以才能起到修改的作用)。修改完成密码后,在loadin()函数中再次调用loadin()函数,这样在修改密码后就能重新回到登陆界面进行登陆,大体程序流程图如下: 图3 管理员登陆模块流程图(2)比较函数compare() 在停车场管理系统的取车、查询模块中都需要用到输入“车牌号判断停车场中是否有该车”这个功能,而compare()函

8、数就是用来实现这个功能的。其大概思路是,通过输入的字符串与系统储存有的字符串进行比较,如果字符串相等就返回一个0,如果不相等就返回非0,而通过0和非0的控制,便能实现判断的功能,其流程图如下所示: 图4 字符串比较函数流程图(3)搜索空车位函数jugement() 对于停车操作来说,需要在所有停车位中找到第一个空车位,并返回这个车位。在该系统中,这个功能由函数jugement()来实现。设int型变量j为车位编号,利用数字positionj的值是否为1,来判断是车位是否为空(这里是将1视为有车,0为无车)。 图5 搜索空车位函数流程图 在这个函数中还要注意:在用while循环对每个车位进行逐个

9、判断的时候,j一定要小于停车场的总车位。除此之外,返回第一个空车位表示将要在这个车位进行停车,因此要重新将positionj的值置为1。四、源程序代码 #include #include #include #includeusing namespace std; class car public: char no10; int pos; double fee; void putcar(); void takecar(); void changefee(); ; class Time public: int hour; int min; void getime(); ; char adpassw

10、ord10=123456;char adname10=wcx;int i,poi; int position50=0;/全局变量 car carin50; Time catime50; double Fee1=6.0, Fee2=5.0, Fee3=4.0 , Fee4=3.0 ;int jugement(); int compare(); void search_no(); void search_position(); void loadin();void main()/-管理员登陆模块-loadin();/-登陆模块结束-int k=0;coutendl; cout请选择: nnt- n

11、nt1.停车操作 nnt2.取车操作 nnt3.查询信息 nnt4.修改车费 nnt5.退 出 nnt-nn; ofstream outfile(车辆信息.txt,ios:app);if(! outfile)cerropen error!k) if(k=1) i=jugement();/-通过jugement()函数返回第一个空的车位icout- endl; coutcarini.no; /用户输入停在第i个车位的车牌号carini.putcar(); cout请选择: nnt- nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退 出 nnt

12、 -nn;string time1;time_t t; time(&t); time1=ctime(&t); couttime1;/-导入系统时间outfilecarini.no time1endl;continue; if(k=2) poi=compare(); carinpoi.takecar(); cout请选择: nnt- nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退 出 nnt -nn;continue; if(k=3) int x; while(1) cout请输入数字选择需要的操作:endl; coutendl; cout

13、nnt- nnt1.查询车牌号 nnt2.查询车位 nnt3.退出查询 x; if(x=1) search_no(); break; else if(x=2) search_position(); break; else if(x=3) break; else coutt选择错误,请重新选择:; cout请选择: nnt- nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退 出 nnt -nn; /outfile.close();if(k=4) carini.changefee(); continue; if(k=5) exit(0);/-l

14、oadin()-void loadin()char an10,ap10; int ai=0; cout -欢迎使用XX停车场管理系统-endl; while(1) coutendl;coutan; if(strcmp(adname,an) cout此用户名不存在!n; ai+;if(ai=3)exit(0);continue; else coutap; if(!strcmp(adpassword,ap) break;else cout密码错误!n; ai+; if(ai=3) coutendl; cout密码连续输入错误3次,请重新选择操作:endl; cout-endl; cout1.修改密

15、码endl; cout2.退出系统endl; cout-k) if(k=1) cout请输入新的密码,密码不超过10位数:adpassword1; strcpy(adpassword,adpassword1); cout你的新密码是:endl; coutadpasswordendl; loadin(); break; if(k=2) exit(0); if(k!=1&k!=2) cout输入错误,请重新输入:; return;continue; cout登陆成功! endl;/- jugement() -int jugement() /-判断出第一个空的车位 int j=0; while(po

16、sitionj=1&j50) j+; cout 共有50个停车位,当前可使用停车位 :50-jendl;coutendl;cout 本停车场收费标准如下:endl;coutendl;cout 货车每小时Fee1元,客车每小时Fee2元,轿车每小时Fee3元,其它车辆每小时Fee4元。endl;cout 注:停车时间小于30分钟的按0.5个小时计算,超过30分钟但不足1小时的按1个小时收费endl;if(j50) positionj=1; /当找到第一个空车位时(即position=0时,并且满足车位号j100的情况下) ,然后选择该车位停车, /停车后将position重新置为1,表示该车位现

17、在已经停车了。(在这种情况下表示找到空车位后就必须停在这个车位上)return j; /-compare()- int compare() char ch10; coutch; for(int k=0;k50;k+) if(!strcmp(ch,carink.no) / -将输入的车牌号与停车场上的每个位子的车辆进行比较(包括那些没停车的车位) if(positioncarink.pos-1=1) / 在car:putcar()函数中因为要输出车位号,所以将对象数组carink.pos变为了carink.pos+1, / 于是用数组position找已经停车的车位时要将其处理为carink.p

18、os-1 return (carink.pos-1); break; if(k=50) return k; /- car:putcar()-void car:putcar() int t; /车辆类型的变量 while(1) cout请选择车型:endl;coutendl;coutnnt- nnt货车请输入1 nnt客车请输入2 nnt轿车请输入3 nnt其他车辆请输入4 t; if(t=1) carini.fee=Fee1;break; else if(t=2) carini.fee=Fee2;break; else if(t=3)carini.fee=Fee3;break; else if

19、(t=4)carini.fee=Fee4;break;cout输入错误!请重新输入:n; if(i=50) cout对不起,车位已满!n; carini.pos=i+1; /-自动输出车位号,数组里0表示第一位,而车位的第一位是1,所以carini.pos=i+1;coutnnt-;coutnnt已成功选择车位!车位号是:carini.posendl; catimei.getime(); coutnnt现在时间是:catimei.hour:catimei.minendl; coutnnt-endl; /- car:takecar()-void car:takecar() int hour1,m

20、in1; double charge; if(poi50) positionpoi=0; /-通过取车操作后,重新将该车位设定为空车位hour1=catimepoi.hour; min1=catimepoi.min; catimepoi.getime(); hour1=catimepoi.hour-hour1; min1=catimepoi.min-min1; if(min130)/计算出停车时间,不足30分钟的按30分钟计算 charge=carinpoi.fee*hour1+carinpoi.fee*0.5; else charge=carinpoi.fee*hour1+carinpoi.fee; coutt车费为:charge元.n; /计算出车费输出 else couttm_hour; min=newtime-tm_min; /- search_no()- void search_no() int poi=compare(); if(poi50) coutt此车已入库,车位为:poi+1endl; else coutt此车没有入库。n; /根据车牌号查询是否入库 /-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1