程序设计-停车场管理系统汇总(17页).doc
《程序设计-停车场管理系统汇总(17页).doc》由会员分享,可在线阅读,更多相关《程序设计-停车场管理系统汇总(17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第 1 页-第 2 页程序设计报告(2014/2015 学年 第 1 学期)题目:停车场管理系统专专业业组长组长学号姓名学号姓名组员组员学号姓名学号姓名指指导导教教师师指指导导单单位位日日期期成员分工成员分工组长()组长()代码部分:取车、查询信息、修改停车费费率模块代码部分:取车、查询信息、修改停车费费率模块实验报告:测试数据和结果分析、调试过程中的问实验报告:测试数据和结果分析、调试过程中的问题题组员()组员()代码部分:管理员登陆模块代码部分:管理员登陆模块实验报告:概要设计和课程小结实验报告:概要设计和课程小结组员()组员()代码部分:停车模块的实现代码部分:停车模块的实现实验报告:
2、课程内容和要求、需求分析实验报告:课程内容和要求、需求分析评分细则评分细则评分项评分项优秀优秀良好良好中等中等差差遵守机房规章制度遵守机房规章制度上机时的表现上机时的表现学习态度学习态度程序准备情况程序准备情况程序设计能力程序设计能力团队合作精神团队合作精神课题功能实现情况课题功能实现情况算法设计合理性算法设计合理性用户界面设计用户界面设计-第 3 页报告书写认真程度报告书写认真程度内容详实程度内容详实程度文字表达熟练程度文字表达熟练程度回答问题准确度回答问题准确度简短评语简短评语教师签名:教师签名:年年月月日日评分等评分等级级备注备注评分等级共五种:优秀、良好、中等、及格、不及格评分等级共五
3、种:优秀、良好、中等、及格、不及格停车场管理系统停车场管理系统一、一、课题内容和要求课题内容和要求停车场管理是一个计时收费系统,同时也是一个能对车位进行管理的系统,最基本的功能是实现停车、取车、查询以及修改停车费费率等功能。同时,为了使用的方便和安全的考虑设计了管理员能对密码进行修改的功能。在停车的功能中采用了文件流的形式,对车位、车牌号、车型都进行了保存,以便于查询功能的实现,除此之外,也是为了能够实现在取车模块中利用输入的车牌号自动计算出停车的费用。停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半
4、小时不足一小时按一小时计算)并显示在屏幕上,可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关信息。本系统对不同车型的费率给出了默认值,管理员可以根据实际需要对费率进行修改。功能要求:用 C/C+设计一个程序实现停车场管理系统,要求如下:(1)管理人员根据口令进入系统;(2)管理人员有权限对登陆账号和密码进行修改;(3)管理车位信息(车位编号,状态)和每小时的收费费率;-第 4 页(4)停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;(5)取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。(6)管理人员可
5、以根据需要随时更改每小时的收费费率。二、二、需求分析需求分析停车场管理系统的功能框架图如图 1 所示。图 1 功能框架图(1)系统主要包括了管理员登陆、停车操作、取车操作、信息查询、费率修改这五大模块,每个模块都用用相应的函数来实现这些功能。(2)在管理员登陆模块中,设置了三次输入机会,用户名和密码事先用文档存储,供使用者进入系统;若管理员连续输入密码错误超过提示,则系统给出修改密码或者退出系统的提示,这些功能在函数名为 loadin()的函数中实现。(3)管理员登陆模块结束之后便到了系统的主要界面,选择操作 1 是停车模块。在选择停车操作之后,系统能够实现“将第一个为空的位置,由程序查询自动
6、给出车位号,如果车位已满要给出提示”这一功能用函数 compare()和 jugement()共同实现的。进入停车模块后,还应选择不同的车型进行停车,这一过程会调用 putcar()和 gettime()函数,用来给出不同车型的费率和调用停车时的系统时间。(4)通常选择了停车操作之后取车和查询功能才会有意义,所以取车和查询公共主要是使用了 campare()函数,调用 strcmp()字符串比较函数对输入的车牌号和停车时的车牌号进行比较,若相同,则返回该车位,达到取车和查询的作用。(5)不同的停车场可以根据需要修改每种车型的车辆对应的费率。这个功能在修改费率的模块中实现。(6)根据不同的车型以
7、及其停泊时间收费,间差乘以单价就是最后收费,其中取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上。这个功能需要调用系统时间,因此在整个程序中包含了头文件后(#include)利用结构这种数据类型来实现。三、三、概要设计概要设计-第 5 页1.主要结构体主要结构体为了实现停车场管理系统的停车、取车、查询、修改功能,主要用一个 while 循环,通过输入的数字选择相应的操作。同时为了实现每个模块的功能,引用一些相应的子函数。下面是主要结构体的流程图:图 2主要结构体流程图2.主要函数流程图主要函数流程图(1)管理员登陆模块管理员登陆模块
8、管理员登陆模块是用函数 loadin()来实现的,在 loadin()函数中对账号和密码都有三次的输入机会,用变量 ai 来记录输入的次数,当 ai=3 时,进入修改密码的界面。在修改密码模块了,用 strcpy()函数将输入的字符串 adpassword1 赋值给密码adpassword(adpassword 为全局变量,所以才能起到修改的作用)。修改完成密码后,在 loadin()函数中再次调用 loadin()函数,这样在修改密码后就能重新回到登陆-第 6 页界面进行登陆,大体程序流程图如下:图 3管理员登陆模块流程图(2)比较函数比较函数 compare()()在停车场管理系统的取车、
9、查询模块中都需要用到输入“车牌号判断停车场中是否有该车”这个功能,而 compare()函数就是用来实现这个功能的。其大概思路是,通过输入的字符串与系统储存有的字符串进行比较,如果字符串相等就返回一个 0,如果不相等就返回非 0,而通过 0 和非 0 的控制,便能实现判断的功能,其流程图如下所示:图 4字符串比较函数流程图(3)搜索空车位函数搜索空车位函数 jugement()()对于停车操作来说,需要在所有停车位中找到第一个空车位,并返回这个车位。在该系统中,这个功能由函数 jugement()来实现。设 int 型变量 j 为车位编号,利用数字 positionj的值是否为 1,来判断是车
10、位是否为空(这里是将 1 视为有车,0 为无车)。图 5 搜索空车位函数流程图在这个函数中还要注意:在用 while 循环对每个车位进行逐个判断的时候,j 一定要小于停车场的总车位。除此之外,返回第一个空车位表示将要在这个车位进行停车,因此要重新将 positionj的值置为 1。四、源程序代码四、源程序代码#include#include#include#includeusing namespace std;class carpublic:char no10;int pos;double fee;void putcar();void takecar();void changefee();cl
11、ass Timepublic:int hour;-第 7 页int min;void getime();char adpassword10=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()/-管理员登陆模块-
12、loadin();/-登陆模块结束-int k=0;coutendl;cout请选择:nnt-nnt1.停车操作 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.取
13、车操作 nnt 3.查询信息 nnt 4.修改车费-第 8 页nnt 5.退出nnt-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请输入数字选择需
14、要的操作:endl;coutendl;coutnnt-nnt1.查询车牌号nnt2.查询车位nnt3.退出查询x;if(x=1)search_no();break;else if(x=2)search_position();break;else if(x=3)break;elsecoutt 选择错误,请重新选择:;cout请选择:nnt-nnt 1.停车操作-第 9 页nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退出nnt-nn;/outfile.close();if(k=4)carini.changefee();continue;if(k=5)exit(0)
15、;/-loadin()-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;elsecoutap;if(!strcmp(adpassword,ap)break;elsecout密码错误!n;ai+;if(ai=3)coutendl;cout密码连续输入错误 3 次,请重新选择操作:endl;cout-endl;cout1.修改密码endl;cout2
16、.退出系统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(positionj=1&j50)j+;cout 共有 50 个停
17、车位,当前可使用停车位: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,表示该车位现在已经停车了。(在这种情况下表示找到空车位后就必
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 停车场 管理 系统 汇总 17
限制150内