




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北华航天工业学院实践报告北 华 航 天 工 业 学 院基于 c+的面向对象程序设计实例实践报告报 告 题 目 : 车辆管理系统设计作者所在系部:计算机科学与工程系作者所在专业:网络工程作者所在班级:b12522作 者 学 号 :作 者 姓 名 : 妖 yyyao指导教师姓名:李瑛完 成 时 间 : 2013 年 6 月北华航天工业学院教务处制北华航天工业学院实践报告摘要在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必须拥有一套完善的并且适合自身特点的信息化管理系统, 以实现企业降低成本、及时反馈市场信息、完善服务质量、提高经济
2、效益、分析市场需求、制定销售计划和目标等管理目的。本文利用 visualc+6.0 编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量 / 公里、基本维护费用、养路费、累计总费用等信息的管理。本系统主要实现了对车辆的添加,查询,显示,编辑,删除,统计,存盘,读出。主要运用了类的继承等编程方法来实现对这些车辆的管理。已经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词: 系统设计车辆管理类的继承北华航天工业学院实践报告目录摘要第 1 章绪论11.1 课程设计的目的11.2 课程设计的背景及意义11.2.1 课程设
3、计的背景11.2.2 课程设计的意义11.3 课程设计环境1第 2 章系统需求分析22.1 问题描述 .22.2 功能分析 .22.3 问题的解决方案 .3第 3 章系统设计431 数据设计4311 类设计4312 类之间的关系4313 函数设计432 结构设计5321 系统流程图5322 界面设计6第4章系统实现841 类实现842 函数实现1043 主函数实现14第5章系统测试1651 模块测试1652 课程设计过程中遇到的问题18总结19致谢20参考文献21北华航天工业学院实践报告第一章绪论1 1 课程设计的目的(1)要求学生能够熟练掌握c+语言的基本知识和技能。(2)加班掌握面向对象程
4、序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1 2 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)c+在 c 的基础上增加了面向对象的机制。(2)充分运用面向对象机制中的继承性与多态性实现函数的设计。2. 技术层面的支持运用系统为 c+面向对象程序设计提供的各种设计方法和 vc+ 系统提供的库函数实现项目的开发。122 课程设计的意义通过设计此系统,熟练掌握 c+语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养学生的动手操作能力,提高自主学习能力,能够利用所学的基本知识和技能,进行简单应用程序设计。1 3
5、课程设计环境visual c+6.01北华航天工业学院实践报告第二章需求分析2 1 问题描述车辆管理系统主要负责各种车辆的常规信息管理工作。系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量 /公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。每台车辆当月总费用 = 油价 * 耗油量 / 公里 + 基本维护费用。基本维护费用:客车: 2000 元 / 月,小轿车: 1000 元/ 月,卡车: 1500 元/月2
6、2 功能要求(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询: 输入车辆制造公司, 输出所查询的信息, 若不存在该记录,则提示“该车辆制造公司不存在! ”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”。(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应
7、的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则, 输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在” 。(6)统计信息:输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。(7)车辆信息存盘:将当前程序中的车辆信息存入文件中。(8)读出车辆信息:从文件中将车辆信息读入程序。2北华航天工业学院实践报告2 3 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以
8、及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。3北华航天工业学院实践报告第三章系统设计3 1 数据设计3 11 类设计(1)日期类 date(2)车辆类 vehicle(3)车辆管理类 manyvehicle3 12 类之间的关系(1)date 日期类:基类(2)vehicle 车辆类:公有继承date 类(3)manyvehicle 车辆数组类:公有继承vehicle 类3 13 函数设计(1)添加函数:添
9、加一个新数据。如信息库已满,显示“信息库已满!不能添加新的数据!”并退出添加;如编号重复则显示“数据添加重复!取消添加! ”并退出添加;如可以添加,提示用户“当前信息库未满! 可以添加”,在输入车辆信息后显示 “数据添加成功!”并保存当前添加数据,信息库车辆总数加一。(2)查询函数:查询车辆信息并显示。系统提示按车辆制造公司查询、按编号查询、按类别查询三种查询方式,通过输入序号选择查询方式。如果所查询的制造公司,编号,或类别下没有车辆信息,则提示用户索要查询的信息不存在,并退出查询;如信息存在则显示出所要查询的车辆信息,显示完成后提示用户“查询完毕! ”,并退出查询。(3)显示函数:将所有车辆
10、信息显示出来。(4)编辑函数:修改已有的车辆信息。用户输入编号,若没有该编号,提示用户“该编号不存在!”并退出编辑;否则提示用户“请重新输入车辆信息” ,用户输入新的信息后,系统进行保存并退出编辑。编辑时不能对编号进行修改。(5)删除函数:将已有车辆信息删除。用户输入车辆编号,若没有该编号,提示用户“操作失败!该编号不存在! ”并退出删除;否则删除该编号下的车辆信息,提示用户“操作成功!车辆已从数据库中删除! ”并保存,信息库车辆总数减一。(6)统计函数:将信息库内的车辆信息分类。分别统计出大客车,小轿车,卡车的数4北华航天工业学院实践报告量以及车辆总数,并进行输出。(7)保存函数:将信息保存
11、为txt文件,保存成功后提示用户 “信息保存成功 ! ”;否则显示“信息文件保存失败! ”。(8)读出函数:从txt文件中将车辆信息读入程序。(9)退出函数:提示用户退出系统,显示结束界面。3 2 结构设计3 21 系统流程图date(日期类)公有继承vehicle(车辆类)公有继承manyvehicele(车辆数组类)菜主菜显显显显显显显显添编单查显删统存读加询示辑除计盘出调用调用main 函数图 3-1. 流程图5北华航天工业学院实践报告3 22 界面设计(1)欢迎界面:按enter 键清屏并显示主菜单。图 3-2.欢迎界面(2)主菜单:通过输入序号进行相应的操作。输入0 退出系统。图 3
12、-3. 主菜单6北华航天工业学院实践报告(3)查询菜单:主菜单下的子菜单。在主菜单下输入“ 2”,则进入本子菜单。通过输入序号进行相应的查询方式。图 3-4. 查询菜单7北华航天工业学院实践报告第四章系统实现4 1 类实现类名日期类 date数据成员int year; int month; int day; /年,月,日成员函数int getyear(); int getmonth(); int getday(); /返回 year,month,dayvoid input_date();/ 输入日期void show_date();/ 输出日期表 4-1.date 类类名车辆类 vehicle
13、数据成员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;/载客量,箱数,载重量成员函数string getnum(); string getmake(); string gettype(); /传递void num(
14、);/车辆编号输入double maintenance();double money();/基本维护费用,累计总费用void input();/输入车辆信息void show();/输出车辆信息void show_txt();/输出文件信息friend ostream & operator =n)cout信息库已满!不能添加新的数据! endlendl; return;cout请输入您想要添加的 ;v1.vehicle:num();for(int i=0;itop;i+)if(v1.getnum()=vi.vehicle:getnum()cout数据添加重复!取消添加!endlendl;ret
15、urn;cout当前信息库未满!可以添加endl;v1.vehicle:input();vtop=v1;cout数据添加成功! endlendl;top+;ofstream outfile(车辆信息库 .txt,ios:out);for(int k=0;ktop;k+)outfilevkendl;outfile.close();10北华航天工业学院实践报告运行结果:图 4-1. 主菜单实现(2)删除函数:void manyvehicle:delete()vehicle v3;cout请输入您所要删除的 ;v3.vehicle:num();for(int i=0;i=top)coutendl 操
16、作失败!该编号不存在! endlendl; return;vehicle vt;for(int j=0;jtop;j+)if(v3.vehicle:getnum()=vj.vehicle:getnum()vj=vj+1;top-;11北华航天工业学院实践报告coutendl 操作成功!编号 v3.vehicle:getnum() 的车辆已从数据库中删除! endlendl;ofstream outfile(车辆信息库 .txt,ios:out);for(int k=0;ktop;k+)outfilevkendl;outfile.close();运行结果:图 4-2. 读出函数实现图 4-3.
17、删除函数实现12北华航天工业学院实践报告图 4-4. 显示当前信息库(3)退出函数:void manyvehicle:quit()coutendl;coutendl;coutendl;cout 系统已退出!欢迎再次使用! endl;coutendl;coutendl;coutendl;运行结果:图 4-5. 退出系统4 3 主函数实现(1)程序代码:13北华航天工业学院实践报告int main()welcome();if(cin.get()=n)system(cls);manyvehicle m1;int i=0;while(1)menu();coutendl;coutn;couta;cout
18、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;14北华航天工业学院实践报告(2)运行结果:输入不同的序
19、号分别执行不同的函数,进行相应的操作。图 4-6. 查询函数实现15北华航天工业学院实践报告第五章系统测试5 1 模块测试(1)读出数据:将保存在文件内的信息读出。图 5-1. 读出数据(2)添加数据:添加一个重复的编号,系统显示“数据添加重复!取消添加! ”并退回主菜单。图 5-2. 添加数据(3)查询一个无效编号。16北华航天工业学院实践报告图 5-3. 查询一个无效编号(4)查询卡车类下的所有车辆信息。图 5-4. 按类别查询(5)统计当前信息。图 5-5. 统计17北华航天工业学院实践报告5 2 课程设计过程中遇到的问题(1) 删除函数:删除车辆信息时,信息库的车辆总数要减一,一开始运
20、行的时候, 出现了信息重复的现象;后来将数组中的每个信息复制到前面,再依次输出,最后将数组中车辆总数 top 减一,再运行,就正确了。(2) 清屏功能:一开始,将清屏写到了每个功能函数的后面, 执行完函数买就自动清屏,执行出来的内容闪一下就被清屏了;后来将清屏写到了欢迎界面的后面,按回车键,执行清屏功能并进入主菜单,看起来清晰多了。18北华航天工业学院实践报告总结课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实际能力的重要环节。 是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说无处不在。因此对于二十一世纪的大学生来说,掌握计算机开发技术十分重要。我的题目是车辆管理系统的设计,对于我们这些新手来说,这是很大的考验,所以怎样才能找到课堂所学与实际应用的最佳结合点,怎样才能让自己的程序更加直观简练,怎样才能让程序的运行更加人性化,这都是在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋建筑招标合同
- 校园植树协议书
- 运动面料采购合同协议
- 配电元器件采购合同协议
- 湖档管护协议书
- 车辆合伙买卖合同协议
- 战略合作协议发言稿
- 避免侵权协议书模板
- 服从外调协议书
- 服装出兑协议书
- 美术高考集训班协议合同
- 中国证券经营行业市场发展现状分析及发展趋势与投资前景研究报告
- 《肺结核的诊断与治疗》课件
- 陕西省咸阳市2025届高三下学期高考模拟检测(三)物理试题(含答案)
- 浙江省温州市2023-2024学年高一下学期期末考试语文试卷(含答案)
- GB 38031-2025电动汽车用动力蓄电池安全要求
- (高清版)DB3301∕T 0411-2023 公共汽电车维修车间建设与管理规范
- 水果店运营与管理培训课件
- 1号卷·A10联盟2025届高三4月质检考物理试题及答案
- 激光应用技术发展路径试题及答案
- 2025年一级建造师之一建矿业工程实务题库附答案(典型题)
评论
0/150
提交评论