车辆管理系统【附源代码】-C++课程设计报告-2013年.doc
-
资源ID:35205241
资源大小:541.50KB
全文页数:14页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
车辆管理系统【附源代码】-C++课程设计报告-2013年.doc
北 华 航 天 工 业 学 院?基于C+的面向对象程序设计实例?实践报告报 告 题 目 : 车辆管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作者所在班级: B12522 作 者 学 号 : 作 者 姓 名 : 妖YYYao 指导教师姓名: 李瑛 完 成 时 间 : 2021年6月 北华航天工业学院教务处制摘 要在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现企业降低本钱、及时反应市场信息、完善效劳质量、提高经济效益、分析市场需求、制定销售方案和目标等管理目的。本文利用Visual C+6.0 编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购置时间、车辆型号大客车、小轿车和卡车、总公里数、耗油量/公里、根本维护费用、养路费、累计总费用等信息的管理。本系统主要实现了对车辆的添加,查询,显示,编辑,删除,统计,存盘,读出。主要运用了类的继承等编程方法来实现对这些车辆的管理。已经过全面的系统测试,能够很好的运行,到达了预期的效果。关键词:系统设计 车辆管理 类的继承目 录摘要第1章 绪 论11.1 课程设计的目的11.2 课程设计的背景及意义1111.3 课程设计环境1第2章 系统需求分析2223第3章 系统设计431 数据设计4311 类设计4312 类之间的关系4313 函数设计432 构造设计5321 系统流程图5322 界面设计6第4章 系统实现841 类实现842 函数实现1043 主函数实现14第5章 系统测试1651 模块测试1652 课程设计过程中遇到的问题18总结19致谢20参考文献21第一章 绪论11 课程设计的目的(1) 要求学生能够熟练掌握C+语言的根本知识和技能。(2) 加班掌握面向对象程序设计的根本思路和方法。(3) 能够利用所学的根本知识和技能,解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景1. 理论研究根底1C+在C的根底上增加了面向对象的机制。2充分运用面向对象机制中的继承性与多态性实现函数的设计。2. 技术层面的支持运用系统为C+面向对象程序设计提供的各种设计方法和VC+系统提供的库函数实现工程的开发。122 课程设计的意义通过设计此系统,熟练掌握C+语言的根本知识和技能,根本掌握面向对象程序开发的根本思路和方法,培养学生的动手操作能力,提高自主学习能力,能够利用所学的根本知识和技能,进展简单应用程序设计。13 课程设计环境第二章 需求分析21 问题描述车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购置时间、车辆型号大客车、小轿车和卡车、总公里数、耗油量/公里、根本维护费用、养路费、累计总费用等信息。大客车还有载客量最大载客数信息,小轿车还有箱数两厢或三厢信息,卡车还有载重量等信息。 每台车辆当月总费用= 油价* 耗油量/ 公里+ 根本维护费用。 根本维护费用:客车:2000 元/ 月,小轿车:1000 元/ 月,卡车:1500元/月 22 功能要求1添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,那么提示数据添加重复并取消添加;当车辆信息库已满,那么提示不能再添加新的数据。2查询车辆: 可按照三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,假设不存在该记录,那么提示“该车辆制造公司不存在!; 按编号查询:输入编号,输出所查询的信息,假设不存在该记录,那么提示“该编号不存在!; 按类别查询:输入类别,输出所查询的信息,假设不存在记录,那么提示“该类别没有车辆!。 3显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。 4编辑功能:可根据查询结果对相应的记录进展修改,修改时注意编号的唯一性。 5删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,那么提示“车辆信息库为空!,并返回操作;否那么,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,那么提示“该编号不存在。 6统计信息:输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。 7车辆信息存盘:将当前程序中的车辆信息存入文件中。 8读出车辆信息:从文件中将车辆信息读入程序。 23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; 2分析系统中的各个实体及它们之间的关系; 3根据问题描述,设计系统的类层次; 4完成类层次中各个类的描述; 5完成类中各个成员函数的定义; 6完成系统的应用模块; 7功能调试; 8完成系统总结报告。第三章 系统设计31 数据设计311 类设计(1) 日期类Date (2) 车辆类Vehicle(3) 车辆管理类ManyVehicle312 类之间的关系(1) Date日期类:基类2Vehicle车辆类:公有继承Date类3ManyVehicle车辆数组类:公有继承Vehicle类313 函数设计(1) 添加函数:添加一个新数据。如信息库已满,显示“信息库已满!不能添加新的数据!并退出添加;如编号重复那么显示“数据添加重复!取消添加!并退出添加;如可以添加,提示用户“当前信息库未满!可以添加,在输入车辆信息后显示“数据添加成功!并保存当前添加数据,信息库车辆总数加一。(2) 查询函数:查询车辆信息并显示。系统提示按车辆制造公司查询、按编号查询、按类别查询三种查询方式,通过输入序号选择查询方式。如果所查询的制造公司,编号,或类别下没有车辆信息,那么提示用户索要查询的信息不存在,并退出查询;如信息存在那么显示出所要查询的车辆信息,显示完成后提示用户“查询完毕!,并退出查询。(3) 显示函数:将所有车辆信息显示出来。(4) 编辑函数:修改已有的车辆信息。用户输入编号,假设没有该编号,提示用户“该编号不存在!并退出编辑;否那么提示用户“请重新输入车辆信息,用户输入新的信息后,系统进展保存并退出编辑。编辑时不能对编号进展修改。(5) 删除函数:将已有车辆信息删除。用户输入车辆编号,假设没有该编号,提示用户“操作失败!该编号不存在!并退出删除;否那么删除该编号下的车辆信息,提示用户“操作成功!车辆已从数据库中删除!并保存,信息库车辆总数减一。(6) 统计函数:将信息库内的车辆信息分类。分别统计出大客车,小轿车,卡车的数量以及车辆总数,并进展输出。(7) 保存函数:将信息保存为txt文件,保存成功后提示用户“信息保存成功!;否那么显示“信息文件保存失败!。(8) 读出函数:从txt文件中将车辆信息读入程序。(9) 退出函数:提示用户退出系统,显示完毕界面。32 构造设计调用公有继承公有继承Main函数Date日期类Vehicle车辆类ManyVehicele车辆数组类显显示显添加显查询显统计显删除显存盘显编辑显读出菜主菜单调用图321 系统流程图322 界面设计1欢送界面:按Enter键清屏并显示主菜单。图3-2. 欢送界面 2主菜单:通过输入序号进展相应的操作。输入0退出系统。图3-3.主菜单图 3查询菜单:主菜单下的子菜单。在主菜单下输入“2,那么进入本子菜单。通过输入序号进展相应的查询方式。第四章 系统实现41 类实现l 类名日期类 Datel 数据成员int year; int month; int day; /年,月,日l 成员函数int GetYear(); int GetMonth(); int GetDay(); /返回 year,month,dayvoid Input_Date(); /输入日期void Show_Date(); /输出日期l 类名车辆类 Vehiclel 数据成员string num; string plate; string make; /车辆编号,车牌号,制造公司Date time; /车辆购置时间string type; /车辆型号double kilometres; /总公里数Double oil, maintenance; /耗油量/公里,根本维护费用double road;double money; /养路费,累计总费用int people; int box;int heavy; /载客量,箱数,载重量l 成员函数string GetNum(); string GetMake(); string GetType(); /传递void Num(); /车辆编号输入double Maintenance();double Money(); /根本维护费用,累计总费用void Input(); /输入车辆信息void Show(); /输出车辆信息void Show_txt(); /输出文件信息friend ostream & operator <<(ostream &,Vehicle &); /输出表void Set(string ,string ,string ,int ,int ,int ,string ,double ,double ,double ,double ,double ,int ,int ,int );表l 类名车辆数组类 ManyVehiclel 数据成员Vehicle vN;/定义车辆数组 int top;/数组内信息数量l 成员函数ManyVehicle()top=0; /构造 void Add();/添加车辆void Find(); /查询车辆 void Find1();/按制造公司查询void Find2();/按编号查询 void Find3(); /按类别查询void Top();/首行格式 void Show();/显示车辆信息库void Edit();/编辑车辆 void Delete();/删除车辆void Statistics();/统计信息 void Save(); /车辆信息存盘void Read();/读出车辆信息 void Quit();/退出表42 函数实现(1) 添加函数:void ManyVehicle:Add()Vehicle v1;if(top>=N)cout<<"信息库已满!不能添加新的数据!"<<endl<<endl;return;cout<<"请输入您想要添加的"v1.Vehicle:Num();for(int i=0;i<top;i+)if(v1.GetNum()=vi.Vehicle:GetNum()cout<<"数据添加重复!取消添加!"<<endl<<endl;return;cout<<"当前信息库未满!可以添加"<<endl;v1.Vehicle:Input();vtop=v1;cout<<"数据添加成功!"<<endl<<endl;top+;ofstream outfile("车辆信息库.txt",ios:out);for(int k=0;k<top;k+)outfile<<vk<<endl;out();运行结果:图(2) 删除函数:void ManyVehicle:Delete()Vehicle v3;cout<<"请输入您所要删除的"v3.Vehicle:Num();for(int i=0;i<top;i+)if(v3.Vehicle:GetNum()=vi.Vehicle:GetNum()break;if(i>=top)cout<<endl<<"操作失败!该编号不存在!"<<endl<<endl;return;Vehicle vt;for(int j=0;j<top;j+)if(v3.Vehicle:GetNum()=vj.Vehicle:GetNum()vj=vj+1;top-;cout<<endl<<"操作成功!编号"<<v3.Vehicle:GetNum()<<"的车辆已从数据库中删除!"<<endl<<endl;ofstream outfile("车辆信息库.txt",ios:out);for(int k=0;k<top;k+)outfile<<vk<<endl;out();运行结果:图图图(3) 退出函数:void ManyVehicle:Quit()cout<<endl;cout<<""<<endl;cout<<""<<endl;cout<<"系统已退出!欢送再次使用!"<<endl;cout<<""<<endl;cout<<""<<endl;cout<<endl;运行结果:图43 主函数实现 1程序代码:int main()Welcome();if(cin.get()='n')system("cls");ManyVehicle m1;int i=0;while(1)Menu();cout<<endl;cout<<"请输入您想操作的序号:"int n;cin>>n;cout<<"a"cout<<endl;switch(n)case 1:m1.Add();break;case 2:m1.Find();break;case 3:m1.Show();break;case 4:m1.Edit();break;case 5: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<<"输入不合法!"<<endl;break;2运行结果:输入不同的序号分别执行不同的函数,进展相应的操作。图第五章 系统测试51 模块测试(1) 读出数据:将保存在文件内的信息读出。图(2) 添加数据:添加一个重复的编号,系统显示“数据添加重复!取消添加!并退回主菜单。图(3) 查询一个无效编号。图(4) 查询卡车类下的所有车辆信息。图(5) 统计当前信息。图52 课程设计过程中遇到的问题(1) 删除函数:删除车辆信息时,信息库的车辆总数要减一,一开场运行的时候,出现了信息重复的现象;后来将数组中的每个信息复制到前面,再依次输出,最后将数组中车辆总数top 减一,再运行,就正确了。(2) 清屏功能:一开场,将清屏写到了每个功能函数的后面,执行完函数买就自动清屏,执行出来的内容闪一下就被清屏了;后来将清屏写到了欢送界面的后面,按回车键,执行清屏功能并进入主菜单,看起来清晰多了。总 结课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实际能力的重要环节。是对学生实际工作能力的具体训练和考察过程。随着科学技术开展的日新月异,当今计算机应用在生活中可以说无处不在。因此对于二十一世纪的大学生来说,掌握计算机开发技术十分重要。我的题目是车辆管理系统的设计,对于我们这些新手来说,这是很大的考验,所以怎样才能找到课堂所学与实际应用的最正确结合点,怎样才能让自己的程序更加直观简练,怎样才能让程序的运行更加人性化,这都是在课程设计中必须考虑的问题。很感谢学校和教师给了我们一个能够自主实践的时机,让我们能够培养自己的自学能力以及实际操作能力。通过这次课程设计,我获益良多。从拿到题目直到完成整个课设的内容,实现了从理论到实际的转变。在设计程序的过程中可以说是问题重重,各种错误以及误区都被检验出来,而这次课程设计那么使我及时的纠正从前的错误,养成了自主学习与参考书籍的好习惯。致 谢忙碌了半个月,课程设计终于接近了尾声,作为一个新手,第一次课程设计使我感到知识与经历严重的缺乏,在这里衷心感谢教师的悉心指导,以及同学的支持帮助。经过了十几个忙碌的日子,课程设计终于顺利的完成。在设计时遇到了很多编程的问题,最后在李瑛教师的帮助下不断完善,同时也在同学的编程中学到了一些新思路,这对我启发很大,尤其是小组之间的交流,组员们提出了许多珍贵的意见和建议,让我拓宽了视野。最后,感谢本次课程设计,给了我一次动手实践,将理论与实践相结合的时机,这是我一次珍贵的实践经历。参考文献1耿祥义,张跃平. JSP实用教程. 北京:清华大学出版社,20032王珊,萨师煊. 数据库系统概论.北京:高等教育出版社,20063谭浩强C语言程序设计第二版北京:清华大学出版社,20214谭浩强C+面向对象程序设计北京:清华大学出版社,20215谭浩强C语言程序设计解题与上机指导第三版北京:高等教育出版社,2005指导教师评语及设计成绩 评 语 成绩: 指导教师: 日期: 年 月 日