c车辆管理标准系统_第1页
c车辆管理标准系统_第2页
c车辆管理标准系统_第3页
c车辆管理标准系统_第4页
c车辆管理标准系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、车辆管理系统主要负责各种车辆的常规信息管理工作。系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、 车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、 耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等 信息。每台车辆当月总费用=油价*耗油量/公里+基本维护费用。基本维护费用:客车:2000元/月,小轿车:1000元/月,卡车:1500元/月 功能要求:(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复 的编号时,则提示数据添加重复并取消添加;当车辆

2、信息库已满,则提示不能再 添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录, 则提示“该车辆制造公司不存在! ”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在! ”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆! ”;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占 据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号 的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则 提示“车辆

3、信息库为空! ”,并返回操作;否则,输入要删除的编号,根据编号删 除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库 中各类别的物品数并显示。(7)车辆信息存盘:将当前程序中的车辆信息存入文件中。(8)读出车辆信息:从文件中将车辆信息读入程序。源代码:#include <iostream>#include <fstream>#include <string>#include <stdlib.h> using namespace std 。int N

4、=5 o /*设置全局变量N=5,信息库最多存储5辆车辆信息*/int n1=0。/*全局变量,记录大客车文件当前信息库信息数量*/int n2=0。/*全局变量,记录小轿车文件当前信息库信息数量*/int n3=0。/*全局变量,记录卡车文件当前信息库信息数量*/ofstream os1("file1.dat",ios:binary|ios:trunc)。/* 建立 file1文件*/ofstream os2("file2.dat",ios:binary|ios:trunc)。/* 建立 file2 文件*/ofstream os3("fil

5、e3.dat",ios:binary|ios:trunc)。/*建立巾le3文件*/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 。/*

6、累计费用 */void getcar() 。void show()cout<<number<<"t"<<license_plat<<"t"<<company<<"t"<<time_buying<<”t"<<mode<<"t"<<ODO<<" "<<oil_consumption<<""<<

7、oil_price<<"t "<<road_tolt<<"t"。/* 输出所有数据 */car() °l*lclass truck:public car/*卡车类,公有继承汽车类*/public:double maintenance_charges 。/* 基本维护费用 */double load_weight 。/*卡车附加属性载重量*/void setall()maintenance_charges=1000 。/* 设置基本维护费用 */all_cost=(ODO*oil_consumption*oil

8、_price)+(time_buying*maintenance_charges)。/*计算累计费用*/void show()car:show() 。cout<<" "<<all_cost<<"t"<<load_weight<<endl。 /* 输出所有数据*/truck()。/*/class sedan:public car/*小轿车类,公有继承汽车类*/public:double maintenance_charges 。/* 基本维护费用 */int CTNS 。/*小轿车附加属性箱数*/

9、void setall()maintenance_charges=1500 。/* 设置基本维护费用 */all_cost=(ODO*oil_consumption*oil_price)+(time_buying*maintenance_ch arges)。/*计算累计费用*/void show()car:show() 。cout<<" "<<all_cost<<"t"<<CTNS<<endl。/* 输出所有数据 */sedan()。/*/class coach:public car/*客车类,

10、公有继承汽车类*/public:double maintenance_charges 。/* 基本维护费用 */int apacity 。/*大客车附加属性载客量*/void setall()maintenance_charges=1000 。/* 设置基本维护费用 */all_cost=(ODO*oil_consumption*oil_price)+(time_buying*maintenance_charges)。/*计算累计费用*/void show()car:show() 。cout<<" "<<all_cost<<"t

11、"<<apacity<<endl。/* 输出所有数据 */coach()。1*1void car:getcar()/*getcar()函数实现 */cout<<" 车牌号:"。cin>>license_plat 。cout<<" 车辆制造公司:"。cin>>company。cout<<" 车辆购买时间(月):"o cin>>time_buying。cout<<”车辆型号(1大客不2小轿车3 4): " o c

12、in>>mode。cout<<" 车辆总公里数:"o cin>>ODOcout<<"车辆油耗(每公里):"o cin>>oil_consumption 。cout<<"油价:"。cin>>oil_price 。cout<<"车辆养路费:"。cin>>road_tolt 。一*coach* getcoach()/*设置函数获取客车库中信息存储于数组中,方便之后提取 */int i 。coach* head=ne

13、w coachn1。ifstream is1("file1.dat",ios:in|ios二binary)。for(i=0 o i<n1。i+)is1>>headi.number>>headi.license_plat>>pany>>headi.time_buying>>headi.mode>>headi.ODO>>headi.oil_consumption>>headi.oil_price>>headi.road_tolt>>he

14、adi.all_cost>>headi.apacity 。.151 .close() 。return head 。/*/sedan* getsedan()/*设置函数获取小轿车库中信息存储于数组中,方便之后提 取*/int i 。sedan* head=new sedann2。ifstream is2("file2.dat",ios:in|ios二binary)。for(i=0 o i<n2。i+)is2>>headi.number>>headi.license_plat>>pany>>he

15、adi.time_buying>>headi.mode>>headi.ODO>>headi.oil_consumption>>headi.oil_price>>headi.road_tolt>>headi.all_cost>>headi.CTNS 。.152 .close() 。return head 。/*/truck* gettruck()/*设置函数获取客车库中信息存储于数组中,方便之后提取*/int i 。truck* head=new truckn3 。ifstream is3("file3

16、.dat",ios:in|ios二binary)。for(i=0 o i<n3。i+) (is3>>headi.number>>headi.license_plat>>pany>>headi.t ime_buying>>headi.mode>>headi.ODO>>headi.oil_consumption>>headi.oil_price>>headi.road_to lt>>headi.all_cost>>headi.load

17、_weight 。 一一is3.close() 。return head 。l*lint add()/*添加函数 */int i,j,k,x ostring str 。coach c。sedan s。truck t ocout<<"请输入添加数量:”。cin>>x 。for(i=0 o i<x o i+)int flag=0 。cout<<" 请选择第"<<i+1<<"辆添加车辆的类别(退出输入0):cout<<"*”<<endlcout<<&

18、quot;*"<<endl 。1大客车 2小轿车'<<endl oo3卡车cout<<"*”<<endlcin>>j 。if(j=0) return(0)。/* 用户输入 0 则退出*/cout<<"请输入数据:"<<endl。cout<<"车辆编号:"。cin>>str 。/*编号不唯一提示错误*/coach* h1=getcoach() 。/*调出大客车车库中信息*/for(k=0 o k<n1。k+)if(h

19、1k.number=str) cout<<"该编号已经存在."<<endl 。 i- 。flag=1 。 break。/*i 减1,保证添加的循环次数不会因无效输入而少一次*/free(h1) 。/* 释放空间*/sedan* h2=getsedan() 。/*调出小轿车车库中信息*/if(flag=0)for(k=0 。 k<n2o k+) if(h2k.number=str) cout<<"该编号已经存在."<<endl 。 i- 。flag=1 。 break。/*i 减1,保证添加的循环次数不

20、会因无效输入而少一次*/free(h2) 。/* 释放空间*/ if(flag=0) truck* h3=gettruck() 。/*调出卡车车库中信息*/ for(k=0 o k<n3o k+) if(h3k.number=str) cout<<"该编号已经存在."<<endl 。 i- 。flag=1 。 break。/*i 减1,保证添加的循环次数不会因无效输入而少一次*/free(h3) 。/* 释放空间*/ if(flag=0) if(j=1)/*数据数量多于预订值提示错误*/n1+ o if(n1>N) n1 -ocout&l

21、t;<"车辆信息库已满! "<<endl。break。 c.number=str 。 c.getcar()。cout<<"请输入载客量:"。cin>>c.apacity 。c.setall()。ofstream os1("file1.dat",ios二binary|ios_base二app)。os1<<c.number<<""<<c.license_plat<<" "<<pany<<

22、<<c.time_buying<<""<<c.mode<<""<<c.ODO<<" "<<c.oil_consumption<<"<<c.oil_price<<""<< c.road_tolt<<" "<<c.all_cost<<" "<<c.apacity<<"&q

23、uot;。cout<<"添加成功! "<<endl。os1.close()。 if(j=2) /*数据数量多于预订值提示错误*/n2+ o if(n2>N) cout<<"车辆信息库已满! "<<endl。break。s.number=strs.getcar()。cout<<"请输入箱数:"o cin>>s.CTNSos.setall()。ofstream os2("file2.dat",ios二binary|ios_base二app)。

24、os2<<s.number<<""<<s.license_plat<<" "<<pany<<"<<s.time_buying<<" "<<s.mode<<“"<<s.ODO<<""<<s.oil_consumption<<" "<<s.oil_price<<""<

25、;<s.road_tolt<<" "<<s.all_cost<<""<<s.CTNS<<""。cout<<" 添加成功! "<<endl。os2.close()。if(j=3)/*数据数量多于预订值提示错误*/n3+ oif(n3>N)cout<<"车辆信息库已满!"<<endl。break。cout<<"请输入数据:"<<endl。

26、cout<<" 车辆编号:"o cin>>t.number 。t.number=str 。t.getcar()。cout<<"请输入载重量):"。cin>>t.load_weight。t.setall()oofstream os3("file3.dat",ios:binary|ios_base:app)。os3<<t.number<<""<<t.license_plat<<" "<<pan

27、y<<""<<t.time_buying<<" "<<t.mode<<""<<t.ODO<<" "<<t.oil_consumption<<" "<<t.oil_price<<" "<<t.road_tolt<<""<<t.all_cost<<" "<&

28、lt;t.load_weight<<""。cout<<" 添加成功! "<<endl。os3.close()。return(0) 。 /*/查询函数*/void query()/* int x,flag=0string str 。cout<<"请输入查询方式(退出输入 0): "<<endl。cout<<"I*”<<endlcout<<"* 1 公司查询2编号查询3类别查询*"<<endlcout&

29、lt;<"I*”<<endl/*编号查找,/*编号查找,/*编号查找,/*未找到符合cin>>x o/*按公司查询或按编号查询*/if(x=1)|(x=2)int i oif(x=1) cout<<"请输入公司:"。else cout<<" 请输入编号:"。cin>>str 。coach* c=getcoach() 。 /* 查找大客车文件 */for(i=0 o i<n1。i+)/* 输出符合的数据*/if(ci.number=str)ci.show() 。flag=1

30、。break。因为编号唯一,只有一个数据符合*/if(pany=str) ci.show()。free(c) 。/*释放空间*/if(flag=0)/*如果编号数据已找到不进行下面操作*/sedan* s=getsedan() 。/* 查找小轿车文件 */for(i=0 o i<n2。i+)/* 输出符合的数据*/if(si.number=str)si.show() 。flag=1 。break。因为编号唯一,只有一个数据符合*/if(pany=str) si.show()。free(s) 。/*释放空间*/if(flag=0)/*如果编号数据已找到不进行下面操作

31、*/truck* t=gettruck()。/* 查找卡车文件 */for(i=0 o i<n3。i+)/* 输出符合的数据*/if(ti.number=str)ti.show() 。flag=1 。break。因为编号唯一,只有一个数据符合*/if(pany=str) ti.show()。free(c) 。/*释放空间*/if(flag=0) cout<<"未找到信息,输入错误! "<<endl。的数据输出错误*/* 按类别查询*/if(x=3)int i,j 。cout<<"请输入类别(1大客车、2小轿车、

32、3卡车):”。cin>>i oswitch(i)case 1:coach* c1=getcoach()for(j=0 c1j.show()free(c1) breakcase 2:。j<n1 。 j+)0o /*释放空间*/sedan* s1=getsedan()for(j=0 s1j.show()free(s1) breakcase 3:j<n2。 j+)o/*释放空间*/truck* t1=gettruck()for(j=0 t1j.show()free(t1)breakj<n3。j+)o/*释放空间*/default: cout<<"E

33、RROR:input error!"<<endl /*/void show()/*显示函数 */int i=0 ocout<<"*"<<endl0油价cout<<" 编号车牌号制造公司购买时间型号总公里数油耗养路费累计特有属性"<<endl。cout<<"*"<<endlcoach* c=getcoach()for(i=0 ci.show() free(c)o i<n1。i+)/*o/*查找大客车文件*/输出数据*/*查找小轿车文件*/

34、 输出数据*/*查找小轿车文件*/ 输出数据*/sedan* s=getsedan() 。 for(i=0。 i<n2。 i+)/*si.show() ofree(s)。truck* t=gettruck() 。 for(i=0o i<n3。i+)/*ti.show() 。free(s)。*/*/void handle(int x)/* 构建函数,对车库信息进行处理,包括修改和删除string str 。int i,j,k=0,l。if(x=0)cout<<"输入要编辑车的编号:"。if(x=1)cout<<"输入要删除车的编号

35、:”。cin>>str。coach* c=getcoach()。sedan* s=getsedan()。truck* t=gettruck() 。if(x=0)int p=0 ofor(i=0 o i<n1。i+)/* 查找数据 */if(ci.number=str)j=i ok=1 o/*输入新数据*/cout<<"请输入新的完整数据:"<<endl。cout<<” 车辆编号:"o cin>>ci.number 。ci.getcar() 。cout<<" 载客量:"

36、o cin>>ci.apacity 。ci.setall()。coach* h=getcoach() 。for(l=0o l<n1 o l+)if(hl.number=cj.number) p+。free(h)。if(p>1)cout<<"此编号已存在,重新输入!"。handle(0)。if(p=1)/*编号唯一,新数据存入文件*/ofstreamos1 ("filel .dat",ios:binary|ios_base:trunc)。for(l=0o I<n1 o l+)os1 «cl.number&

37、#171;""«cl.license_plat«""«pany«""«cl.time_buying«""«cl.mode«""«cl.ODO«""«cl.oil_consumption«""«cl.oil_price«""«cl.road_tolt«"&qu

38、ot;«cl.all_cost«""«cl.apacity«""。)os1 .close()o)if(k=O)/*如果数据已修改不进行下面的程序*/for(i=0oi<n2。 i+)if(si.number=str) /*查找数据*/j=iok=1o/* 输入新数据*/ cout«"请输入新的完整数据:"«endl 0cout«"车辆编号:"o cin»si.number 。si.getcar()。cout«"

