文档详情

停车场管理系统课程设计报告

无***
实名认证
店铺
DOC
72.50KB
约20页
文档ID:90831978
停车场管理系统课程设计报告_第1页
1/20

WD...重庆科技学院?面向对象程序设计?课程设计报告学 院:_ 电气与信息工程学院_ 专业班级: 计科12-04 学生姓名: 田园 学 号: 2012442095 设计地点〔单位〕________计算机自主学习中心 ___ _____ 设计题目:_____ _ 停车场管理系统__ ____ 完成日期: 2013 年1月18日指导教师评语:______________________ __ __________________________________________________________________________________________________________________________________________________________________________________________________________________________________ _ 成绩〔五级记分制〕:______ __________ 指导教师〔签字〕:________ ________ 摘要当今社会,停车场管理电脑化已经成为了停车场管理的不可缺少的一项重要内容,随着停车车辆的不断增加,停车场对停车的管理越来越复杂,所以要实现对停车的正确管理是必不可少的。

本次课程设计就是为了对停车 基本的信息及其停车费用的管理做一个简单的表现,主要实现对停车的信息录入,修改,删除,显示,添加,查找等几个方面的功能而要实现这些功能,首先要建一个数组,将所有停车的信息都统筹起来,而且通过C++建设类的方式完成这些过程,并且能准确明显的显示每辆停车的 基本信息和对其资费的管理通过如此对停车的管理,可以到达对停车信息的准确管理关键词:停车场管理 数组 C++ 类重庆科技学院课程设计任务书设计题目:停车场管理系统设计学生姓名课程名称程序设计根基课程设计专业班级计科11地 点I304/I306起止时间2013年1月7日~1月18日设计内容及要求1〕问题描述定义车辆类,属性有车牌号、颜色、车型〔小汽车、小卡、中卡和大卡〕、到达的时间和离开的时间等信息和相关的对属性做操作的行为定义一个管理类,完成对停车场的管理停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列〔大门在最南端,最先到达的第一辆车停放在车场的最北端〕,假设车场内已停满n辆汽车,那么后来的汽车只能在门外的便道上等待,一旦有车开走,那么排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

2〕功能要求〔1〕添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,那么提示数据添加重复并取消添加〔2〕查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进展查询,如果未找到,给出相应的提示信息,如果找到,那么显示相应的记录信息;〔3〕显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行〔4〕编辑功能:可根据查询结果对相应的记录进展修改,修改时注意车牌号的唯一性〔5〕删除功能:主要实现对已添加的车辆记录进展删除如果当前系统中没有相应的人员记录,那么提示“记录为空!〞并返回操作〔6〕统计功能:能统计停车场中车辆的总数、按车型、按到达时间进展统计等3〕问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 〔1〕应用系统分析,建设该系统的功能模块框图以及界面的组织和设计;〔2〕分析系统中的各个实体及它们之间的关系; 〔3〕根据问题描述,设计系统的类层次; 〔4〕完成类层次中各个类的描述; 〔5〕完成类中各个成员函数的定义; 〔6〕完成系统的应用模块; 〔7〕功能调试;〔8〕完成系统总结报告根据题目要求,运用所学知识,完成设计和实现工作,并按照书写标准,撰写课程设计报告。

设计参数〔1〕系统分析、设计正确〔2〕结果以图表方式显示〔3〕界面简洁、美观〔4〕报告格式标准进度要求周一:明确设计任务,学习相关根基知识周二:熟悉各知识点,进展根基练习周三:根据题目要求,进展设计和实现周四:根据题目要求,进展设计和实现周五:程序测试参考资料[1]Richard Johnsonbaugh. Martin Kalin.?面向对象程序设计—C++语言描述?.机械工业出版社.2009年[2]钱能.?C++语言程序设计教程?.清华大学出版社.2005年其它说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用2.假设填写内容较多可另纸附后3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013年1月1日目录1.软件需求分析说明书 主要介绍该软件具有哪些详细的功能,及软件的界面要求、数据构造要求等〔要把软件的所有的功能全部写在该局部〕1.课程设计的目的和要求1.1 综合要求和目的:C++语言课程设计的主要目的是培养学生综合运用C++语言程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。

