车辆管理系统【附源代码】-C++课程设计报告-2013年(共26页)



《车辆管理系统【附源代码】-C++课程设计报告-2013年(共26页)》由会员分享,可在线阅读,更多相关《车辆管理系统【附源代码】-C++课程设计报告-2013年(共26页)(26页珍藏版)》请在装配图网上搜索。
1、精选优质文档-----倾情为你奉上 北 华 航 天 工 业 学 院 《基于C++的面向对象程序设计实例》 实践报告 报 告 题 目 : 车辆管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作者所在班级: B12522 作 者 学 号 : 作 者 姓 名 : 妖YYYao 指导教师姓名: 李瑛 完
2、 成 时 间 : 2013年6月 北华航天工业学院教务处制 摘 要 在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划和目标等管理目的。 本文利用Visual C++6.0 编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总
3、费用等信息的管理。 本系统主要实现了对车辆的添加,查询,显示,编辑,删除,统计,存盘,读出。主要运用了类的继承等编程方法来实现对这些车辆的管理。已经过全面的系统测试,能够很好的运行,达到了预期的效果。 关键词:系统设计 车辆管理 类的继承 专心---专注---专业 目 录 摘要 Ⅰ 第1章 绪 论 1 1.1 课程设计的目的 1 1.2 课程设计的背景及意义 1 1.2.1课程设计的背景 1 1.2.2课程设计的意义 1 1.3 课程设计环境 1 第2章 系统需求分析 2 2.1问题描述 2 2.2功能
4、分析 2 2.3问题的解决方案 3 第3章 系统设计 4 3.1 数据设计 4 3.1.1 类设计 4 3.1.2 类之间的关系 4 3.1.3 函数设计 4 3.2 结构设计 5 3.2.1 系统流程图 5 3.2.2 界面设计 6 第4章 系统实现 8 4.1 类实现 8 4.2 函数实现 10 4.3 主函数实现 14 第5章 系统测试 16 5.1 模块测试 16 5.2 课程设计过程中遇到的问题 18 总结 19 致谢 20 参考文献 21 第一章 绪论 1.1 课程设计的目的 (1) 要求学生能够熟练掌握C++
5、语言的基本知识和技能。 (2) 加班掌握面向对象程序设计的基本思路和方法。 (3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 1.2 课程设计的背景和意义 1.2.1 课程设计的背景 1. 理论研究基础 (1)C++在C的基础上增加了面向对象的机制。 (2)充分运用面向对象机制中的继承性与多态性实现函数的设计。 2. 技术层面的支持 运用系统为C++面向对象程序设计提供的各种设计方法和VC++系统提供的库函数实现项目的开发。 1.2.2 课程设计的意义 通过设计此系统,熟练掌握C++语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养
6、学生的动手操作能力,提高自主学习能力,能够利用所学的基本知识和技能,进行简单应用程序设计。 1.3 课程设计环境 Visual C++6.0 第二章 需求分析 2.1 问题描述 车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。 每台车辆当月总费用= 油价* 耗油量/ 公里+ 基本维护费用
7、。 基本维护费用:客车:2000 元/ 月,小轿车:1000 元/ 月,卡车:1500元/月 2.2 功能要求 (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时, 则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。 (2)查询车辆: 可按照三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,
8、则提示“该类别没有车辆!”。 (3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆 信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录, 如果该编号不在车辆信息库库中,则提示“该编号不存在”。 (6)统计信息:输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆 信息库中各类别的物品数并显示。 (7)车辆信息存盘:将当前程序中的车辆信息存入文件中。 (8)
9、读出车辆信息:从文件中将车辆信息读入程序。 2.3 问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 第三章 系统设计 3.1 数据设计 3.1.1 类设计 (1)
10、 日期类Date (2) 车辆类Vehicle (3) 车辆管理类ManyVehicle 3.1.2 类之间的关系 (1) Date日期类:基类 (2)Vehicle车辆类:公有继承Date类 (3)ManyVehicle车辆数组类:公有继承Vehicle类 3.1.3 函数设计 (1) 添加函数:添加一个新数据。如信息库已满,显示“信息库已满!不能添加新的 数据!”并退出添加;如编号重复则显示“数据添加重复!取消添加!”并退出添加; 如可以添加,提示用户“当前信息库未满!可以添加……”,在输入车辆信息后显示“数 据添加成功!”并保存当前添加数据,信息库车辆总数加一。 (
11、2) 查询函数:查询车辆信息并显示。系统提示按车辆制造公司查询、按编号查询、 按类别查询三种查询方式,通过输入序号选择查询方式。如果所查询的制造公司,编 号,或类别下没有车辆信息,则提示用户索要查询的信息不存在,并退出查询;如信 息存在则显示出所要查询的车辆信息,显示完成后提示用户“查询完毕!”,并退出查 询。 (3) 显示函数:将所有车辆信息显示出来。 (4) 编辑函数:修改已有的车辆信息。用户输入编号,若没有该编号,提示用户“该 编号不存在!”并退出编辑;否则提示用户“请重新输入车辆信息……”,用户输入新 的信息后,系统进行保存并退出编辑。编辑时不能对编号进行修改。 (5) 删除函数
12、:将已有车辆信息删除。用户输入车辆编号,若没有该编号,提示用户 “操作失败!该编号不存在!”并退出删除;否则删除该编号下的车辆信息,提示用户 “操作成功!车辆已从数据库中删除!”并保存,信息库车辆总数减一。 (6) 统计函数:将信息库内的车辆信息分类。分别统计出大客车,小轿车,卡车的数 量以及车辆总数,并进行输出。 (7) 保存函数:将信息保存为txt文件,保存成功后提示用户“信息保存成功!”;否 则显示“信息文件保存失败!”。 (8) 读出函数:从txt文件中将车辆信息读入程序。 (9) 退出函数:提示用户退出系统,显示结束界面。 3.2 结构设计 调用 公有继承 公有继承
13、 Main函数 Date(日期类) Vehicle(车辆类) ManyVehicele(车辆数组类) 显显示 显添加 显查询 显统计 显删除 显存盘 显编辑 显读出 菜主菜单 调用 图3-1.流程图 3.2.1 系统流程图 3.2.2 界面设计 (1)欢迎界面:按Enter键清屏并显示主菜单。 图3-2. 欢迎界面 (2)主菜单:通过输入序号进行相应的操作。输入0退出系统。 图3-3.
14、主菜单 图3-4.查询菜单 (3)查询菜单:主菜单下的子菜单。在主菜单下输入“2”,则进入本子菜单。通过输入序号进行相应的查询方式。 第四章 系统实现 4.1 类实现 l 类名 日期类 Date l 数据成员 int year; int month; int day; //年,月,日 l 成员函数 int GetYear(); int GetMonth(); int GetDay(); //返回 year,month,day void Input_Date(); //输入日期 vo
15、id Show_Date(); //输出日期 l 类名 车辆类 Vehicle l 数据成员 string num; string plate; string make; //车辆编号,车牌号,制造公司 Date time; //车辆购买时间 string type; //车辆型号 double kilometres; //总公里数 Double oil, maintenance; //耗油量/公里,基本维护费用 double road; double money; //养路费,累计总费用 int people; int box; i
16、nt heavy; //载客量,箱数,载重量 l 成员函数 string GetNum(); string GetMake(); string GetType(); //传递 void Num(); //车辆编号输入 double Maintenance();double Money(); //基本维护费用,累计总费用 void Input(); //输入车辆信息 void Show(); //输出车辆信息 void Show_txt(); //输出文件信息 friend ost
17、ream & operator <<(ostream &,Vehicle &); //输出 表 4-2.Vehicle类 void Set(string ,string ,string ,int ,int ,int ,string ,double ,double ,double ,double ,double ,int ,int ,int ); 表 4-1.Date类 l 类名 车辆数组类 ManyVehicle l 数据成员 Vehicle v[N]; //定义车辆数组 int top; //数组内信息数量 l 成员函数 Ma
18、nyVehicle(){top=0;} //构造 void Add();//添加车辆 void Find(); //查询车辆 void Find1();//按制造公司查询 void Find2();//按编号查询 void Find3(); //按类别查询 void Top();//首行格式 void Show();//显示车辆信息库 void Edit();//编辑车辆 void Delete(); //删除车辆
19、void Statistics();//统计信息
void Save(); //车辆信息存盘
void Read();//读出车辆信息
void Quit();//退出
表 4-3.ManyVehicle类
4.2 函数实现
(1) 添加函数:
void ManyVehicle::Add()
{
Vehicle v1;
if(top>=N)
{
cout<<"信息库已满!不能添加新的数据!"< 20、v1.Vehicle::Num();
for(int i=0;i 21、out);
for(int k=0;k 22、())
break;
if(i>=top)
{
cout< 23、ile("车辆信息库.txt",ios::out);
for(int k=0;k 24、※※※※"< 25、s");
ManyVehicle m1;
int i=0;
while(1)
{
Menu();
cout< 26、: m1.Delete();break;
case 6: m1.Statistics();break;
case 7: m1.Save();break;
case 8: m1.Read();break;
case 0: m1.Quit();return 0;
default: cout<<" 输入不合法!"< 27、统测试
5.1 模块测试
(1) 读出数据:将保存在文件内的信息读出。
图5-1.读出数据
(2) 添加数据:添加一个重复的编号,系统显示“数据添加重复!取消添加!”并退回主菜单。
图5-2.添加数据
(3) 查询一个无效编号。
图5-3.查询一个无效编号
(4) 查询卡车类下的所有车辆信息。
图5-4.按类别查询
(5) 统计当前信息。
图5-5 28、.统计
5.2 课程设计过程中遇到的问题
(1) 删除函数:删除车辆信息时,信息库的车辆总数要减一,一开始运行的时候,出现了信息重复的现象;后来将数组中的每个信息复制到前面,再依次输出,最后将数组中车辆总数top 减一,再运行,就正确了。
(2) 清屏功能:一开始,将清屏写到了每个功能函数的后面,执行完函数买就自动清屏,执行出来的内容闪一下就被清屏了;后来将清屏写到了欢迎界面的后面,按回车键,执行清屏功能并进入主菜单,看起来清晰多了。
总 结
课程设计是培养学生综合运用所学知识,发现 29、、提出、分析和解决实际问题,锻炼实际能力的重要环节。是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说无处不在。因此对于二十一世纪的大学生来说,掌握计算机开发技术十分重要。
我的题目是车辆管理系统的设计,对于我们这些新手来说,这是很大的考验,所以怎样才能找到课堂所学与实际应用的最佳结合点,怎样才能让自己的程序更加直观简练,怎样才能让程序的运行更加人性化,这都是在课程设计中必须考虑的问题。
很感谢学校和老师给了我们一个能够自主实践的机会,让我们能够培养自己的自学能力以及实际操作能力。通过这次课程设计,我获益良多。从拿到题目直到完成整个课设的内容 30、,实现了从理论到实际的转变。在设计程序的过程中可以说是问题重重,各种错误以及误区都被检验出来,而这次课程设计则使我及时的纠正从前的错误,养成了自主学习与参考书籍的好习惯。
致 谢
忙碌了半个月,课程设计终于接近了尾声,作为一个新手,第一次课程设计使我感到知识与经验严重的缺乏,在这里衷心感谢老师的悉心指导,以及同学的支持帮助。
经过了十几个忙碌的日子,课程设计终于顺利的完成。在设计时遇到了很多编程的问题,最后在李瑛老师的帮助下不断完善,同时也在同学的编程中学到了一些新思路,这对我启发很大,尤其是小组之 31、间的交流,组员们提出了许多宝贵的意见和建议,让我拓宽了视野。
最后,感谢本次课程设计,给了我一次动手实践,将理论与实践相结合的机会,这是我一次宝贵的实践经历。
参考文献
[1]耿祥义,张跃平. JSP实用教程. 北京:清华大学出版社,2003
[2]王珊,萨师煊. 数据库系统概论.北京:高等教育出版社,2006
[3]谭浩强.C语言程序设计(第二版).北京:清华大学出版社,2009
[4]谭浩强.C++面向对象程序设计.北京:清华大学出版社,2009
[5]谭浩强.C语言程序设计解题与上机指导(第三版).北京:高等教育出版社,20 05
指导教师评语及设计成绩
评 语
成绩:
指导教师:
日期: 年 月 日
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。