C++车辆管理系统模板.docx
- 文档编号:23622405
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:21
- 大小:36.15KB
C++车辆管理系统模板.docx
《C++车辆管理系统模板.docx》由会员分享,可在线阅读,更多相关《C++车辆管理系统模板.docx(21页珍藏版)》请在冰豆网上搜索。
C++车辆管理系统模板
车辆管理系统主要负责各种车辆的常规信息管理工作。
系统中的车辆主要有大客车、小轿车和卡车。
每种车辆有车辆编号、车牌号、
车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、
耗油量/公里、基本维护费用、养路费、累计总费用等信息。
大客车还有载客量
(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。
每台车辆当月总费用=油价*耗油量/公里+基本维护费用。
基本维护费用:
客车:
元/月,小轿车:
1000元/月,卡车:
1500元/月功能要求:
(1)添加车辆:
主要完成车辆信息的添加,要求编号唯一。
当添加了重复
的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再
添加新的数据。
(2)查询车辆:
可按照三种方式来查询物品,分别为:
按车辆制造公司查询:
输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示”该车辆制造公司不存在按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提
—-”、亠
示”该编号不存在!
”;按类别查询:
输入类别,输出所查询的信息,若不存在记录,则提
—k”、亠”
示”该类别没有车辆!
”;
(3)显示车辆信息库:
输出当前车辆信息库中所有车辆信息,每条记录占
据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号
的唯一性。
(5)删除车辆:
主要完成车辆信息的删除。
如果当前车辆信息库为空,则
提示”车辆信息库为空!
”,并返回操作;否则,输入要删除的编号根据编号删
除该车辆的记录,如果该编号不在车辆信息库库中,则提示”该编号不存在”。
(6)统计信息
输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。
(7)车辆信息存盘:
将当前程序中的车辆信息存入文件中(8)读出车辆信息:
从文件中将车辆信息读入程序。
源代码:
#include
#include
#include
#include
intN=5;/*设置全局变量N=5,信息库最多存储5辆车辆信息*/intn1=0;/*全局变量,记录大客车文件当前信息库信息数量*/intn2=0;/*全局变量,记录小轿车文件当前信息库信息数量*/intn3=0;/*全局变量,记录卡车文件当前信息库信息数量*/ofstreamos1("file1.dat",ios:
:
binary|ios:
:
trunc);/*建立file1文件*/ofstreamos2("file2.dat",ios:
:
binary|ios:
:
trunc);/*建立file2文件*/ofstreamos3("file3.dat",ios:
:
binary|ios:
:
trunc);/*建立file3文件*/classcar{/*汽车类*/
public:
stringnumber;stringlicense_plat;/*车牌号码*/stringcompany;
doubletime_buying;
stringmode;doubleODO;/*总公里数*/doubleoil_consumption;/*油耗量/公里*/doubleoil_price;/*油价*/doubleroad_tolt;/*养路费*/doubleall_cost;/*累计费用*/voidgetcar();
voidshow(){cout< < }; /*****************************/ classtruck: publiccar{/*卡车类,公有继承汽车类*/public: doublemaintenance_charges;/*基本维护费用*/doubleload_weight;/*卡车附加属性载重量*/voidsetall(){ maintenance_charges=1000;/*设置基本维护费用*/all_cost=((ODO*oil_consumption*oil_price)+(time_buying*maintenance_charges));/*计算累计费用*/} voidshow(){ car: : show(); cout<<""< }; /*****************************/ classsedan: publiccar{/*小轿车类,公有继承汽车类*/ public: doublemaintenance_charges;/*基本维护费用*/ intCTNS;/*小轿车附加属性箱数*/ voidsetall(){ maintenance_charges=1500;/*设置基本维护费用*/ all_cost=((ODO*oil_consumption*oil_price)+(time_buying*maintena nce_charges));/*计算累计费用*/} voidshow(){ car: : show(); cout<<""< }; /*****************************/ classcoach: publiccar{/*客车类,公有继承汽车类*/ public: doublemaintenance_charges;/*基本维护费用*/ intapacity;/*大客车附加属性载客量*/ voidsetall(){ maintenance_charges=1000;/*设置基本维护费用*/all_cost=((ODO*oil_consumption*oil_price)+(time_buying*maintenance_charges));/*计算累计费用*/} voidshow(){ car: : show(); cout<<""< }; /*****************************/ voidcar: : getcar(){/*getcar()函数实现*/ cout«"车牌号: ";cin>>license_plat; coutvv"车辆制造公司: ";cin>>company; cout«"车辆购买时间(月): ";cin>>time_buying; coutvv"车辆型号(1大客车2小轿车3卡车): ";cin>>mode; coutvv"车辆总公里数: ";cin>>ODO; coutvv"车辆油耗(每公里): ";cin>>oil_consumption; cout«"油价: ";cin>>oil_price; cout«"车辆养路费: ";cin>>road_tolt; } /*****************************/ coach*getcoach(){/*设置函数获取客车库中信息存储于数组中,方便之后提取*/ inti; coach*head=newcoach[n1]; ifstreamis1("file1.dat",ios: : in|ios: : binary); for(i=0;i is1>>head[i].number>>head[i].license_plat>>head[i].company>>head[i].time_buying>>head[i].mode>>head[i].ODO>>head[i].oil_consumption>>head[i].oil_price>>head[i].road_tolt>>head[i].all_cost>>head[i].apacity; } is1.close(); returnhead; } /*****************************/sedan*getsedan(){/*设置函数获取小轿车库中信息存储于数组中方便之后提取*/ inti; sedan*head=newsedan[n2]; ifstreamis2("file2.dat",ios: : in|ios: : binary);for(i=0;i is2>>head[i].number>>head[i].license_plat>>head[i].company>>head[ i].time_buying>>head[i].mode>>head[i].ODO >>head[i].oil_consumption>>head[i].oil_price>>head[i].road_tolt>>head[i].all_cost>>head[i].CTNS; } is2.close(); returnhead; } /*****************************/ truck*gettruck(){/*设置函数获取客车库中信息存储于数组中,方便之后提取*/inti; truck*head=newtruck[n3]; ifstreamis3("file3.dat",ios: : in|ios: : binary); for(i=0;i is3>>head[i].number>>head[i].license_plat>>head[i].company>>h ead[i].time_buying>>head[i].mode>>head[i].ODO >>head[i].oil_consumption>>head[i].oil_price>>head[i].road_tolt>>head[i].all_cost>>head[i].load_weight; } is3.close(); returnhead; } /*****************************/ intadd(){/*添加函数*/ inti,j,k,x; stringstr; coachc; sedans; truckt; cout<<"请输入添加数量: "; cin>>x; for(i=0;i intflag=0; cout<<"请选择第"< 0): "< cout<<"< coutvv"*1大客车2小轿车3卡车*"< cout<<"*************************************************"< cin>>j; if(j==0)return(0);/*用户输入0则退出*/ cout«"请输入数据: "< coutvv"车辆编号: ";cin>>str; /*编号不唯一提示错误*/coach*h1=getcoach();/*调出大客车车库中信息*/for(k=0;k if(h1[k].number==str){ coutvv"该编号已经存在."< /*i减1,保证添加的循环次数不会因无效输入而少一次*/free(h1);/*释放空间*/ sedan*h2二getsedan();/*调出小轿车车库中信息*/if(flag==0){for(k=0;kvn2;k++)if(h2[k].number==str){coutvv"该编号已经存在."< */ /*i减1,保证添加的循环次数不会因无效输入而少一次 free(h2);/*释放空间*/ } if(flag==0){ truck*h3=gettruck();/*调出卡车车库中信息*/for(k=0;k if(h3[k].number==str){ cout<<"该编号已经存在."< /*i减1,保证添加的循环次数不会因无效输入而少一次*/free(h3);/*释放空间*/ } if(flag==0){ if(j==1){ /*数据数量多于预订值提示错误*/ n1++; if(n1>N){ n1--; cout<<"车辆信息库已满! "< break; } c.number=str; c.getcar(); cout<<"请输入载客量: ";cin>>c.apacity; c.setall(); ofstreamos1("file1.dat",ios: : binary|ios_base: : app); os1< ""< <<""<< c.road_tolt<<""< cout<<"添加成功! "< os1.close(); } if(j==2){ /*数据数量多于预订值提示错误*/ n2++; if(n2>N){ cout<<"车辆信息库已满! "< break; } s.number=str; s.getcar(); cout<<"请输入箱数: ";cin>>s.CTNS; s.setall(); os2< uying<<""< < lt<<""< < cout<<"添加成功! "< os2.close(); } if(j==3){ /*数据数量多于预订值提示错误*/ n3++; if(n3>N){ cout<<"车辆信息库已满! "< break; } coutvv"请输入数据: "< coutvv"车辆编号: ";cin>>t.number; t.number=str; t.getcar(); coutvv"请输入载重量): ";cin>>t.load_weight; t.setall(); os3< <<""< t.all_cost<<""< cout<<"添加成功! "< os3.close(); } } }return(0); } ***************************** voidquery(){/*查询函数*/ intx,flag=0; stringstr; coutvv"请输入查询方式(退出输入0): "vvendl; coutvv"*1公司查询2编号查询3类别查询*"vvendl; cin>>x; /*按公司查询或按编号查询*/ if((x==1)||(x==2)){ inti; if(x==1)cout<<"请输入公司: ";elsecout<<"请输入编号: "; cin>>str;coach*c=getcoach();/*查找大客车文件*/for(i=0;i /*输出符合的数据*/ if(c[i].number==str){c[i].show();flag=1;break;}/*编号查找,因为编号唯一,只有一个数据符合*/ if(c[i].company==str)c[i].show(); } free(c);/*释放空间*/ if(flag==0){/*如果编号数据已找到不进行下面操作*/ sedan*s=getsedan();/*查找小轿车文件*/ for(i=0;i /*输出符合的数据*/if(s[i].number==str){s[i].show();flag=1;break;}/*编号查找,因为编号唯一,只有一个数据符合*/ if(s[i].company==str)s[i].show(); free(s);/*释放空间*/ } if(flag==0){/*如果编号数据已找到不进行下面操作*/truck*t=gettruck();/*查找卡车文件*/ for(i=0;i /*输出符合的数据*/ if(t[i].number==str){t[i].show();flag=1;break;}/*编号查找,因为编号唯一,只有一个数据符合*/ if(t[i].company==str)t[i].show(); } free(c);/*释放空间*/ } if(flag==0)cout<<"未找到信息,输入错误! "< } /*按类别查询*/ if(x==3){ inti,j; coutvv"请输入类别(1大客车、2小轿车、3卡车): "; cin>>i; switch(i){case1: coach*c1=getcoach(); for(j=0;j c1[j].show(); free(c1);/*释放空间*/ break; case2: sedan*s1=getsedan(); for(j=0;j s1[j].show(); free(s1);/*释放空间*/ break; case3: truck*t1=gettruck(); for(j=0;j t1[j].show(); free(t1);/*释放空间*/ break; default: cout<<"ERROR: inputerror! "< } ***************************** voidshow(){/*显示函数*/inti=0; cout<<" ************************************************** ******************************H < coutvv"编号车牌号制造公司购买时间型号总公里数油耗油价养路 费累计特有属性"< cout<<" ************************************************** ******************************H < coach*c=getcoach();/*查找大客车文件*/ for(i=0;i c[i].show(); free(c); sedan*s=getsedan();/*查找小轿车文件*/ for(i=0;i s[i].show(); free(s); truck*t=gettruck();/*查找小轿车文件*/ for(i=0;i t[i].show(); free(s); /*****************************/ 包括修改和删 voidhandle(intx){/*构建函数,对车库信息进行处理除*/stringstr; inti,j,k=0,l; if(x==0) coutvv"输入要编辑车的编号: "; if(x==1) coutvv"输入要删除车的编号: "; cin>>str; coach*c=getcoach(); sedan*s=getsedan(); truck*t=gettruck(); if(x==0){ intp=0; for(i=0;ivn1;i++)/*查找数据*/ if(c[i].number==str){ j=i; k=1; /*输入新数据*/ coutvv"请输入新的完整数据: "vvendl; coutvv"车辆编号: ";cin>>c[i].number; c[i].getcar(); cout<<"载客量: ";cin>>c[i].apacity; c[i].setall(); coach*h=getcoach(); for(l=0;l if(h[l].number==c[j].number)p++; free(h); if(p>1){ cout<<"此编号已存在,重新输入! ";handle(0); } if(p==1){/*编号唯一,新数据存入文件*/ofstreamos1("file1.dat",ios: : binary|ios_base: : trunc);for(l=0;l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 车辆 管理 系统 模板