通过课程设计的训练,学生应该能够了解程序设计的 基本开发过程,掌握编写、调试和测试C++语言程序的 基本技巧,充分理解构造化程序设计的 基本方法C++语言程序设计的主要任务是要求学生遵循软件开发过程的 基本标准,运用构造化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告1.2 本课程设计的目标:1. 稳固和加深学生对C++语言课程的 基本知识的理解和掌握2. 掌握C++语言编程和程序调试的 基本技能3. 掌握利用C++语言进展软件设计的方法4. 提高书写程序设计说明文档的能力5.提高运用C++语言解决实际问题的能力1.3 基本要求:1.分析课程设计题目的要求2.对系统功能模块进展分析,写出详细的设计说明文档3. 编写程序代码,代码量要求不少于300行,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5.设计完成后提交课程设计报告1.4 设计要求停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列〔大门在最南端,最先到达的第一辆车停放在车场的最北端〕,假设车场内已停满n辆汽车,那么后来的汽车只能在门外的便道上等待,一旦有车开走,那么排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

车进入停车场需要输入该车的车牌信息,车的颜色,车的型号和车进入停车场的准确时间其中车牌信息是一辆车的标志,只有通过车牌信息才能准确确实认该车;车的颜色是每辆的共有属性车的型号一共分为四种,包括小汽车,小卡,中卡,大卡这四种车型是用来统计车辆信息的利器,停车场管理员可以根据四辆车的型号来统计这四种车分别有多少辆这样才能更好的管理停车场中的所有停车车进入停车场的准确时间包括车进停车场的年,车进停车场的月,车进停车场的日,车进停车场的小时,车进停车场的分钟,车进停车场的秒只有准确的记录这些信息才能对停车的信息把握的更充分,更到位而且必须根据车进入停车场的时间才能在车开出停车场的时候计算出该车在停车场中所停的时间,才能通过停车时间来计算车辆应该缴纳的停车费用只有完全准确地输入所有的信息各种车辆才能有条不紊的进出停车场,完成停车,停车场管理员才能更加更好的完成工作2.系统分析与设计2.1 软件界面设计画出软件全部输入、输出数据的界面,并对每一个界面进展详细的操作说明首页:图2.1-0这是首页,接下来输入选择的操作的序号输入1:图2.1-1选择1接下来输入进入停车场的车的车牌号,输完了车牌号之后会有Color、CheXing、year、mouth、day、hour、minute、second的信息输入。

输入2:图2.1-2选择2接下来输入要离开停车场的车的车牌号,根据车牌号可以让车辆离开停车场,并且会在确认停车场之内有该辆车之后输入离开时间,用以计算停车费用输入3:图2.1-3选择3接下来输入车牌号就可以查询停车场中是否存在该车,如果没有有两种选择,一是车辆入库,二是返回首页,接下来输入相应的操作序号,就可以到达相应效果,如果输入错误会有提示,并给出返回首页的操作如果停车场中有该辆车,程序就会输出该车的所有信息,并给出三种选项:一是删除该给信息,二是修改该车信息,三是返回首页,输入相应序号可以完成相应操作,如果输入错误会有提示,并给出返回首页的操作输入4:图2.1-4接下来程序就会显示出停车场中的所有车辆信息,并且这些车辆信息会每辆汽车的信息站一列显示,这样就可以很轻松的对信息进展观察信息显示完了之后会有:1.返回首页 的选择操作,如果输入1就会返回首页,果输入错误会有提示,并给出返回首页的操作输入5:图2.1-5输入了5,就会程序就会显示出按总数统计和按车型统计两种选择统计方法,如果接着输入1,选择按总数统计,程序就会自动的统计出停车场中现有的停车数量接下来就会给出返回首页的操作,如果选择怎却就会返回首页,如果错误会有提示,并继续给出返回首页的操作。

如果输入2,选择按车型统计,程序就会自动的将四种车型在停车场中的数量分别统计其辆数,并且显示出来接下来就会给出返回首页的操作,如果选择怎却就会返回首页,如果错误会有提示,并继续给出返回首页的操作输入其它:图2.1-6如果输入的不是1、2、3、4、5种选项中的其中一种,二是随意乱输的一个数值,程序就会显示无此选项!的操作并且给出返回首页重新选择的操作如果继续输入错误就会继续提示2.2 软件的数据〔构造〕设计对整个软件使用的文件功能、文件内部的数据格式进展说明图2.2-1在本课程设计中我一个用了一个txt文本来存储车辆信息,在该文本中,第一行是一个整形的数值,它的作用是显示该文本中一共存放了多少来辆车2.3 软件的算法设计 画出整个软件的模块图、并对每一个模块图的算法用程序流程图、功是伪代码来实现四种车型分别数量全部车辆数车牌号入场时间车型车色车牌汽车信息统计显示所有汽车汽车信息查询汽车出停车场汽车进停车场首页车牌号图2.3-13. 软件的实现与测试3.1 软件的实现3.1.1车的类型车的属性,车包括车牌号,车色,车型,入停车场时间等属性车的方法,包括Set〔〕、show〔〕两个方法。