39、 箱数(2、3) :。cin»si.CTNS 。si.setall()。sedan* h=getsedan()。for(l=0o I<n2。I+)if(hl.number=sj.number) p+ o free(h)。if(P>1) cout«" 此编号已存在,重新输入!" o handle(O)。 ) if(p=1)/*编号唯一,新数据存入文件*/ofstream os2("file2.dat",ios:binary|ios_base:trunc)。for(l=0o I<n2。l+)os2«sl.num

40、ber«""«sl.license_plat«""«pany «""«sl.time_buying«""«sl.mode«""«sl.ODO «""«sl.oil_consumption«""«sl.oil_price«""« sl.road_tolt«&q

41、uot;"«sl.all_cost«""<<sl.CTNS<<"")os2.close()。)if(k=0)/*如果数据已修改不进行下面的程序*/for(i=0o i<n3。i+)if(ti.number=str) /*查找数据 */j=i ok=1 o/* 输入新数据*/cout<<"请输入新的完整数据:"<<endl。cout<<"车辆编号:"。cin>>ti.number 。ti.getcar() 。c

42、out<<" 载重量:"。cin>>ti.load_weight 。ti.setall()。truck* h=gettruck()。for(l=0o l<n3 o l+)if(hl.number=tj.number)p+ ofree(h)。if(p>1)cout<<"此编号已存在,重新输入!"。handle(0)。if(p=1)/*编号唯一,新数据存入文件*/Ofstreamos3("file3.dat",ios:binary|ios_base:trunc)for(l=0。 l<n

43、3o l+)os3<<tl.number<<<<tl.license_plat<<”"<<pany<<""<<tl.ODO<<""<<tl.oil_price<<""<< tl.road_tolt<<""<<tl.load_weight<<""os3.close()if(k=0) cout<<&q

