车辆管理系统附源代码C课程设计报告.doc
《车辆管理系统附源代码C课程设计报告.doc》由会员分享,可在线阅读,更多相关《车辆管理系统附源代码C课程设计报告.doc(25页珍藏版)》请在咨信网上搜索。
北 华 航 天 工 业 学 院 《基于C++面向对象程序设计实例》 实践汇报 报 告 题 目 : 车辆管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作者所在班级: B12522 作 者 学 号 : 作 者 姓 名 : 妖YYYao 指导教师姓名: 李瑛 完 成 时 间 : 6月 北华航天工业学院教务处制 摘 要 在目前市场经济体制下,企业要想提高市场竞争力,获得好经济效益,不仅要有好产品,同步也要有好管理方式,因此必须拥有一套完善并且适合自身特点信息化管理系统,以实现企业减少成本、及时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划和目等管理目。 本文运用Visual C++6.0 编写程序,实现了顾客对企业车辆编号、车牌号、车辆制造企业、车辆购置时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、合计总费用等信息管理。 本系统重要实现了对车辆添加,查询,显示,编辑,删除,记录,存盘,读出。重要运用了类继承等编程措施来实现对这些车辆管理。已通过全面系统测试,可以很好运行,到达了预期效果。 关键词:系统设计 车辆管理 类继承 目 录 摘要 Ⅰ 第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功能分析 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++语言基本知识和技能。 (2) 加班掌握面向对象程序设计基本思绪和措施。 (3) 可以运用所学基本知识和技能,处理简朴面向对象程序设计问题。 1.2 课程设计背景和意义 1.2.1 课程设计背景 1. 理论研究基础 (1)C++在C基础上增长了面向对象机制。 (2)充足运用面向对象机制中继承性与多态性实现函数设计。 2. 技术层面支持 运用系统为C++面向对象程序设计提供多种设计措施和VC++系统提供库函数实现项目开发。 1.2.2 课程设计意义 通过设计此系统,纯熟掌握C++语言基本知识和技能,基本掌握面向对象程序开发基本思绪和措施,培养学生动手操作能力,提高自主学习能力,可以运用所学基本知识和技能,进行简朴应用程序设计。 1.3 课程设计环境 Visual C++6.0 第二章 需求分析 2.1 问题描述 车辆管理系统重要负责多种车辆常规信息管理工作。 系统中车辆重要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造企业、车辆购置时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、合计总费用等信息。大客车尚有载客量(最大载客数)信息,小轿车尚有箱数(两厢或三厢)信息,卡车尚有载重量等信息。 每台车辆当月总费用= 油价* 耗油量/ 公里+ 基本维护费用。 基本维护费用:客车: 元/ 月,小轿车:1000 元/ 月,卡车:1500元/月 2.2 功能规定 (1)添加车辆:重要完毕车辆信息添加,规定编号唯一。当添加了反复编号时, 则提醒数据添加反复并取消添加;当车辆信息库已满,则提醒不能再添加新数据。 (2)查询车辆: 可按照三种方式来查询物品,分别为: 按车辆制造企业查询:输入车辆制造企业,输出所查询信息,若不存在该记录,则提醒“该车辆制造企业不存在!”; 按编号查询:输入编号,输出所查询信息,若不存在该记录,则提醒“该编号不存在!”; 按类别查询:输入类别,输出所查询信息,若不存在记录,则提醒“该类别没有车辆!”。 (3)显示车辆信息库:输出目前车辆信息库中所有车辆信息,每条记录占据一行。 (4)编辑功能:可根据查询成果对对应记录进行修改,修改时注意编号唯一性。 (5)删除车辆:重要完毕车辆信息删除。假如目前车辆信息库为空,则提醒“车辆 信息库为空!”,并返回操作;否则,输入要删除编号,根据编号删除该车辆记录, 假如该编号不在车辆信息库库中,则提醒“该编号不存在”。 (6)记录信息:输出目前车辆信息库中总物品数,以及按车辆类别,记录出目前车辆 信息库中各类别物品数并显示。 (7)车辆信息存盘:将目前途序中车辆信息存入文献中。 (8)读出车辆信息:从文献中将车辆信息读入程序。 2.3 问题处理方案 根据系统功能规定,可以将问题处理分为如下环节: (1)应用系统分析,建立该系统功能模块框图以及界面组织和设计; (2)分析系统中各个实体及它们之间关系; (3)根据问题描述,设计系统类层次; (4)完毕类层次中各个类描述; (5)完毕类中各个组员函数定义; (6)完毕系统应用模块; (7)功能调试; (8)完毕系统总结汇报。 第三章 系统设计 3.1 数据设计 3.1.1 类设计 (1) 日期类Date (2) 车辆类Vehicle (3) 车辆管理类ManyVehicle 3.1.2 类之间关系 (1) Date日期类:基类 (2)Vehicle车辆类:公有继承Date类 (3)ManyVehicle车辆数组类:公有继承Vehicle类 3.1.3 函数设计 (1) 添加函数:添加一种新数据。如信息库已满,显示“信息库已满!不能添加新 数据!”并退出添加;如编号反复则显示“数据添加反复!取消添加!”并退出添加; 如可以添加,提醒顾客“目前信息库未满!可以添加……”,在输入车辆信息后显示“数 据添加成功!”并保留目前添加数据,信息库车辆总数加一。 (2) 查询函数:查询车辆信息并显示。系统提醒按车辆制造企业查询、按编号查询、 按类别查询三种查询方式,通过输入序号选择查询方式。假如所查询制造企业,编 号,或类别下没有车辆信息,则提醒顾客索要查询信息不存在,并退出查询;如信 息存在则显示出所要查询车辆信息,显示完毕后提醒顾客“查询完毕!”,并退出查 询。 (3) 显示函数:将所有车辆信息显示出来。 (4) 编辑函数:修改已经有车辆信息。顾客输入编号,若没有该编号,提醒顾客“该 编号不存在!”并退出编辑;否则提醒顾客“请重新输入车辆信息……”,顾客输入新 信息后,系统进行保留并退出编辑。编辑时不能对编号进行修改。 (5) 删除函数:将已经有车辆信息删除。顾客输入车辆编号,若没有该编号,提醒顾客 “操作失败!该编号不存在!”并退出删除;否则删除该编号下车辆信息,提醒顾客 “操作成功!车辆已从数据库中删除!”并保留,信息库车辆总数减一。 (6) 记录函数:将信息库内车辆信息分类。分别记录出大客车,小轿车,卡车数 量以及车辆总数,并进行输出。 (7) 保留函数:将信息保留为txt文献,保留成功后提醒顾客“信息保留成功!”;否 则显示“信息文献保留失败!”。 (8) 读出函数:从txt文献中将车辆信息读入程序。 (9) 退出函数:提醒顾客退出系统,显示结束界面。 3.2 构造设计 调用 公有继承 公有继承 Main函数 Date(日期类) Vehicle(车辆类) ManyVehicele(车辆数组类) 显显示 显添加 显查询 显记录 显删除 显存盘 显编辑 显读出 菜主菜单 调用 图3-1.流程图 3.2.1 系统流程图 3.2.2 界面设计 (1)欢迎界面:按Enter键清屏并显示主菜单。 图3-2. 欢迎界面 (2)主菜单:通过输入序号进行对应操作。输入0退出系统。 图3-3.主菜单 图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(); //输入日期 void 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; 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 &); //输出 表 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 组员函数 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();//退出 表 4-3.ManyVehicle类 4.2 函数实现 (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()==v[i].Vehicle::GetNum()) { cout<<"数据添加反复!取消添加!"<<endl<<endl; return; } cout<<"目前信息库未满!可以添加……"<<endl; v1.Vehicle::Input(); v[top]=v1; cout<<"数据添加成功!"<<endl<<endl; top++; ofstream outfile("车辆信息库.txt",ios::out); for(int k=0;k<top;k++) outfile<<v[k]<<endl; outfile.close(); } 运行成果: 图4-1.主菜单实现 (2) 删除函数: void ManyVehicle::Delete() { Vehicle v3; cout<<"请输入您所要删除"; v3.Vehicle::Num(); for(int i=0;i<top;i++) if(v3.Vehicle::GetNum()==v[i].Vehicle::GetNum()) break; if(i>=top) { cout<<endl<<" 操作失败!该编号不存在!"<<endl<<endl; return; } Vehicle vt; for(int j=0;j<top;j++) if(v3.Vehicle::GetNum()==v[j].Vehicle::GetNum()) v[j]=v[j+1]; top--; cout<<endl<<" 操作成功!编号"<<v3.Vehicle::GetNum()<<"车辆已从数据库中删除!"<<endl<<endl; ofstream outfile("车辆信息库.txt",ios::out); for(int k=0;k<top;k++) outfile<<v[k]<<endl; outfile.close(); } 运行成果: 图4-2.读出函数实现 图4-3.删除函数实现 图4-4.显示目前信息库 (3) 退出函数: void ManyVehicle::Quit() { cout<<endl; cout<<" ※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl; cout<<" ※ ※"<<endl; cout<<" ※ ~~~系统已退出!欢迎再次使用!~~~ ※"<<endl; cout<<" ※ ※"<<endl; cout<<" ※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl; cout<<endl; } 运行成果: 图4-5.退出系统 4.3 主函数实现 (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)运行成果:输入不一样序号分别执行不一样函数,进行对应操作。 图4-6.查询函数实现 第五章 系统测试 5.1 模块测试 (1) 读出数据:将保留在文献内信息读出。 图5-1.读出数据 (2) 添加数据:添加一种反复编号,系统显示“数据添加反复!取消添加!”并退回主菜单。 图5-2.添加数据 (3) 查询一种无效编号。 图5-3.查询一种无效编号 (4) 查询卡车类下所有车辆信息。 图5-4.按类别查询 (5) 记录目前信息。 图5-5.记录 5.2 课程设计过程中碰到问题 (1) 删除函数:删除车辆信息时,信息库车辆总数要减一,一开始运行时候,出现了信息反复现象;后来将数组中每个信息复制到前面,再依次输出,最终将数组中车辆总数top 减一,再运行,就对了。 (2) 清屏功能:一开始,将清屏写到了每个功能函数背面,执行完函数买就自动清屏,执行出来内容闪一下就被清屏了;后来将清屏写到了欢迎界面背面,按回车键,执行清屏功能并进入主菜单,看起来清晰多了。 总 结 课程设计是培养学生综合运用所学知识,发现、提出、分析和处理实际问题,锻炼实际能力重要环节。是对学生实际工作能力详细训练和考察过程。伴随科学技术发展日新月异,当今计算机应用在生活中可以说无处不在。因此对于二十一世纪大学生来说,掌握计算机开发技术十分重要。 我题目是车辆管理系统设计,对于我们这些新手来说,这是很大考验,因此怎样才能找到课堂所学与实际应用最佳结合点,怎样才能让自己程序愈加直观简洁,怎样才能让程序运行愈加人性化,这都是在课程设计中必须考虑问题。 很感谢学校和老师给了我们一种可以自主实践机会,让我们可以培养自己自学能力以及实际操作能力。通过这次课程设计,我获益良多。从拿到题目直到完毕整个课设内容,实现了从理论到实际转变。在设计程序过程中可以说是问题重重,多种错误以及误区都被检查出来,而这次课程设计则使我及时纠正从前错误,养成了自主学习与参照书籍好习惯。 致 谢 忙碌了半个月,课程设计终于靠近了尾声,作为一种新手,第一次课程设计使我感到知识与经验严重缺乏,在这里衷心感谢老师悉心指导,以及同学支持协助。 通过了十几种忙碌日子,课程设计终于顺利完毕。在设计时碰到了诸多编程问题,最终在李瑛老师协助下不停完善,同步也在同学编程中学到了某些新思绪,这对我启发很大,尤其是小组之间交流,组员们提出了许多宝贵意见和提议,让我拓宽了视野。 最终,感谢本次课程设计,给了我一次动手实践,将理论与实践相结合机会,这是我一次宝贵实践经历。 参照文献 [1]耿祥义,张跃平. JSP实用教程. 北京:清华大学出版社, [2]王珊,萨师煊. 数据库系统概论.北京:高等教育出版社, [3]谭浩强.C语言程序设计(第二版).北京:清华大学出版社, [4]谭浩强.C++面向对象程序设计.北京:清华大学出版社, [5]谭浩强.C语言程序设计解题与上机指导(第三版).北京:高等教育出版社,20 05 指导教师评语及设计成绩 评 语 成绩: 指导教师: 日期: 年 月 日- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车辆 管理 系统 源代码 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文