车的属性中车牌具有唯一性,是用来分辨各辆车的唯一标准,所以输入时一定要小心别输入错误;色车在各种车中是可以一样的,不具有唯一性;车型一共就只有四种,分别是xiaoqiche,xiaoka,zhognka,daka,输入时一定要注意车型;汽车进入停车场时间用来在后面计算汽车费用是必不可少的,所以以上四种属性多很重要车的方法是Set〔〕,show〔〕其中Set〔〕的作用是用来给车的属性赋值用的,而show〔〕的作用是用来展示车的各种属性的class Che{public: string ID; string Color; string CheXing; Time aTime; Che *Next; Che(){} void Set() { cout<<"ID="; cin>>ID; cout<<"Color="; cin>>Color; cout<<"CheXing=(xiaoqiche xiaoka zhongka daka)"<>CheXing; aTime.setTime(); } void show() { cout<

时间方法,包括setTime(),showTime()两种方法此程序中的时间类型一共就有year,mouth,day,hour,minute,second,其中year,mouth,day,hour,minute是用来计算停车时间必不可少的因素,而second是用来确定准确时间的,所以都很重要,不容有错!时间的方法就是setTime(),showTime()其中setTime〔〕使用来给时间赋值的,而showTime〔〕是用来展示时间属性的!class Time{public: int year; int mouth; int day; int hour; int minute; int second; void setTime() { cout<<"Time"<>year; cout<<"mouth:"; cin>>mouth; cout<<"day:"; cin>>day; cout<<"hour:"; cin>>hour; cout<<"minute:"; cin>>minute; cout<<"second:"; cin>>second; } void showTime() { cout<

所以好的软件不能没有好的首页,接下来就是我的首页函数void Shouye()//首页{ int i; cout<<"**************************\n"; cout<<"\t"<<"1.汽车进停车场\n"; cout<<"\t"<<"2.汽车出停车场\n"; cout<<"\t"<<"3.汽车信息查询\n"; cout<<"\t"<<"4.显示所有汽车\n"; cout<<"\t"<<"5.汽车信息统计\n"; cout<<"\t"<<"选择操作:"; cin>>i; switch(i) { case 1: { system("cls"); Input(); break; } break; case 2: { system("cls"); Output(); break; } break; case 3: { system("cls"); Chaxun(); break; } break; case 4: { system("cls"); Xianshi(); break; } break; case 5: { system("cls"); Tongji(); break; } break; default: { cout<<"无此选项!"<>h; if(h=="1") { system("cls"); Shouye(); } else{ Cuo1(); } } }}3.1.4车辆进入停车场在我的课程设计中车辆进入停车场我采用了数组存放车辆数据的方式,数组中每一个空间单元存放一辆车。

在输入停车信息之前先从text文本中把其存储的车辆信息取出来放入p[]数组中,如果文本中存放的车辆数目以到达极限,那么提示停车场已满如果文本中存放的车辆数目没到极限,那么输入进入停车场的车的信息之后再把更新了的数组在输入到text文本中保存void Input()//车辆进入停车场{ ifstream fin("text.txt",ios::in); if(!fin) { cout<<"文件翻开失败!"<>i; cout<<"停车场中已有车"<>p[j].ID>>p[j].Color>>p[j].CheXing>>p[j].aTime.year>>p[j].aTime.mouth >>p[j].aTime.day>>p[j].aTime.hour>>p[j].aTime.minute>>p[j].aTime.second; cout<>h; if(h==1) Input(); if(h==2) { system("cls"); Shouye(); } if(h!=1&&h!=2) Cuo1(); } else { cout<<"****************************************************"; cout<<"停车场已满!"<>h; if(h==1) { system("cls"); Shouye(); } else Cuo1(); }}3.1.5车辆离开停车场在我的课程设计中车辆离开停车场我采用了数组存放车辆数据的方式,数组中每一个空间单元存放一辆车。

车辆要离开停车场,需要输入离开停车场的车辆的车牌号,在输入车牌号之前程序会先从text文本中把其存储的车辆信息取出来放入p[]数组中,如果文本中存放的车辆数目为0,那么提示停车场中没有停车否那么,那么输入离开停车场的车的车牌号之后会用数组中的车的车牌号与输入的比照假设有这辆车,那么输出该车的信息,假设都对不上,那么提示停车场中没有该车最后再把更新了的数组在输入到text文本中保存void Output()//车辆离开停车场并计算停车费用{ ifstream fin("text.txt",ios::in); if(!fin) { cout<<"文件翻开失败!"<>i; cout<<"停车场中已有车"<>p[j].ID>>p[j].Color>>p[j].CheXing>>p[j].aTime.year>>p[j].aTime.mouth >>p[j].aTime.day>>p[j].aTime.hour>>p[j].aTime.minute>>p[j].aTime.second; cout<>cp; cout<<"出场时间"<>h; if(h==1) { system("cls"); Shouye(); } else Cuo1(); break; } } fout.close(); } else { cout<<"停车场中无车"<>h; if(h==1) Input(); if(h==2) { system("cls"); Shouye(); } if(h!=1&&h!=2) Cuo1(); }}3.1.6 其它功能在本软件中还有车辆信息的查询,车辆信息的删除,车辆信息的修改,显示所有信息,车辆信息的统计等功能。

但这些功能都与以上两种大同小异车辆信息的查询,类似于车辆离开停车场,输入编号查找到有该车后直接输出该车信息就完成,不在出库,就是车辆信息的查询string cx;cout<<"按车牌查询"<>cx;for(j=0;j

if(h==2){ cout<<"******************************"<>h; if(h==1) { cout<<"******************************"<>o; if(o==1) { cout<<"ID:"; cin>>p[j].ID; } if(o==2) { cout<<"Color"; cin>>p[j].Color; } if(o==3) { cout<<"CheXing"; cin>>p[j].CheXing; } if(o==4) { P[j].setTime(); } if(o!=1&&o!=2&&o!=3&&o!=4) Cuo1(); break; } if(h==2) {p[j].Set(); } if(h!=1&&h!=2&&h!=3) Cuo1(); ofstream fout("text.txt",ios::out); int a; a=j; fout<

void Xianshi()//显示车库中的车辆信息{ ifstream fin("text.txt",ios::in); if(!fin) { cout<<"文件翻开失败!"<>i; cout<<"停车场中已有车"<>p[j].ID>>p[j].Color>>p[j].CheXing>>p[j].aTime.year>>p[j].aTime.mouth >>p[j].aTime.day>>p[j].aTime.hour>>p[j].aTime.minute>>p[j].aTime.second; cout<>h; if(h==1) { system("cls"); Shouye(); } else Cuo1();}车辆信息的统计,有两种计算方法,一是计算停车场中的车辆总数,该种计算是直接读取文本中的第一个整形,并给予输出;二是按照车辆的四种列别xiaoqiche、xiaoka、zhongka、daka分别来输出它们的数量,即在文本信息读入后,用遍历的方法,定义a、b、c、d都为0,如果数组中的其中一辆为这四种类型中的一种,那么a、b、c、d中对应的自加1,最后输出结果,就是车辆信息的统计。

void Tongji()//统计车库中的车{ ifstream fin("text.txt",ios::in); if(!fin) { cout<<"文件翻开失败!"<>i; cout<<"停车场中已有车"<>p[j].ID>>p[j].Color>>p[j].CheXing>>p[j].aTime.year>>p[j].aTime.mouth >>p[j].aTime.day>>p[j].aTime.hour>>p[j].aTime.minute>>p[j].aTime.second; cout<>h; if(h==1) { cout<<"停车场共停车"<>h; if(h==1) { system("cls"); Shouye(); } else Cuo1(); }3.2 软件测试对每一个函数、及组装以后的函数、写出测试用例。

格式如下(注:自己可以自定义格式,但要满足以下要求,写成表格的形式等):1、 void Input()//车辆进入停车场图3.2-12、 void Output()//车辆离开停车场并计算停车费用图3.2-23、 void Chaxun()//按车牌查询停车信息4、 void Xianshi()//显示车库中的车辆信息5、 void Tongji()//统计车库中的车6、void Cuo1()4.软件使用说明书 结合软件的使用界面,详细介绍整个软件功能功能1、汽车进停车场功能2、汽车出停车场功能3、汽车信息查询功能4、显示所有汽车功能5、汽车信息统计功能6、删除汽车信息功能7、修改汽车信息致谢在本次课程设计中我非常感谢裴仰军教师,伍健全教师,黄永文教师,王永强教师等,在此期间对我的帮助并且同时感谢庄涛,尤佳志,甘淋方等同学在此期间的帮助参考文献1 Richard Johnsonbaugh Martin Kalin 著.?面向对象程序设计?.北京.机械工业出版社,2006 2 H.M.Deitel P.J.Deitel 著.?C++程序设计教程?.北京.机械工业出版社,2005。

下载提示
相关文档
正为您匹配相似的精品文档