




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计停车管理系统程序设计实验报告学院:电气信息工程学院专业:电子信息工程专业学生姓名:学生班级:信息11-2学生学号:2012年12月14号一、需求分析二、概要设计三、详细设计四、调试分析五、课程总计,、需求分析1.1系统需求分析停车场管理系统是为了提高停车场的运行效率、加强安全性以及与智能交通系统的信息互 动,把相关科学技术发展领域的最新成果合理有效的应用到停车场管理系统的完善和发展 中。我国数字化技术应用现已逐渐应用到社会的各个领域中;为了节约大量的人力、物力、 财力。本设计针对目前停车场管理存在的介质落后、集成自动化程度低、安全性差、人性化 和运行效率低下的不足,结合目前科学技术
2、领域的最新研究成果,设计了一种技术较先进、 性能可靠、自动化程度较高的停车场管理系统。本设计的指导思想立足于提高停车场管理系统的可靠性、安全性和高效性,对目前我国各大中城市所面临的“停车难”问题的解决,具 有一定的促进作用。1.2功能需求分析1)用户登录:先定义用户名和密码,设置三次输入机会,用户名和密码事先用文档存储,供使用者进入系统。2) 程序登陆后的选择以及信息存储:该模块给出四个选项(1.泊车操作2.取车操作3.查询信息4.退出)。3)信息查询:能够实现将第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关
3、信息。4)计时收费:本模块的算法设计比较简单, 基本的switch函数就能实现对车型的分类,时间则是导入的系统时间, 时间差乘以单价就是最后收费, 其中取车时,需要根据车辆停泊 时间自动计算费用(半小时内以半价计算, 超出半小时不足一小时按一小时计算) 并显示在 屏幕上。】、概要设计设计一个程序实现停车场管理系统,管理人员根据口令进入系统。管理车位信息(车位编号,状态)和每小时的收费费率(货车7元/小时,客车5元/小时,轿车4元/小时,其他3元/小时,由停车时开始计时选择录入)。停车时,建立对象,录入信息(车牌号,停泊位置,停泊开始时间);停车位第一个为空的 位置,由程序查询自动给出车位号,如
4、果车位已满要给出提示。取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算, 超出半小时不足一小时按一小时计算)并显示在屏幕上。可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关信息。可以将录入的信息储存到文件内并且能够随时查询信息。2.1程序模块描述本程序主要有一下几个模块构成:1) 1)用户登陆模块。该模块中定义了全局变量,输入的信息即为事先设置的用户名和 密码,输出的是停车场系统。(无选择项可以改变,只有修改程序才能修改,用户名和密码 事先存入文档“用户名和密码 .txt ”中),用户名和密码共有三次输入机会,正确则登陆停 车场系统,错误则提示重新输入,如果三次都错
5、误则自动退出停车场系统。2) 程序登陆后的选择模块以及信息存储模块。该模块给出四个选项(1.泊车操作2.取车操作3.查询信息4.退出),在停车模块中要输入车牌号,车辆类型,自动输出停车 位以及停车时的系统时间;在取车模块中,输入的为任意车牌号,输出的为停车费;在查询模块中,输入车牌号或者车位号,输出的为车位号或者车牌号;其余选项无输入项,输出项为回到系统或跳出系统(退出)。在本模块中添加对录入信息的储存模块,其中加入记录系 统时间的模块,在用户的选择中进入下一个模块的操作,其中第一个操作的信息将存储并保存进“车辆信息.txt ”。3) 信息查询模块。在这个模块中要将之前存储的信息“车辆信息.t
6、xt ”中的信息输出到运行界面中,我利用二维数组来将信息从文件中输出,该模块中其他的选项为输出当前的车位状态以及根据车牌查询信息。4)计时收费模块。该模块中,定义系统时间函数,在本模块之前定义车辆分类收费模块,将这两个模块结合求出车费输出到界面,其中小于30分钟的按半小时计算,大于30小于60分钟按一小时算。该模块中处理信息都是自动的。其中输入项是开始的时间,为自 动计时,输出的就是车辆收费。2.2程序算法用if语句判断函数,continue1)登陆函数中比较麻烦的用户名和密码做了提前的处理,函数进入程序界面。ofstream 函数存储停车信息,2)在这个模块中,涉及的算法和函数比较多,首先是
7、以及后面的ifstream函数读取存储的信息;用 string 函数导入了系统时间,用if函数做选择项以及车辆类型的选择,以及数组定义timel在ifstream 函数中导出时间。3)这个模块中的函数与第二模块相同,不再详说。4) 这个模块中,主要是用position 将时间设置为空,建立新的时间函数hourl和mini,用struct tm *newtime获取新的系统时间,再做判断。2.3流程逻辑1主体程序开始用户登陆退 出退 出查询信息 查询信息查询车牌号查询历史信息查询车位取车操作泊车操作2、用户登陆开始3、信息查询图 3.5.2选择输入1/2/3/4查询车位查询车牌号导入存储的信息从
8、录入信息中输出输出信息2.4接口函数描述此部分程序有一个主函数和一下子函数:1 int mai n主函数2 void putcar();停车函数3 void takecar();取车函数6 int juge判断车位函数7 double charge收费函数8 void search_pos车位查询函数、详细设计3.1数据文件存储说明本程序只用到了两个数据文件:“用户名和密码.txt ”、“车辆信息.txt ”,其中“用户名“车辆信和密码.txt ”文档中的信息为提前输入的,使用者用于输入账号和密码进入系统, 息.txt ”文档为系统自动生成的文档,用于存放和读取车辆信息,进行查询使用。3.2注
9、释设计注释主要是利于自己和别人来了解程序编写的思路以及运行方法,下面说一下本程序中的注释:1)在登陆模块加的注释为了提醒大家开始了用户登陆界面的设计,以及其中用户名和 密码的定义。2) 主程序开始时用注释提示了一下,在录入信息模块是用到了系统信息,加入了注释,方便理解,以及保存车辆信息时的函数也加入注释,方便自己改错和理解。3)在查询信息模块里,主要注释提示了存储数据的输出形式,用到了二维数组,以及查询历史信息的函数。4)最后的模块中用注释解释了全局变量的清空以及停车时间和车费计算函数的提示,最后是查询函数的注释。#include /输入输出流的头文件#include /标准输入输出的同文件#
10、i nclude 字符串处理的头文件#in clude #include输入输出文件流类的头文件 using n amespace std; /得入名称空间 class car/ 定义类car public:char no 9; int pos; double fee; void putcar(); void takecar();class Timepublic:int hour;int min;void getime();int i,poi;int positio n100=0; car carin 100;Time catime100;int juge();int comp();void
11、search_ no();void search_pos(); void mai n()/定义类 time全局变量/判断车位函数/车牌号查询函数/车位查询函数/定义字符型数组车牌号/定义整形变量车位号/定义双精度变量费用/声明函数停车/声明函数取车/用户登录const char ha10=zhanghe;/ 管理员用户名 const char hb10=1314;管理员密码char cn10,cm10;int ci=0;while(1)cout请输入管理员用户名:;cincn;if(strcmp(ha,cn)cout输入错误!n;ci+;if(ci=3)return;con ti nue;el
12、secout cm;if(!strcmp(hb,cm)break;elsecout密码错误!n;ci+;if(ci=3)return;con ti nue;/主程序int k;cout1.泊车操作endl;cout2.取车操作endl;cout3.查询信息endl;cout4.退出 k;ofstream outfile(车辆信息.txt,ios:app);/以追加形式从硬盘内存读取车辆信息if(! outfile)/如果不在内存中cerropen error!e ndl;输出打开错误exit(1);/非正常运行退出程序/ifstream infile(车辆信息.txt,ios:in);以追加形
13、式从内存到硬盘存车辆信息/if(! outfile)/cerrope n error! k)if(k=1)i=juge();返回值付给icout cari ni. no;cari ni.putcar();cout1.泊车操作endl;cout2.取车操作endl;cout3.查询信息endl;cout4.退出 i;stri ng timel;time_t t;/取地址导入系统时间II保存车辆信息。time(&t);time1=ctime(&t);couttime1;outfilecari ni. no time1e ndl;con ti nue;if(k=2) poi=comp();cari
14、n poi.takecar();cout1.泊车操作endl; cout2.取车操作endl; cout3.查询信息endl; cout4.退出endl;con ti nue;if(k=3)while(1)cout1,查询车牌号请选择endl;cout2,查询车位请选择endl;cout3,查询历史信息请选择 endl;cout4,退出请选择x;选择查询方式if(x=1)search_ no( );break;else if(x=2)search_pos();break;else if(x=3)100 列 5string a,time11005;/定义二维数组读取数据行int i,j,m, n
15、;ifstream infile(车辆信息.txt,ios:in);if(! in file)cerrope n error!a;for(i=0;i5;i+) for(m=0;mtime1mi;cout;couta;for(j=0;j5;j+)for(n=0; n 100; n+) couttime1 nj;将存储的数据用数组形式输出/查询历史信息else if(x=4)break;elsecoutt选择错误谓重新选择:;cout1.泊车操作endl; cout2.取车操作endl; cout3.查询信息endl; cout4.退出endl; outfile.close();int juge(
16、)/判断出第一个空的车位int j=0;while(positio nj=1 &j100)j+;if(j100)positi on j=1;return j;int comp()char ch9;cout ch;for(i nt k=O;k1OO;k+)if(!strcmp(ch,cari nk. no)if(positi on cari n k.pos-1=1)retur n (cari n k.pos-1);break;if(k=100)return k;void car:putcar()/putcar 是 car 类的成员函数int t;while(1)cout1,货车请输入endl;
17、cout2,客车请输入endl; cout3,轿车请输入endl; cout4,其他请输入 t;if(t=1)cari ni.fee=7.0;break;else if(t=2)cari ni.fee=5.0;break;else if(t=3)cari ni.fee=4.0;break;else if(t=4)cari ni.fee=4.0;break;cout输入错误!请重新输入:n;if(i=100)cout对不起,车位已满!n;carini.pos=i+1; /自动输出车位号cout车牌号endl;cout车位号:carini.posendl;catimei.getime();cout
18、现在时间是:catimei.hour:catimei.minendl;void car:takecar()int hour1, min1;double charge;if(poi100)positionpoi=0;重新设置为空位hour1=catimepoi.hour;min 1=catimepoi. min;catimepoi.getime();hour仁catimepoi.hour-hour1;min 1=catimepoi. min-min1;if(min130)计算出停车时间charge=cari n poi.fee*hour1+cari n poi.fee*0.5;elsecharg
19、e=cari n poi.fee*hour1+cari n poi.fee;coutt车费为:charge元.n; 计算出车费输出elsecouttm_hour;mi n=n ewtime-tm_mi n;void search_ no()int poi=comp();if(poi100)coutt 此车已入库,车位为:poi+1endl;elsecoutt此车没有入库。n; 根据车牌号查询是否入库void search_pos()in t loc;cout loc;if(positio n loc-1=1)coutt 车牌号:carinloc-1.noendl;停车直到现在的时coutt 停
20、车时间:catimeloc-1.hour:catimeloc-1.mi*endl;/ 间elsecoutat Dec 08 14:25:28 20126查询信息界面择 择 If迤t 号主逗佔s 唇史选 奎历请 询.询询.出 * * * * B i 2 3 47按车牌查询界面择 择迦 青迦息 05s 屠史选 亠辜SiS 査蚕查退 12 3 4niftlR1234车位为i i8按车位查询界面查询车牌号宀位逋选择3章询历刘言息漬选择 乳退出请选羁29历史信息查询界面:! 查诳车牌号请选择Sat Dec 08 14:25:28 201210查询信息的退出界面请睪4J选氢冃-g .E- TK息 S理峯 土冃亠一 一口睪 位史选 车餐 询询岀 查杳一退11收费界面3 -12元B 5 吉2_ 号为车泊矍 S 五、课程总结经过一个学期对C+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公司项目部负责人安全培训考试试题(下载)
- 2025年承包商入厂安全培训考试试题及完整答案【各地真题】
- 2025年项目部安全培训考试试题答案典型题
- 【部编版】四年级语文下册第20课《我们家的男子汉》精美课件
- 【部编版】四年级语文下册第10课《绿》精美课件
- 2025职场攻略:求职过程中如何识破并规避“陷阱”合同的综合指导
- 2025公寓租赁合同样本
- 2025热水供应合同
- 2025版权转让合同样本参考
- 2025网站开发合同范本参考
- 儿童呼吸机基本使用
- 手术替代治疗方案
- 建筑工程项目管理绩效评价指标体系
- T-CNPPA 3025-2023 药包材质量协议管理指南
- 美洲印第安文明的发展与衰落-玛雅、阿兹特克与印加
- 家庭教育讲座活动流程
- 大学《思想道德与法治》期末考试复习题库(含答案)
- 麦肯锡入职培训第一课在线阅读
- 省级课题结题报告范本
- 什么叫干槽症课件
- 电缆敷设劳务分包合同(通用)
评论
0/150
提交评论