C车辆管理系统课程设计报告.doc_第1页
C车辆管理系统课程设计报告.doc_第2页
C车辆管理系统课程设计报告.doc_第3页
C车辆管理系统课程设计报告.doc_第4页
C车辆管理系统课程设计报告.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院面向对象程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 学生姓名: 学 号: 设计地点(单位)_计算机自主学习中心 _ _设计题目:_车辆管理系统设计_ _ 完成日期: 2013 年1月18日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院面向对象程序设计课程设计报告摘 要随着现代社会的不断发展,交通的便利,车辆的数量在不断的增加,为了更好的管理车辆信息,便设计了车辆管理系统主要负责各种车辆的常规信息管理工作。系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。主要功能有:车辆信息的添加、更改、删除、查询、显示。关键字:数组、类、C+、继承、车辆管理系统课程设计任务书设计题目:车辆管理系统设计学生姓名课程名称面向对象程序设计课程设计专业班级计地 点I304/I306起止时间2013年1月7日1月18日设计内容及要求1)问题描述车辆管理系统主要负责各种车辆的常规信息管理工作。系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。每台车辆当月总费用=油价*耗油量/公里+基本维护费用。基本维护费用:客车:2000元/月,小轿车:1000元/月,卡车:1500元/月2)功能要求(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参考资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2009年2钱能.+语言程序设计教程.清华大学出版社.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013年1月1日III目 录摘 要I课程设计任务书II第一章软件需求分析说明书1第二章系统分析与设计22.1 软件界面设计22.2 软件的数据(结构)设计32.3 软件的算法设计5第三章软件的实现83.1核心功能设计分析83.2软件界面10第四章软件测试124.1测试数据124.2函数测试12第五章软件使用说明书13致 谢14参考文献15第一章 软件需求分析说明书1.1系统设计的目的与意义随着社会的进步和人们生活水平的提高,车辆作为交通工具,已经成为人们日常生活中不可缺少的一部分.大大增加了交通压力,同时,也对车辆里的管理有了一个更高的要求.因此,需要一个车辆管理系统来对各种车辆的各种信息进行统一管理. 1.2 系统功能需求本系统有三个类:sedan类、truck类、bus类,存储小轿车信息、卡车信息、大客车信息。1.2.1 添加车辆程序主要完成车辆信息的添加,要求编号唯一。如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果车辆信息库已满,则提示不能再添加新的车辆信息。1.2.2查询车辆可按照三种方式进行物品的查询。按车辆制造公司查询:按编号查询:按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。1.2.3显示车辆信息库可显示当前车辆信息库中所有的车辆信息。1.2.4编辑车辆可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。1.2.5删除车辆对已添加的车辆信息进行删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”并返回操作;否则输入要删除的编号,根据编号删除该车辆信息,如果没有找到该车辆信息,则提示“该编号不存在”。1.2.6统计功能输出当前车辆信息库中总车辆数,以及按车辆类别,统计出当前车辆信息库中各类别的车辆数并显示。1.2.7保存车辆将当前系统中车辆信息存入文件中。1.2.8读取车辆将保存在文件中的车辆信息读入到当前系统中,以供用户使用。第二章 系统分析与设计2.1 软件界面设计2.1.1系统主界面车辆管理系统1 添加车辆 2 查询车辆3 车库 4 编辑车辆5 删除车辆 6 统计车辆7 退出输入操作: 图2.1系统主界面程序运行后用户要在当前界面做出选择,添加选择“1”,查询选“2”,车库选“3”,编辑选“4”,删除选“5”,统计选“6”,退出选“7”,其他为无效选项。2.1.2添加车辆输入添加数量: 选择输入第n辆车辆类别(退出输0) 1 大客车 2 小轿车 3卡车 输入车辆信息 图2.2添加车辆界面选择添加不同类型的车辆,将车存入不同的文件,输入车辆的信息2.1.3查询车辆 选择输入查询方式(退出输0) 1 公司查询 2 编号 3类别 显示查询到的信息 图2.3查询车辆界面根据不同的要求输入不同的查询方式,显示出不同的车辆信息2.1.4显示所有车辆显示所有信息编号:车牌号:公司: 图2.4车库界面把车库中的所有车来那个信息输出到屏幕上2.1.5编辑车辆输入要编辑的车的编号显示车原来的信息输入车辆新的信息确认是否编辑显示编辑结果 图2.5编辑车辆界面输入需要更改的车辆编号,显示车辆原来的信息,然后输入车辆的新的数据,由于系统要求和限制车辆数据中的编号和类型无法更改!2.1.6删除车辆输入删除车的编号显示该车辆信息确认是否删除显示删除结果 图2.6删除车辆界面2.1.7统计车辆显示车库车辆总的数目显示卡车数目显示轿车数目显示客车数目 图2.7统计数目界面2.2 软件的数据(结构)设计2.2.1数据设计首先启动程序检测文件是否存在,若不存在自动创建文件。添加、编辑、删除、显示、统计都会用到文件操作。文件中每行信息都便是一辆车的信息建立一个文件,就要建立一个取值函数,使其能够将数据传递至数组中以便于数据统计和使用。取值函数有:bus* getbus()sedan* getsedan()truck* gettruck()程序中的每一个功能都用一个功能函数实现。功能函数有:int add()void collect()int delet()int edit ( )void search()void show()其中getbus、getsedan、gettruck用的是传值方式实现,是该程序的核心函数比如:bus* getbus()/*设置函数获取客车库中信息存储于数组中,方便之后提取*/string s;ifstream fin1(1.txt,ios:in);n1=0;dofin1s;n1+;while(!fin1.eof();n1=n1/11;fin1.close();int i;bus* head=new busn1;ifstream is1(1.txt,ios:in);for(i=0;iheadi.numberheadi.license_panyheadi.time_buyingheadi.modeheadi.ODO headi.oil_consumptionheadi.oil_priceheadi.road_toltheadi.all_costheadi.apacity; is1.close();return head;2.2.2类的设计1.基类设计: 2.客车类设计class bus:public car/*客车类,公有继承汽车类*/ public: double maintenance_charges;/*基本维护费用*/ int apacity;/*大客车附加属性载客量*/ void setall( ) void show()/*输出所有数据*/ bus() ;class car/*汽车类*/public:string number;/编号string license_plat;/*车牌号码*/string company;/汽车制造公司double time_buying;/购买时间string mode;/型号double ODO;/*总公里数*/double oil_consumption;/*油耗量/公里*/double oil_price;/*油价*/double road_tolt;/*养路费*/double all_cost;/*累计费用*/void getcar( );void show( )car( ) 3.轿车类 4.卡车类class sedan:public car/*小轿车类,公有继承汽车类*/ public: double maintenance_charges;/*基本维护费用*/ int CTNS;/*小轿车附加属性箱数*/ void setall() void show()/*输出所有数据*/ sedan() ;class truck:public car/*卡车类,公有继承汽车类*/ public: double maintenance_charges;/*基本维护费用*/ double load_weight;/*卡车附加属性载重量*/void setall()void show()/*输出所有数据*/ truck() ;2.3 软件的算法设计2.3.1软件的模块图进入主界面后,选择你17你想要进行的功能,就可以使用你想要的功能结果,如图2.8所示:车辆管理系统添加车辆查询车辆编辑车辆车库统计车辆删除车辆客车轿车卡车编号类别制造公司 图2.8 整体模块图2.3.2添加车辆模块 根据对添加功能的要求分析,得到添加功能流程图,如图2.9所示:添加车辆选择添加类型,输入编号校验编号是否重复Y输入车辆信息添加成功N图2.9添加流程图 2.3.3查询车辆模块根据对查询功能的要求分析,得到查询功能流程图,如图2.10所示:查询车辆选择查询方式读取文件并全部输出到屏幕读取文件,检查编号读取所有文件,检查所有车辆公司信息输出最终信息到屏幕编号未找到读取下一文件并检查编号类别编号公司YN 图2.10查询流程图2.3.4编辑车辆模块根据对编辑功能的要求分析,得到编辑功能流程图,如图2.11所示:编辑车辆输入要编辑的编号并输入新编号检查新编号是否存在输入新的车辆信息YN图2.11编辑流程图2.3.5删除车辆模块根据对删除功能的要求分析,得到删除功能流程图,如图2.12所示: 删除车辆信息输入编号,并检查是否存在输出删除结果图2.12删除流程图2.3.6统计车辆模块根据对统计功能的要求分析,得到统计功能流程图,如图2.13所示:统计车辆读取文件,统计数目显示结果图2.13统计流程图2.3.7显示车辆模块根据对显示功能的要求分析,得到显示功能流程图,如图2.14所示: 显示车库信息读取所有文件显示所有信息 图2.14显示流程图第三章 软件的实现3.1核心功能设计分析3.1.1传值功能代码如下:bus* getbus()/*设置函数获取客车库中信息存储于数组中,方便之后提取*/string s;ifstream fin1(1.txt,ios:in);n1=0;dofin1s;n1+;while(!fin1.eof();n1=n1/11;fin1.close();int i;bus* head=new busn1;ifstream is1(1.txt,ios:in);for(i=0;iheadi.numberheadi.license_panyheadi.time_buyingheadi.modeheadi.ODO headi.oil_consumptionheadi.oil_priceheadi.road_toltheadi.all_costheadi.apacity; is1.close();return head;阐述:首先读取文件,计算文件中的信息个数,由于每辆车有11个信息,最后整除11得到车库中的车辆数目,然后再重新读取文件,把每辆车的信息读入数组,最后返回传值!3.1.2删除功能部分代码如下:for(i=0;in1;i+)/*查找大客车信息库*/ if(bi.number=str) k=1;/k=1表示车辆已找到j=i;break; if(k=1) bi.show(); coutx; if(x=y|x=Y) while (in1-1) bi.number=bi+1.number; bi.license_plat=bi+1.license_plat; pany=bi+1.company; bi.time_buying=bi+1.time_buying;bi.mode=bi+1.mode;bi.ODO=bi+1.ODO; bi.oil_consumption=bi+1.oil_consumption; bi.oil_price=bi+1.oil_price; bi.road_tolt=bi+1.road_tolt; bi.all_cost=bi+1.all_cost; bi.apacity=bi+1.apacity; i+; n1-; ofstream os1(1.txt,ios:trunc/*|ios:binary*/); for(i=0;in1;i+)/*删除数据*/ os1bi.number bi.license_plat pany bi.time_buying bi.mode bi.ODO bi.oil_consumption bi.oil_price bi.road_tolt bi.all_cost bi.apacityendl; cout删除成功!endl; os1.close(); else return (0);阐述:输入删除编号,查找编号,如果找到显示车辆信息,确认是否删除!然后将该车后的车辆信息依次向前,再清空文件内容,最后将数组中的数据写入文件!3.2软件界面3.2.1程序开始界面 图3.1程序主界面 3.2.2添加车辆界面 图3.2添加界面 3.2.3编辑车辆界面 图3.3编辑界面3.2.4删除车辆界面 图3.4删除界面第四章 软件测试4.1测试数据 表4.1测试数据编号车牌号制造公司购买时间型号总公里数油耗油价养路费累计费用特有属性1川A.8XX88丰田5客车10000209.82001.965e+006202冀J.75790大众10客车120002592002.71e+006353桂T.82111红旗5客车15000258.93003.342e+006304闽A8889B现代2客车20000993001.622e+006355京A73848奔驰12客车5000010105004.962e+0061006京A80XXX红旗1轿车10000011010150037京00001路虎1轿车2000030105006.0015e+00638京AC3371法拉利1轿车1e+006301210003.60002e+00839军A00001兰博基尼1轿车1e+0095050100002.5e+012310空A00001玛莎拉蒂1轿车100000301003.00015e+007311甲A1111东风3卡车4e+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论