资源描述
车辆管理系统【附源代码】_C+课程设计报告-2021年 C+课程设计试验报告,附源代码。 北 华 航 天 工 业 学 院 基于C+的面对对象程序设计实例 实践报告 报 告 题 目 : 车辆管理系统设计 所在系部: 计算机科学与工程系 所在专业:所在班级: B12522 作 者 学 号 :作 者 姓 名 : 妖YYYao 指导老师姓名: 李瑛 完 成 时 间 : 北华航天工业学院教务处制 C+课程设计试验报告,附源代码。 摘 要 在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必需拥有一套完善的并且适合自身特点的信息化管理系统,以实现企业降低成本、准时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售方案和目标等管理目的。 本文利用Visual C+6.0 编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息的管理。 本系统主要实现了对车辆的添加,查询,显示,编辑,删除,统计,存盘,读出。主要运用了类的继承等编程方法来实现对这些车辆的管理。已经过全面的系统测试,能够很好的运行,达到了预期的效果。 C+课程设计试验报告,附源代码。 目 录 C+课程设计试验报告,附源代码。 第一章 绪论 11 课程设计的目的 (1)要求同学能够娴熟把握C+语言的基本学问和技能。 (2)加班把握面对对象程序设计的基本思路和方法。 (3)能够利用所学的基本学问和技能,解决简洁的面对对象程序设计问题。 12 课程设计的背景和意义 121 课程设计的背景 1. 理论讨论基础 (1)C+在C的基础上增加了面对对象的机制。 (2)充分运用面对对象机制中的继承性与多态性实现函数的设计。 2. 技术层面的支持 运用系统为C+面对对象程序设计供应的各种设计方法和VC+系统供应的库函数实现项目的开发。 122 课程设计的意义 通过设计此系统,娴熟把握C+语言的基本学问和技能,基本把握面对对象程序开发的基本思路和方法,培育同学的动手操作力量,提高自主学近平力量,能够利用所学的基本学问和技能,进行简洁应用程序设计。 13 课程设计环境 Visual C+6.0 C+课程设计试验报告,附源代码。 其次章 需求分析 21 问题描述 车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。 每台车辆当月总费用= 油价* 耗油量/ 公里+ 基本维护费用。 基本维护费用:客车:2021 元/ 月,小轿车:1000 元/ 月,卡车:1500元/月 22 功能要求 (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时, 则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。 (2)查询车辆: 可根据三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”。 (3)显示车辆信息库:输出当前车辆信息库中全部车辆信息,每条记录占据一行。 (4)编辑功能:可依据查询结果对相应的记录进行修改,修改时留意编号的唯一性。 (5)删除车辆:主要完成车辆信息的删除。假如当前车辆信息库为空,则提示“车辆 信息库为空!”,并返回操作;否则,输入要删除的编号,依据编号删除该车辆的记录, 假如该编号不在车辆信息库库中,则提示“该编号不存在”。 (6)统计信息:输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆 信息库中各类别的物品数并显示。 (7)车辆信息存盘:将当前程序中的车辆信息存入文件中。 (8)读出车辆信息:从文件中将车辆信息读入程序。 C+课程设计试验报告,附源代码。 3 问题的解决方案 依据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)依据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 2 C+课程设计试验报告,附源代码。 第三章 系统设计 31 数据设计 311 类设计 (1)日期类Date (2)车辆类Vehicle (3)车辆管理类ManyVehicle 312 类之间的关系 (1)Date日期类:基类 (2)Vehicle车辆类:公有继承Date类 (3)ManyVehicle车辆数组类:公有继承Vehicle类 313 函数设计 (1)添加函数:添加一个新数据。如信息库已满,显示“信息库已满!不能添加新的 数据!”并退出添加;如编号重复则显示“数据添加重复!取消添加!”并退出添加; 如可以添加,提示用户“当前信息库未满!可以添加 ”,在输入车辆信息后显示“数据添加胜利!”并保存当前添加数据,信息库车辆总数加一。 (2)查询函数:查询车辆信息并显示。系统提示按车辆制造公司查询、按编号查询、按类别查询三种查询方式,通过输入序号选择查询方式。假如所查询的制造公司,编号,或类别下没有车辆信息,则提示用户索要查询的信息不存在,并退出查询;如信息存在则显示出所要查询的车辆信息,显示完成后提示用户“查询完毕!”,并退出查询。 (3)显示函数:将全部车辆信息显示出来。 (4)编辑函数:修改已有的车辆信息。用户输入编号,若没有该编号,提示用户“该 编号不存在!”并退出编辑;否则提示用户“请重新输入车辆信息 ”,用户输入新的信息后,系统进行保存并退出编辑。编辑时不能对编号进行修改。 (5)删除函数:将已有车辆信息删除。用户输入车辆编号,若没有该编号,提示用户“操作失败!该编号不存在!”并退出删除;否则删除该编号下的车辆信息,提示用户“操作胜利!车辆已从数据库中删除!”并保存,信息库车辆总数减一。 (6)统计函数:将信息库内的车辆信息分类。分别统计出大客车,小轿车,卡车的数 C+课程设计试验报告,附源代码。 量以及车辆总数,并进行输出。 (7)保存函数:将信息保存为txt文件,保存胜利后提示用户“信息保存胜利!”;否 则显示“信息文件保存失败!”。 (8)读出函数:从txt文件中将车辆信息读入程序。 (9)退出函数:提示用户退出系统,显示结束界面。 32 结构设计 321 系统流程图 图3-1.流程图 显 C+课程设计试验报告,附源代码。 322 界面设计 (1)欢迎界面:按Enter键清屏并显示主菜单。 图3-2. 欢迎界面 (2)主菜单:通过输入序号进行相应的操作。输入0退出系统。 图3-3.主菜单 C+课程设计试验报告,附源代码。 (3)查询菜单:主菜单下的子菜单。在主菜单下输入“2”,则进入本子菜单。通过 输入序号进行相应的查询方式。 图3-4.查询菜单 C+课程设计试验报告,附源代码。 第四章 系统实现 41 类实现 表 4-1.Date类 表 4-2.Vehicle类 C+课程设计试验报告,附源代码。 表 4-3.ManyVehicle类 C+课程设计试验报告,附源代码。 42 函数实现 (1)添加函数: void ManyVehicle:Add() Vehicle v1; if(top=N) cout信息库已满!不能添加新的数据!endlendl; return; cout请输入您想要添加的; v1.Vehicle:Num(); for(int i=0;itop;i+) if(v1.GetNum()=vi.Vehicle:GetNum() cout数据添加重复!取消添加!endlendl; return; cout当前信息库未满!可以添加 endl; v1.Vehicle:Input(); vtop=v1; cout数据添加胜利!endlendl; top+; ofstream outfile(车辆信息库.txt,ios:out); for(int k=0;ktop;k+) outfilevkendl; outfile.close(); C+课程设计试验报告,附源代码。 运行结果: (2)删除函数: void ManyVehicle:Delete() Vehicle v3; cout请输入您所要删除的; v3.Vehicle:Num(); for(int i=0;itop;i+) Vehicle vt; for(int j=0;jtop;j+) if(v3.Vehicle:GetNum()=vj.Vehicle:GetNum() vj=vj+1; if(v3.Vehicle:GetNum()=vi.Vehicle:GetNum() coutendl 操作失败!该编号不存在!endlendl; return; break; 图4-1.主菜单实现 if(i=top) top-; C+课程设计试验报告,附源代码。 endlendl; ofstream outfile(车辆信息库.txt,ios:out); for(int k=0;ktop;k+) outfilevkendl; outfile.close(); 运行结果: 图4-2.读出函数实现 图4-3.删除函数实现 C+课程设计试验报告,附源代码。 (3)退出函数: void ManyVehicle:Quit() 运行结果: coutendl; cout cout cout cout cout coutendl; endl; endl; endl; endl; 系统已退出!欢迎再次用法! 图4-4.显示当前信息库 endl; 图4-5.退出系统 43 主函数实现 (1)程序代码: C+课程设计试验报告,附源代码。 int main() Welcome(); if(cin.get()=n) system(cls); ManyVehicle m1; int i=0; while(1) Menu(); coutendl; cout 请输入您想操作的序号:; int n; cinn; couta; coutendl; 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; C+课程设计试验报告,附源代码。 (2)运行结果:输入不同的序号分别执行不同的函数,进行相应的操作。 图4-6.查询函数实现 C+课程设计试验报告,附源代码。 第五章 系统测试 51 模块测试 (1)读出数据:将保存在文件内的信息读出。 回主菜单。 (3)查询一个无效编号。 图5-2.添加数据 图5-1.读出数据 (2)添加数据:添加一个重复的编号,系统显示“数据添加重复!取消添加!”并退 C+课程设计试验报告,附源代码。 (5)统计当前信息。 图5-5.统计 图5-4.按类别查询 图5-3.查询一个无效编号 (4)查询卡车类下的全部车辆信息。 C+课程设计试验报告,附源代码。 52 课程设计过程中遇到的问题 (1)删除函数:删除车辆信息时,信息库的车辆总数要减一,一开头运行的时候,消失了信息重复的现象;后来将数组中的每个信息复制到前面,再依次输出,最终将数组中车辆总数top 减一,再运行,就正确了。 (2)清屏功能:一开头,将清屏写到了每个功能函数的后面,执行完函数买就自动清屏,执行出来的内容闪一下就被清屏了;后来将清屏写到了欢迎界面的后面,按回车键,执行清屏功能并进入主菜单,看起来清楚多了。 C+课程设计试验报告,附源代码。 课程设计是培育同学综合运用所学学问,发觉、提出、分析和解决实际问题,熬炼实际力量的重要环节。是对同学实际工作力量的具体训练和考察过程。随着科学技术进展的日新月异,当今计算机应用在生活中可以说无处不在。因此对于二十一世纪的高校生来说,把握计算机开发技术非常重要。 我的题目是车辆管理系统的设计,对于我们这些新手来说,这是很大的考验,所以怎样才能找到课堂所学与实际应用的最佳结合点,怎样才能让自己的程序更加直观简练,怎样才能让程序的运行更加人性化,这都是在课程设计中必需考虑的问题。 很感谢学校和老师给了我们一个能够自主实践的机会,让我们能够培育自己的自学力量以及实际操作力量。通过这次课程设计,我获益良多。从拿到题目直到完成整个课设的内容,实现了从理论到实际的转变。在设计程序的过程中可以说是问题重重,各种错误以及误区都被检验出来,而这次课程设计则使我准时的订正从前的错误,养成了自主学.与参考书籍的好近平惯。 C+课程设计试验报告,附源代码。 劳碌了半个月,课程设计最终接近了尾声,作为一个新手,第一次课程设计使我感到学问与阅历严峻的缺乏,在这里诚心感谢老师的悉心指导,以及同学的支持关心。 经过了十几个劳碌的日子,课程设计最终顺当的完成。在设计时遇到了许多编程的问题,最终在李瑛老师的关心下不断完善,同时也在同学的编程中学到了一些新思路,这对我启发很大,尤其是小组之间的沟通,组员们提出了很多珍贵的看法和建议,让我拓宽了视野。 最终,感谢本次课程设计,给了我一次动手实践,将理论与实践相结合的机会,这是我一次珍贵的实践经受。 C+课程设计试验报告,附源代码。 C+课程设计试验报告,附源代码。 北华航天工业学院实践报告 评 语 指 导 教 师 评 语 及 设 计 成 绩 成绩: 指导老师: 日期: 年 月 日 22
展开阅读全文