车辆信息管理课程设计报告.docx
- 文档编号:27846391
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:29
- 大小:152.04KB
车辆信息管理课程设计报告.docx
《车辆信息管理课程设计报告.docx》由会员分享,可在线阅读,更多相关《车辆信息管理课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
车辆信息管理课程设计报告
《面向对象程序设计》
课程设计报告
学院:
_电子与信息工程学院专业班级:
学生姓名:
学号:
设计地点(单位)_________________
设计题目:
________车辆信息管理系统___________
完成日期:
年月日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
_______________
摘要
此次课程设计为车辆信息管理系统,由VC6.0编译器编译而成。
通过本系统,在主界面可以通过行管提示的操作,对车辆信息进行添加、修改、删除、查询、统计等管理操作。
通过此系统用户可以简洁方便的管理车辆信息,管理人员也可轻松进行车辆信息管理,从而实现高效的管理模式,为公司企业商家等创造最大化的经济效益。
关键词:
管理系统基类结构体
课程设计任务书
设计题目:
超市商品管理系统设计
学生姓名
张思凯
课程名称
面向对象程序设计
专业班级
物联网工程
地点
实验中心
起止时间
2016年12月19日~12月23日
设计内容及要求
1)问题描述
信息库中的车分为三种,分别是大客车、小轿车、卡车。
每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。
主要完成对车辆信息的添加,查询,修改,删除,统计,浏览,读取等功能。
2)功能要求
(1)添加功能。
主要完成车辆信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。
(2)车辆信息的查询功能。
按公司查询:
输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!
”;
按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!
”;
按类型查询:
输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!
”;
(3)编辑功能。
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(4)删除功能。
主要完成车辆信息的删除。
如果当前车辆信息库为空,则提示“车辆信息库为空!
”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。
(5)统计信息
输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。
(6)显示功能。
输出当前车辆信息库中所有车辆信息,每条记录占据一行。
(7)存储读取功能。
车辆信息存盘:
将当前程序中的车辆信息存入文件中。
读出车辆信息:
从文件中将车辆信息读入程序。
3)问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:
明确设计任务,学习相关基础知识
周二:
熟悉各知识点,进行基础练习
周三:
根据题目要求,进行设计和实现
周四:
根据题目要求,进行设计和实现
周五:
程序测试,答辩。
参考资料
[1]RichardJohnsonbaugh.MartinKalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年
[2]郑莉.《C++语言程序设计教程》.清华大学出版社.2005年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
1软件需求分析说明书
1.1需求分析
随着科技的进步,计算机技术的飞速发展,许多企业在进行技术改造的同时,各种工作也趋向于信息技术化管理。
管理系统事一个信息化、智能化和先进管理集合,一个高效有用的管理系统课一减少一个企业或者上商家的管理费用和人力物力开支,不仅可以节省大量时间,还可以为企业的各项决策带来巨大的经济效益。
与人们生活接触最贴近的超市也有它自己完善的管理系统。
计算机的自动化管理系统提高了车辆信息的管理水平和工作效率。
所以需要开发一个计算机系统来代替人工管理车辆信息的工作。
使用该系统可以管理更加快捷、准确和方便,减少大量的人工操作,提高了工作效率。
1.2功能简介
1.2.1车辆信息管理功能
车辆信息管理功能主要是针对超市管理人员使用,对车辆信息进行简单的管理。
本功能当中主要可以实现车辆信息的添加、查询、修改、删除、修改密码等功能。
(1)添加信息
通过主页面提示菜单键入相对应数字进入添加信息选项,然后根据提示添加车辆信息,主要包括车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号、总公里数、耗油量/公里、养路费。
另外关于一些不同类型车辆的信息系统则会自动添加(注重编号的独一性)并且会自动保存进文件。
(2)删除信息
通过主页面的提示菜单键入相应数字进入删除信息选项,完成最车辆信息的删除。
首先选择输入要删除车辆信息的编号,根据查询结果显示该车辆信息后询问是否删除,而后删除车辆的信息,如果该信息在信息库当中不存在,则系统给出相应提示,该车辆不存在。
(3)修改信息
通过主页面的提示菜单键入相应数字进入修改信息选项,对车辆信息进行修改。
可根据查询的结果对相应的车辆信息进行修改,包括车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。
大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。
(4)查询信息
通过主页面的提示菜单键入相应数字进入查询信息选项,对车辆信息进行查询。
可根据相应提示选择查询方式,按生产公司、车辆编号、车辆类别进行查询车辆的全部信息。
如果存在相应车辆的信息,则输出所查询车辆的信息,如果不存在该车辆的记录,则系统自动提示该车辆的记录不存在。
(5)统计信息
此功能主要是提供显示功能。
用户可通过主页面的显示菜单键入相应的数字进入统计选项,可以输出当前库存当中的所有车辆的总数及相应车辆的数量,按照车辆的类型进行统计。
(6)显示信息
通过主页面的提示菜单键入相应数字进入显示信息选项,对车辆的全部信息进行输出。
(7)读取信息
通过主页面的提示菜单键入相应数字进入读取信息选项,将车辆的全部信息从文件里读取信息到系统中。
(8)修改密码
通过主页面的提示菜单键入相应数字进入密码修改选项,进入程序后经过一系列的询问和验证后,才进入密码修改。
(9)保存并退出
通过主页面的提示键入相应数字进入信息保存和退出选项。
1.3界面介绍与要求
图1.2系统首页面介绍
本系统的软件界是使用C++编译生成的一个系统操作菜单。
操作菜单界面总共有9个选项可以供用户操作选择,分别为添加车辆信息、查询车辆信息、显示出来信息、编辑处理信息、删除处理信息、统计车辆信息、盘存车辆信息、读取车辆信息、退出系统。
菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0-8中的任意数字,系统便会进入相应的功能操作。
如果出现错误操作,系统会该处输入错误请从新输入等提示或者自动跳出回到主菜单界面。
页面的组织和设计要求先构思好系统的功能模块和结构框架,分析系统中的各个实体以及它们间的具体联系关系,根据问题的描述先设计好系统的类层次,完成类层次中各个成员函数的定义,实现每一个模块层次之间的衔接,从而设计出工整漂亮的管理系统,要求整个系统的界面设计简洁、美观,让用户使用起来方便快捷。
1.4数据结构要求
在整个系统当中除了使用类层次结构、结构体、模板等,还使用的了数据结构当中的顺序表结构,主要用来进行车辆信息的管理功能。
包括信息的添加、修改、删除、查询等。
可以通过数组进行存储、访问操作。
2系统分析与设计
2.1系统分析
系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就返回到系统主菜单。
2.1.1类的设计关系
图2.1系统类的设计关系图
2.1.2主功能函数流程图
图2.2首页面功能关系图
2.2软件的数据(结构)设计
主要系统文件的写入与保存
//读文件
voidCar:
:
load(){system("CLS");
inti;
cout<<"正在读取请稍等"< ifstreamlo("car2.txt",ios_base: : in); if(lo){ lo>>cs;} else{ cout<<"找不到car2文件"< lo.close(); ifstreaml1("car.txt",ios_base: : in); if(l1){ for(i=0;i l1>>c[i].number>>c[i].carid>>c[i].company>>c[i].buytime>>c[i].typecar>>c[i].totalkm>>c[i].fuel>>c[i].maintain>>c[i].shorttage>>c[i].allmoney>>c[i].carrying>>c[i].box>>c[i].weight; cout<<"读取成功"< else{ cout<<"找不到car文件"< l1.close(); reback(); }//写入文件 ofstreamsa("car.txt",ios_base: : app); sa< sa< sa< sa< sa< sa< sa< sa< sa< sa< sa< sa< sa< sa.close(); ofstreamsb("car2.txt",ios_base: : out); sb< sb.close();} }2.3系统的算法设计 2.3.1添加车辆信息程序算法 其流程图如下: 图2.4车辆信息添加操作流程图 2.3.2修改车辆信息程序算法 其流程图如下: 图2.5车辆修改操作流程图 2.3.3查询车辆信息程序算法 其流程图如下: 图2.6车辆信息查询功能流程图 2.3.4删除处理信息流程图 3软件的实现 3.1主系统头文件、基类和结构体的定义 #include #include #include #include #include usingnamespacestd; constintn=1000; intcs=0; //定义结构体元素 typedefstructinformationcar{ longnumber; stringcarid; stringcompany; longbuytime; stringtypecar; floattotalkm; floatfuel; longmaintain; longshorttage; floatallmoney; intcarrying; intbox; floatweight; }ifcar; classCar{ public: Car(ifcarcx[n]); voiddemand(); voidshowcar(); voidredact(); voidcancel(); voidcount(); voidsave(); voidload(); private: ifcarcar[n]; }; 定义头文件,声明类的公有成员函数和私有数据成员。 3.2添加车辆信息代码解释 voidprintfcar(){ system("CLS"); stringxz; intj; if(cs<=n){ cout<<"请问添加的是什么车型: "< cin>>xz; if(xz=="大客车"){ system("CLS"); cout<<"车辆编号"< cin>>c[cs].number; cs=cs+1; for(j=0;j if(c[cs-1].number==c[j].number&&j! =cs-1){ cout<<"数据添加重复! "<<"添加取消! "< cs=cs-1; reback();}} cout<<"车牌号"<<"制造公司"<<"购买时间"< cin>>c[cs-1].carid>>c[cs-1].company>>c[cs-1].buytime; c[cs-1].typecar=xz; cout<<"总公里数"<<"油耗/公里"<<"养路费"<<"载客量"< cin>>c[cs-1].totalkm>>c[cs-1].fuel>>c[cs-1].shorttage>>c[cs-1].carrying; c[cs-1].maintain=2000; c[cs-1].allmoney=(6*c[cs-1].fuel+2000);} elseif(xz=="小轿车"){ system("CLS"); cout<<"车辆编号"< cin>>c[cs].number; cs=cs+1; for(j=0;j if(c[cs-1].number==c[j].number&&j! =cs-1){ cout<<"数据添加重复! "<<"添加取消! "< cs=cs-1; reback();}} cout<<"车牌号"<<"制造公司"<<"购买时间"< cin>>c[cs-1].carid>>c[cs-1].company>>c[cs-1].buytime; c[cs-1].typecar=xz; cout<<"总公里数"<<"油耗/公里"<<"养路费"<<"箱数"< cin>>c[cs-1].totalkm>>c[cs-1].fuel>>c[cs-1].shorttage>>c[cs-1].box; c[cs-1].maintain=1000; c[cs-1].allmoney=(6*c[cs-1].fuel+1000);} elseif(xz=="卡车"){ system("CLS"); cout<<"车辆编号"< cin>>c[cs].number; cs=cs+1; for(j=0;j if(c[cs-1].number==c[j].number&&j! =cs-1){ cout<<"数据添加重复! "<<"添加取消! "< cs=cs-1; reback();}} cout<<"车牌号"<<"制造公司"<<"购买时间"< cin>>c[cs-1].carid>>c[cs-1].company>>c[cs-1].buytime; c[cs-1].typecar=xz; cout<<"总公里数"<<"油耗/公里"<<"养路费"<<"载重量"< cin>>c[cs-1].totalkm>>c[cs-1].fuel>>c[cs-1].shorttage>>c[cs-1].weight; c[cs-1].maintain=1500; c[cs-1].allmoney=(6*c[cs-1].fuel+1500);} else{ cout<<"请输入正确指令"< reback();} cout<<"请问您是否继续添加"<<"y/n"< cin>>xz; if(xz=="y"){ printfcar(); } elseif(xz=="n"){ reback();} else{ cout<<"请输入正确指令"< reback();}} else{ cout<<"此车辆信息库已满! "< reback();} }} 该函数实现了对车辆信息的添加功能。 3.3删除车辆信息代码解释 voidCar: : cancel(){ system("CLS"); inti,j; longnub; charxz[3]; if(cs==0){ cout<<"车辆信息库为空"< else{ cout<<"请输入要删除信息车辆到编号"< cin>>nub; for(i=0;i if(nub==car[i].number){ cout<<"车辆编码"<<"车牌号"<<"制造公司"<<"购买时间"<<"车辆型号"<<"总公里数"<<"耗油量/公里"<<"维护费用"<<"养路费"<<"总费用"<<"载客量"<<"箱数"<<"载重量"< cout<<""< cout<<"您确定要删除吗"<<"yesorno"< cin>>xz; if(strcmp(xz,"yes")==0){ for(j=i;j c[j]=c[j+1];} cs=cs-1; reback();} elseif(strcmp(xz,"no")==0){ reback();} else{ cout<<"请输入正确指令"< reback();}} else{ cout<<"查无该车辆"< reback();}}} }该函数实现了对车辆信息的删除功能。 3.4修改车辆信息代码解释 voidCar: : redact(){ system("CLS"); inti,j; longnub; charxz[3]; cout<<"请输入要修改车辆到编号"< cin>>nub; for(i=0;i if(nub==car[i].number){ cout<<"车辆编码"<<"车牌号"<<"制造公司"<<"购买时间"<<"车辆型号"<<"总公里数"<<"耗油量/公里"<<"维护费用"<<"养路费"<<"总费用"<<"载客量"<<"箱数"<<"载重量"< cout<<""< cout<<"请问您确定修改"<<"y/n"< cin>>xz; if(strcmp(xz,"y")==0){ cout<<"车辆编号"< cin>>c[i].number; for(j=0;j if(c[i].number==car[j].number&&j! =i){ cout<<"您的车辆编号重复请修改"< Car: : showcar(); Car: : redact();}} cout<<"车牌号"<<"制造公司
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车辆 信息管理 课程设计 报告