车辆管理系统模版

上传人:痛*** 文档编号:90323756 上传时间:2022-05-14 格式:DOC 页数:28 大小:199KB
收藏 版权申诉 举报 下载
车辆管理系统模版_第1页
第1页 / 共28页
车辆管理系统模版_第2页
第2页 / 共28页
车辆管理系统模版_第3页
第3页 / 共28页
资源描述:

《车辆管理系统模版》由会员分享,可在线阅读,更多相关《车辆管理系统模版(28页珍藏版)》请在装配图网上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 程序设计课程设计报告车辆管理系统设计专业计算机科学与技术学生姓名姜 天班级D计算机142学号1420074992指导教师吴 素 芹25 / 28目 录1 课程设计目的及要求12课题总体设计12.1 系统需求分析12.2系统功能描述12.3系统功能模块图12.4系统流程图13课题总体设计13.1 概念设计13.2 逻辑设计24详细设计24.1 类模块设计24.2 车辆信息的添加模块设计 24.3 车辆信息的删除模块设计24.4 车辆信息的修改模块设计24.5 车辆信息的显示模块设计 24.6 车辆信息的查询模块设计 24.7 车辆信息的保存模块设计

2、 25调试与测试26小结2参考文献3附 录4附录1 源程序清单4车辆管理系统的设计1 课程设计目的及要求 (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;(3)显示车辆信息库:输

3、出当前车辆信息库中所有车辆信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。(7)车辆信息存盘:将当前程序中的车辆信息存入文件中。(8)读出车辆信息:从文件中将车辆信息读入程序。2课题总体设计 随着社会的进步和人们生活水平的提高,车辆作为

4、交通工具,已经成为人们日常生活中不可缺少的一部分.大大增加了交通压力,同时,也对车辆里的管理有了一个更高的要求.因此,需要一个车辆管理系统来对各种车辆的各种信息进行统一管理。2.1 系统需求分析 车辆管理系统需求,录入每个进入的车辆的车牌号,制造公司,购买时间,汽车类型,总公里数,油耗,油价,养路费,基本维护费用,以及附加属性。从而方便查询,统计每一辆进入的车辆。2.2系统功能描述 车辆管理系统由车辆信息的添加,删除,修改,显示,查询,保存5个部分组成,以便于用户可以更加方便的管理进出的车辆。计算出每辆车所产生的费用。2.3系统功能模块图和流程图Main()函数界面类的定义车辆信息的保存车辆信

5、息的查询车辆信息的显示车辆信息的修改车辆信息的删除车辆信息的添加Findnumber()函数Findcompany()函数Save_Add()函数Print()函数Modify()函数Delete()函数Add()函数3课题总体设计3.1 概念设计 所谓的概念结构设计,既是将需求分析得到的用户需求抽象为信息结构即概念模型的过程。通过概念结构设计最终得到数据库的模型。3.2 逻辑设计车辆管理系统是数据库的概念模型,它独立于任何一种数据模型,独立于任何一种具体的数据库管理系统,因此,需要把上述的概念模型转换为具体的被数据库管理系统所支持的数据模型,这就是学生信息管理系统数据库的逻辑结构设计。4详细

6、设计4.1 类模块设计 各模块(函数)的参数说明及相互调用关系、各功能模块算法流程图等 本程序创建了Car()类(车类),Coach()类(客车类),Sedan()类(轿车类),Truck()类(大卡车类),在每个类里,利用mode来给每一种车类做好标记,以便于录入车辆时,系统作出分辨。4.2 车辆信息的添加模块设计此模块是在类中输入,输入车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,油价,养路费,基本维护费用,附加属性。不同的车型,附加属性也不同,利用switch语句来确定车型,输入车辆时都会遍历链表,如果有此车牌号,则显示已有此辆车,重新添加。4.3 车辆信息的删除模块设计此模块用

7、来删除车辆的信息车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,油价,养路费,基本维护费用,附加属性。输入要删除的车牌号,利用while语句来确定要求删除的车牌号,遍历链表,找到该车牌号所在的结点,删除该结点。4.4 车辆信息的修改模块设计此模块用来修改车辆的信息车牌号,定义车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,油价,养路费,基本维护费用,附加属性。,输入要修改的车牌号,然后通过while语句来找到要求链表结点,遍历链表,如果没有找到要求修改的车牌号,则显示没有此车辆,如果找到此车辆,则记为1,然后输入新的要修改的信息。4.5 车辆信息的显示模块设计此模块用来显示车辆的信

8、息。定义车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,油价,养路费,基本维护费用,附加属性。由前面的输入函数得出。输出现有车库里所有的停车辆,以及各个车辆的信息。4.6查询车辆信息模块设计此模块用来查询用户的信息。定义车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,油价,养路费,基本维护费用,附加属性。利用if语句来判断所要查询的车辆是不是在文件内,输入所要查找的方式:1、按车牌号查找,2、按公司查找。再利用两个函数来分别给出用不同查找方式。车辆信息由前面显示函数给出。4.7保存车辆信息模块设计此模块用来保存车辆的信息。 定义车牌号,制造公司,购买时间,车辆类型,总公里数,油耗,

9、油价,养路费,基本维护费用,附加属性。利用 while语句来查找,有没有该车辆的文件,如果没有,就创建一个新的文件,保存该车辆信息。调用时,直接从文件中调用该车辆信息。5调试与测试调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施6小结。 参考文献1 刘振安,刘燕君.C程序设计课程设计M.北京:机械工业出版社,2004.2 谭浩强.C程序设计(第三版)M.北京:清华大学出版社,2005.3 张国锋.C+语言及其程序设计教程.北京:电子工业出版社,19974 徐士良.C 常用算法程序集.北京:清华大学出版社,19955 和克智.C+程序设计(第2版).西安:西安交通大学出版

10、社,19996 三味创作室. Visual C+6.0应用与提高.北京:科学出版社,19997 邵维忠,杨芙清.面向对象的系统分析.北京:清华大学出版社,19988 洪永清,黄德才,吕丽民.面向对象建模与设计.北京:人民邮电出版社,19989 关治.陈景良.数值计算.北京:清华大学出版社,199310 郑莉,董渊,张瑞丰等编著.C+语言程序设计(第3版).北京:清华大学出版社,20096-7本参考资料附 录附录1 源程序清单(这里 放全部代码 ,前面 不要 出现 代码 出现 也只能 少量的)#include#include#include#includeusing namespace std;

11、class Vehiche_Management;class Car /车类(抽象基类)protected:string number;/车牌号string company;/制造公司double time_buying;/购买时间int mode;/汽车类型double ODO;/总公里数double oil_consumption;/油耗double oil_price;/油价double road_tolt;/养路费double all_cost;/累计费用double maintenance_charges;/基本维护费用Car *next;/指针成员public:virtual vo

12、id input()=0;/从键盘输入数据virtual void input(ifstream&infile)=0;/从文件输入数据virtual void output()=0;/向屏幕输出数据virtual void output(ofstream&outfile)=0;/向文件输出数据virtual double setcost()=0;/计算费用Car()next=0;virtualCar()/friend string Car_type(int mode);/用于输出车辆类型friend class Vehiche_Management;/将Salary_Management声明为

13、友元类;class Truck:virtual public Car/卡车类protected:double load_weight;/卡车的附加性能,载重量public:Truck() maintenance_charges=1000;/基本维护费用mode=1;/车类为1(卡车)virtual void input();virtual void input(ifstream&infile);virtual void output();virtual void output(ofstream&outfile);virtual double setcost();/friend class Ve

14、hiche_Management;class Sedan:virtual public Car/小轿车类protected:int CTNS;/小轿车附加属性,箱数public:Sedan()maintenance_charges=1500;/基本维护费用mode=2;/车类为2(实验员)virtual void input();virtual void input(ifstream&infile);virtual void output();virtual void output(ofstream&outfile);virtual double setcost();class Coach:v

15、irtual public Car/大客车类protected:int apacity;/大客车附加属性,载客量public:Coach()maintenance_charges=1000;/基本维护费用mode=3;/车类为3(大客车)virtual void input();virtual void input(ifstream&infile);virtual void output();virtual void output(ofstream&outfile);virtual double setcost();class Vehiche_Managementprivate:Car *PL

16、;/链表头指针void clear();int Findnumber(string number,Car*p1,Car*p2);/查找车辆结点int Findcompany(string company,Car*p1,Car*p2);/查找车辆结点public: Vehiche_Management()/构造函数(创建一个头结点的链表) Car *p=new Coach;/Coach,Truck,Sedan无关,赋予*p空间初始大小 PL=p; Load();/自动装入数据Vehiche_Management();void Add();/增加车辆信息?string number_set();v

17、oid Delete_menu();/删除车辆信息void Delete_number();/按车牌号删除车辆信息void Modify_menu();/修改车辆信息void Modify_number();void Print();/显示车辆信息void Save();/保存车辆信息void Save_add(Car*p);void Load();/车辆信息装入 void Find_menu();void Find_number();/按车辆车牌号查找车辆信息void Find_company();/车牌号查找车辆信息/friend class Car;/friend class Truck

18、;/*/mode与类名的转换string Car_type(int mode)string s;switch(mode)case 1:s=Truck;couttTruckendl;break;case 2:s=Sedan;couttSedanendl;break;case 3:s=Coach;couttCoachendl;break;return s;int car_type(string s)int mode;if(s=Truck)mode=1;else if(s=Sedan)mode=2;else if(s=Coach)mode=3;return mode;void princartype

19、_menu();/*/void Truck:input()coutcompany;couttime_buying;coutODO;coutoil_consumption;coutoil_price;coutroad_tolt;coutload_weight;/附加属性 all_cost=setcost();void Truck:input(ifstream&infile) string s; infilenumbercompanytime_buyingsODO oil_consumptionoil_priceroad_toltload_weightall_cost;void Truck:out

20、put()coutt车牌号:numberendl;coutt公司:companyendl;coutt购买时间:time_buyingendl;coutt类型:;Car_type(mode);coutt总公里数:ODOendl;coutt油耗:oil_consumptionendl;coutt油价:oil_priceendl;coutt养路费:road_toltendl;coutt载重量:load_weightendl;void Truck:output(ofstream&outfile)outfilenumbertcompanyttime_buyingtCar_type(mode)tODOto

21、il_consumptiontoil_pricetroad_tolttload_weighttall_costendl;double Truck:setcost()return all_cost=(ODO*oil_consumption*oil_price)+(time_buying*maintenance_charges);/*计算累计费用*/void Sedan:input()coutcompany;couttime_buying;coutODO;coutoil_consumption;coutoil_price;coutroad_tolt;coutCTNS;/附加属性 all_cost=

22、setcost();void Sedan:input(ifstream&infile) string s; infilenumber/*license_plat*/companytime_buyingsODO oil_consumptionoil_priceroad_toltCTNSall_cost;void Sedan:output()coutt车牌号:numberendl;coutt公司:companyendl;coutt购买时间:time_buyingendl;coutt类型:;Car_type(mode);coutt总公里数:ODOendl;coutt油耗:oil_consumptio

23、nendl;coutt油价:oil_priceendl;coutt养路费:road_toltendl;coutt箱数:CTNSendl;void Sedan:output(ofstream&outfile)outfilenumber/*tlicense_plat*/tcompanyttime_buyingtCar_type(mode)tODOtoil_consumptiontoil_pricetroad_tolttCTNStall_costendl;double Sedan:setcost()return all_cost=(ODO*oil_consumption*oil_price)+(ti

24、me_buying*maintenance_charges);/计算累计费用void Coach:input()coutcompany;couttime_buying;coutODO;coutoil_consumption;coutoil_price;coutroad_tolt;coutapacity;/附加属性 all_cost=setcost();void Coach:input(ifstream&infile) string s; infilenumbercompanytime_buyingsODO oil_consumptionoil_priceroad_toltapacityall_

25、cost;void Coach:output()coutt车牌号:numberendl;coutt公司:companyendl;coutt购买时间:time_buyingendl;coutt类型:;Car_type(mode);coutt总公里数:ODOendl;coutt油耗:oil_consumptionendl;coutt油价:oil_priceendl;coutt养路费:road_toltendl;coutt载客量:apacityendl;void Coach:output(ofstream&outfile)outfilenumbertcompanyttime_buyingtCar_t

26、ype(mode)tODOtoil_consumptiontoil_pricetroad_tolttapacityall_costnext;delete p;p=PL;PL=0;/*void Vehiche_Management:clear()/*清除所有车辆结点,仅保留头结点*Car *p=PL-next;/p为空,p1指向PL的下一结点while(p) PL-next=p-next;delete p;p=PL-next;*/int Vehiche_Management:Findnumber(string NUM,Car*p1,Car*p2)/*查找车辆结点*p1=PL-next;/PL为空

27、,p1指向PL的下一结点*p2=PL;while(*p1)if(*p1)-number=NUM)break;/找到else*p2=*p1;/继续查找*p1=(*p1)-next;return *p1?1:0;int Vehiche_Management:Findcompany(string COM,Car*p1,Car*p2)/*查找车辆结点,找到返回1,否之0*p1=PL-next;*p2=PL;while(*p1)if(*p1)-company=COM)break;/找到else*p2=*p1;/继续查找*p1=(*p1)-next;return *p1?1:0;int Add_link(

28、string s)/*int c;if(s=1)c=1;else if(s=1)c=1;else if(s=2)c=2;else if(s=3)c=3;else if(s=4)c=4;else if(s=0)c=0;return c;string Vehiche_Management:number_set()/*string NUM;int t=1;Car *p=PL-next;dot=1;coutNUM;while(p)/遍历链表,输出车辆信息if(p-number=NUM)t=0;coutnext;while(t=0);return NUM;void Vehiche_Management:

29、Add()/*添加车辆*couttt*车辆管理系统* nnn;coutnext)p=p-next;string s;int flag;int M=10;/创建新结点,录入数据,连接到链表Truck *pt;Sedan *pa;Coach *pm;princartype_menu();for(;M!=0;)docouts;if(s=1|s=2|s=3|s=4|s=0)flag=0;while(flag);M=Add_link(s);switch(M)case 1:pt=new Truck;pt-number=number_set();pt-input();p-next=pt;p=p-next;b

30、reak;case 2:pa=new Sedan;pa-number=number_set();pa-input();p-next=pa;p=p-next;break;case 3:pm=new Coach;pm-number=number_set();pm-input();p-next=pm;p=p-next;break;case 4:Save_add(p);break;case 0:return;default:cout输入错误!;break;void Vehiche_Management:Delete_menu()/*删除车辆信息*system(cls);/系统库函数(清屏)couttt

31、*车辆管理系统*nnn;int c;coutc;switch(c)case 1:Delete_number();break;case 2:return;default:cout输入错误!n;Delete_menu();break;void Vehiche_Management:Delete_number()string number;string c;Car *p1,*p2;coutnumber;if(!Findnumber(number,&p1,&p2)couttt该车牌号车辆不存在!n;coutnext=p1-next;/连接p1-output();coutc;if(c=1)p1-outp

32、ut();delete p1;coutntt删除成功!n;coutc;if(c=1)Save();Delete_menu();void Vehiche_Management:Modify_menu()/*删除车辆信息* Car *p=PL-next;if(!p)cout车辆信息库为空!n;return;int c;coutc;switch(c)case 1:Modify_number();break;case 2:return;default:cout输入错误!n;Modify_menu();break;void Vehiche_Management:Modify_number()/*修改车辆

33、信息*string number;/输入车牌号string c;Car *p1,*p2;coutnumber;if(!Findnumber(number,&p1,&p2)couttt该车牌号车辆不存在!n;coutoutput();/输出原来的车辆信息coutc;if(c=1)coutinput();/输入新的车辆信息couttt修改完成!n;Modify_menu();void Vehiche_Management:Print()/*显示车辆信息*couttt*车辆管理系统*nnn;coutnext;if(!p)coutoutput();coutnext;void Vehiche_Manag

34、ement:Save_add(Car*p)/*保存添加信息*ofstream f(Car.txt,ios:app);p-output(f);coutnext;while(p)/遍历输出至文件p-output(f);coutnext;f.close();/关闭文件coutbufbufbufs;/mode=car_type(s);if(f)/根据车辆类型创建新结点,将信息赋予相应类switch(mode)case 1:p2=new Truck;break;case 2:p2=new Sedan;break;case 3:p2=new Coach;break;default:f.close();re

35、turn;p-next=p2;p=p-next;/移向下一结点f.seekg(t);/将文件中的指针移到当前位置p-input(f);elsebreak;f.close();coutCar.txt数据已装入。n;void Vehiche_Management:Find_number()/*按编码查询*string number;Car *p1,*p2;coutnumber;if(!Findnumber(number,&p1,&p2)coutoutput();Find_menu();void Vehiche_Management:Find_company()/*按公司查询*string Comp

36、any;Car *p1,*p2,*p310;int i=0;Car *p=PL-next;coutCompany;if(!Findcompany(Company,&p1,&p2)coutcompany=Company)p3i=p;i+;p=p-next;for(int j=0;joutput();cout*endl;Find_menu();void Vehiche_Management:Find_menu()/*查询目录*couttt *n;couttt * 1:按车牌号查找 *n;couttt * 2:按公司查找 *n;couttt * 3:返回主菜单 *n;couttt *n;coutc;

37、switch(c)case 1:Find_number();break;case 2:Find_company();break;case 3:return;default:couttt输入错误!n;Find_menu();break;void princartype_menu() couttt *endl;couttt * 车辆添加菜单: *endl;couttt * 1:添加卡车: * endl;couttt * 2:添加小轿车: *endl;couttt * 3:添加大客车: * endl;couttt * 4:保存添加后的数据: *endl; couttt *endl; coutt 请选

38、择要添加的相应人员列别分类码,输入0结束添加:;int Meau_link(string s)int c;if(s=1)c=1;else if(s=1)c=1;else if(s=2)c=2;else if(s=3)c=3;else if(s=4)c=4;else if(s=5)c=5;else if(s=6)c=6;else if(s=7)c=7;else if(s=8)c=8;return c;int Meau()string c;int d;int flag;dosystem(cls);/系统库函数(清屏)flag=1;coutnnn;coutt*n;coutt* tt tt * n;c

39、outt* tt 欢迎进入车辆管理信息系统 *n; coutt* tt tt * n; coutt*tt 1、添加车辆 tt *n;coutt*tt 2、删除车辆 tt *n;coutt*tt 3、查找车辆 tt *n;coutt*tt 4、修改车辆 tt *n;coutt*tt 5、输出车辆信息 tt *n;coutt*tt 6、保存数据 tt *n;coutt*tt 7、还原上次信息 tt *n;coutt*tt 8、退出 tt *n; coutt*n;coutc;if(c=1|c=2|c=3|c=4|c=5|c=6|c=7|c=8)flag=0;while(flag);d=Meau_li

40、nk(c);return d;/显示主菜单,接受选择void main()int ch;system(color 4e);/改变颜色Vehiche_Management c;doch=Meau();switch(ch)case 1:system(cls);c.Add();getchar();break;case 2:system(cls);c.Delete_menu();getchar();break;case 3:system(cls);couttt*车辆管理信息系统*nnn;c.Find_menu();break;case 4:system(cls);couttt*车辆管理信息系统*nnn

41、;c.Modify_menu();getchar();break;case 5:system(cls);c.Print();coutnntt按回车键结束.n;getchar();getchar();break;case 6:system(cls);c.Save();coutnntt按回车键结束.n;getchar();getchar();break;case 7:system(cls);c.Load();coutnntt按回车键结束.n;getchar();getchar();break;case 8:return;default:couttt输出错误!请重新选择n;getchar();getchar();break;while(ch!= 8);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!