44、uot;ERROR:"<<tl.time_buying<<""<<tl.mode<<"<<tl.oil_consumption<<""<<tl.all_cost<<"o o编号错误."<<endl oif(x=1) for(i=0i<n1 oi+)/*查找大客车信息库*/if(ci.number=str) k=1,j=i。break。ofstream os1("file1.dat",

45、ios二binary|ios二app)。for(i=0 o i<n1。i+)/* 删除数据 */if(i!=j)os1<<ci.number<<" "<<ci.license_plat<<" "<<pany<<<<ci.time_buying<<""<<ci.mode<<""<<ci.ODO<<" "<<ci.oil_con

46、sumption<<"<<ci.oil_price<<""<<ci.road_tolt<<" "<<ci.all_cost<<" "<<ci.apacity<<""if(i=j) n1- o cout<<"删除成功! "<<endl。/*删除数据成功,信息 库信息数量减一 */os1.close()。if(k=0)/*已删除数据则不进行下面程序*/for(

47、i=0 。i<n2。i+)/*查找小轿车信息库*/if(si.number=str) k=1,j=i。break。ofstream os2("file2.dat",ios二binary|ios二app)。for(i=0。i<n2。i+)/* 删除数据 */if(i!=j)os2<<si.number<<" "<<si.license_plat<<" "<<pany<<" "<<si.time_buying&l

48、t;<""<<si.mode<<""<<si.ODO<<" "<<si.oil_consumption<<""<<si.oil_price<<""<<si.road_tolt<<" "<<si.all_cost<<" "<<si.CTNS<<""。if(i=j) n

49、2- o cout<<"删除成功! "<<endl。/*删除数据成功,信息库信息数量减一 */os2.close()。if(k=0)/*已删除数据则不进行下面程序*/for(i=0。i<n3。i+)/*查找小轿车信息库*/if(ti.number=str) k=1,j=i。 break。ofstream os3("file3.dat",ios二binary|ios二app)if(i!=j)os2<<ti.number<<" "<<ti.time_buying<<""<<ti.mode<<""<<ti.oil_price<<""<<ti.road_tolt<<"for(i=0 o i<n3。i+)/* 删除数据 */<<ti.license_plat<<" "<<pany<<<<ti.OD

温馨提示

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

评论

0/150

提交评论