版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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=5
4、;/*设置全局变量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 文件*/建立file3 文件*/ofstream os
5、3("file3.dat",ios二binary|ios:trunc);/*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;/*累计费用 */void ge
6、tcar();void show() cout<<number<<"t"<<license_plat<<"t"<<company<<"t"<<time_buying<<"t"<<mode<<"t"<<ODO<<" "<<oil_consumption<<""<<oil_price
7、<<"t "<<road_tolt<<"t"/*输出所有数据 */car();/*/class truck:public car/* 卡车类,公有继承汽车类*/ public:double maintenance_charges;/* 基本维护费用 */double load_weight;/* 卡车附加属性载重量*/void setall()maintenance_charges=1000;/*设置基本维护费用 */ all_cost=(ODO*oil_consumption*oil_price)+(time_buy
8、ing*maintenance_charges);/* 计算累计费用*/void show()car二show();cout<<" "<<all_cost<<"t"<<load_weight<<endl;/*输出所有数据*/_truck();*class sedan:public car/*小轿车类,公有继承汽车类*/public:double maintenance_charges;/*基本维护费用 */int CTNS;/*小轿分附加属性箱数*/void setall()maintenanc
9、e_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/* 客车类,公有继承汽车类*/public:double
10、maintenance_charges;/*基本维护费用 */int apacity;/*大客车附加属性载客量*/void setall()maintenance_charges=1000;/*设置基本维护费用 */all_cost=(ODO*oil_consumption*oil_price)+(time_buying*maintenance_ch arges);/*计算累计费用*/void show()car二show();cout<<" "<<all_cost<<"t"<<apacity<<
11、;endl;/*输出所有数据 */coach();/*/ void car:getcar()/*getcar() 函数实现 */cout<<"车牌号:"cin>>license_plat;cout<<" 车辆制造公司:"cin>>company;cout<<" 车辆购买时间(月):"cin>>time_buying;cout<<”车辆型号(1大客不2小轿车3卡车):"cin>>mode;coutvv”车辆总公里数:”;cin>
12、;>ODO;coutvv"车辆油耗(每公里):"cin>>oil_consumption;coutvv"油价:"cin>>oil_price;coutvv" 车辆养路费:"cin>>road_tolt;一*coach* getcoach()/*设置函数获取客车库中信息存储于数组中,方便之后提取 */int i;coach* head=new coachn1;ifstream is1("file1.dat",ios:in|ios二binary);for(i=0;i<n1
13、;i+) is1>>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.apacity;.is1.close();return head; /*/sedan* getsedan
14、()/*设置函数获取小轿车库中信息存储于数组中,方便之后提 取*/int i;sedan* head=new sedann2;ifstream is2("file2.dat",ios:in|ios二binary);for(i=0;i<n2;i+) is2>>headi.number>>headi.license_plat>>pany>>headi.t ime_buying>>headi.mode>>headi.ODO>>headi.oil_consumption>
15、;>headi.oil_price>>headi.road_to lt>>headi.all_cost>>headi.CTNS;.is2.close();return head; /*/truck* gettruck()/*设置函数获取客车库中信息存储于数组中,方便之后提取*/int i;truck* head=new truckn3;ifstream is3("file3.dat",ios:in|ios二binary);for(i=0;i<n3;i+) is3>>headi.number>>headi
16、.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_weight; 一一is3.close();return head; /*/int add()/*添加函数 */int i,j,k,x;string str;coach c;s
17、edan s;truck t;cout<<"请输入添加数量:"cin>>x;for(i=0;i<x;i+)int flag=0;cout<<"请选择第"<<i+1<<"辆添加车辆的类别(退出输入0): "<<endl;cout<<"*”<<endl;cout<<"*1 大客车 2 小轿车3卡车*“<<endl;cout<<"*”<<endl;cin>&
18、gt;j;if(j=0) return(0);/*用户输入 0 则退出 */cout<<”请输入数据:"<<endl;cout<<"车辆编号:"cin>>str;/*编号不唯一提示错误*/coach* h1=getcoach();/* 调出大客车车库中信息*/for(k=0;k<n1;k+)if(h1k.number=str) cout<<” 该编号已经存在."<<endl;i-;flag=1;break;/*i减1,保证添加的循环次数不会因无效输入而少一次*/free(h1)
19、;/*释放空间*/sedan* h2=getsedan();/* 调出小轿车车库中信息*/if(flag=0)for(k=0;k<n2;k+) if(h2k.number=str) cout<<" 该编号已经存在."<<endl;i-;flag=1;break;/*i减1,保证添加的循环次数不会因无效输入而少一次*/free(h2);/* 释放空间 */ if(flag=0)truck* h3=gettruck();/*调出卡车车库中信息*/for(k=0;k<n3;k+)if(h3k.number=str) cout<<&q
20、uot; 该编号已经存在."<<endl;i-;flag=1;break;/*i减1,保证添加的循环次数不会因无效输入而少一次*/free(h3);/* 释放空间 */ if(flag=0)if(j=1)/*数据数量多于预订值提示错误*/n1+;if(n1>N)n1-;cout<<"车辆信息库已满!"<<endl;break;c.number=str;c.getcar();cout<<"请输入载客量:"cin>>c.apacity;c.setall();ofstream os1(
21、"file1.dat",ios二binary|ios_base二app);os1<<c.number<<""<<c.license_plat<<" "<<pany<<<<c.time_buying<<""<<c.mode<<""<<c.ODO<<" "<<c.oil_consumption<<"<
22、;<c.oil_price<<""<<c.road_tolt<<" "<<c.all_cost<<" "<<c.apacity<<""cout<<" 添加成功! "<<endl;os1.close(); if(j=2)/*数据数量多于预订值提示错误*/n2+;if(n2>N)cout<<"车辆信息库已满!"<<endl;break;
23、s.number=str;s.getcar();cout<<"请输入箱数:"cin>>s.CTNS;s.setall();<<pany<<ofstream os2("file2.dat",ios:binary|ios_base:app);os2<<s.number<<""<<s.license_plat<<""<<s.time_buying<<" "<<s.mode
24、<<""<<s.ODO<<""<<s.oil_consumption<<""<<s.oil_price<<""<<s.road_tolt<<" "<<s.all_cost<<""<<s.CTNS<<”"cout<<"添加成功! "<<endl;os2.close();i
25、f(j=3)/*数据数量多于预订值提示错误*/n3+;if(n3>N) cout<<" break;cout<<" cout<<" t.number=str; t.getcar();cout<<" t.setall();车辆信息库已满! "<<endl;请输入数据:"<<endl;车辆编号:"cin>>t.number;请输入载重量):”;cin>>t.load_weight;"<<t.license_
26、plat<<""<<pany<<"ofstream os3("file3.dat",ios:binary|ios_base:app);os3<<t.number<<""<<t.time_buying<<" "<<t.mode<<""<<t.ODO<<" "<<t.oil_consumption<<" &
27、quot;<<t.oil_price<<" "<<t.road_tolt<<""<<t.all_cost<<" "<<t.load_weight<<""cout<<"添加成功! "<<endl;os3.close();return(0); /*/void query()/*查询函数 */int x,flag=0;string str;cout<<"请输入查
28、询方式(退出输入 0): "<<endl;cout<<"*"<<endi;*"<<endl;cout<<"* 1 公司查询2编号查询3类别查询cout<<"*"<<endi;cin>>x;/*按公司查询或按编号查询*/if(x=1)|(x=2)int i;if(x=1) cout<<"请输入公司:"else cout<<"请输入编号:"cin>>str;c
29、oach* c=getcoach();/*查找大客车文件 */for(i=0;i<n1;i+)/*输出符合的数据*/if(ci.number=str)ci.show();flag=1;break;/* 编号查找,因为编号唯一,只有一个数据符合*/if(pany=str) ci.show();free(c);/* 释放空间*/if(flag=0)/*如果编号数据已找到不进行下面操作*/sedan* s=getsedan();/*查找小轿车文件 */for(i=0;i<n2;i+)/*输出符合的数据*/if(si.number=str)si.show();flag=1;br
30、eak;/* 编号查找,因为编号唯一,只有一个数据符合*/if(pany=str) si.show();free(s);/* 释放空间*/if(flag=0)/*如果编号数据已找到不进行下面操作*/truck* t=gettruck();/*查找卡车文件 */for(i=0;i<n3;i+)/*输出符合的数据*/if(ti.number=str)ti.show();flag=1;break;/* 编号查找,因为编号唯一,只有一个数据符合*/if(pany=str) ti.show();free(c);/* 释放空间*/if(flag=0) cout<<
31、"未找到信息,输入错误!"<<endl;/*未找到符合的数据输出错误*/* 按类别查询*/if(x=3)int i,j;cout<<"请输入类别(1cin>>i;switch(i)case 1:coach* c1=getcoach();for(j=0;j<n1;j+)c1j.show();free(c1);/* break;case 2:sedan* s1=getsedan(); for(j=0;j<n2;j+) s1j.show();free(s1);/* break;case 3:truck* t1=gettru
32、ck();for(j=0;j<n3;j+) t1j.show();free(t1);/* break;大客车、2小轿车、3卡车):"释放空间*/释放空间*/释放空间*/default: cout<<"ERROR:input error!"<<endl; /*/void show()/*显示函数 */int i=0;cou<<*"<<end"油价cout<<" 编号车牌号制造公司购买时间型号总公里数油耗 养路费累计特有属性"<<endl;cou<
33、;<*"<<endl;coach* c=getcoach();/*查找大客车文件 */for(i=0;i<n1;i+)/* 输出数据 */ci.show();free(c);sedan* s=getsedan();/* for(i=0;i<n2;i+)/* si.show();free(s);truck* t=gettruck();/* for(i=0;i<n3;i+)/* ti.show();free(s);查找小轿车文件*/ 输出数据*/查找小轿车文件*/ 输出数据*/*/void handle(int x)/* 构建函数,对车库信息进行处理,
34、包括修改和删除*/string str;int i,j,k=0,l;if(x=0)cout<<"输入要编辑车的编号:"if(x=1)cout<<"输入要删除车的编号:"cin>>str;coach* c=getcoach();sedan* s=getsedan();truck* t=gettruck();if(x=0)int p=0;for(i=0;i<n1;i+)/*查找数据*/if(ci.number=str) j=i; k=1;/*输入新数据*/cout<<”请输入新的完整数据:"&l
35、t;<endl;cout<<"车辆编号:"cin>>ci.number;ci.getcar();cout<<" 载客量:"cin>>ci.apacity;ci.setall();coach* h=getcoach();for(l=0;l<n1;l+)if(hl.number=cj.number) p+;free(h);if(p>1)cout<<"此编号已存在,重新输入!"handle(0);if(p=1)/*编号唯一,新数据存入文件*/ofstreamos1
36、("file1 .dat",ios:binary|ios_base:trunc);for(l=0;l<n1;1+)os1 «cl.number«""«cl.license_plat«""«pany«""«cl.time_buying«""«cl.mode«""«cl.ODO«""«cl.oil_consumpt
37、ion«""«cl.oil_price«""«cl.road_tolt«""«cl.all_cost«""«cl.apacity«")os1.close();)if(k=O)/*如果数据已修改不进行下面的程序*/for(i=0;i<n2;i+)if(si.number=str) /*查找数据*/j=i; k=1; /*输入新数据*/cout«"请输入新的完整数据:"«en
38、dl;cout«"车辆编号:"cin»si.number;si.getcar(); cout«"箱数(2、3) : "cin»si.CTNS;si.setall(); sedan* h=getsedan(); for(l=0;l<n2;l+) if(hl.number=sj.number) P+; free(h); if(P>1) cout«"此编号已存在,重新输入!”;handle(0);) if(p=1)/*编号唯一,新数据存入文件*/ofstream os2("fil
39、e2.dat",ios:binary|ios_base:trunc); for(l=0;l<n2;l+) os2«sl.number«""«sl.license_plat«""«pany «""«sl.time_buying«""«sl.mode«""«sl.ODO «""«sl.oil_consumption«
40、;""«sl.oil_price«""«sl.road_tolt«""<<sl.CTNS<<”")os2.close();)if(k=0)/*如果数据已修改不进行下面的程序*/for(i=0;i<n3;i+)if(ti.number=str) /*查找数据 */j=i;k=1;/*输入新数据*/cout<<"请输入新的完整数据:"<<endl;cout<<" 车辆编号:"cin&g
41、t;>ti.number;ti.getcar();cout<<" 载重量:"cin>>ti.load_weight;ti.setall();truck* h=gettruck();for(l=0;l<n3;l+)if(hl.number=tj.number)p+;free(h);if(p>1)cout<<"此编号已存在,重新输入!"handle(0);)if(p=1)/*编号唯一,新数据存入文件*/Ofstreamos3("file3.dat",ios:binary|ios_bas
42、e:trunc);for(l=0;l<n3;l+)os3<<tl.number<<""<<tl.license_plat<<""<<pany<<""<<tl.time_buying<<""<<tl.mode<<"<<tl.ODO<<""<<tl.oil_consumption<<""
43、<<tl.oil_price<<""<<tl.road_tolt<<""<<tl.all_cost<<""<<tl.load_weight<<""os3.close();)if(k=0) cout<<"ERROR:编号错误."<<endl;)if(x=1)for(i=0;i<n1;i+)/*查找大客车信息库*/if(ci.number=str) k=1,j=i;break
44、;ofstream os1("file1.dat",ios二binary|ios二app);for(i=0;i<n1;i+)/* 删除数据 */if(i!=j)os1<<ci.number<<" "<<ci.license_plat<<" "<<pany<<" "<<ci.time_buying<<""<<ci.mode<<""<&l
45、t;ci.ODO<<" "<<ci.oil_consumption<<""<<ci.oil_price<<""<<ci.road_tolt<<" "<<ci.all_cost<<" "<<ci.apacity<<""if(i=j) n1-;cout<<"删除成功! "<<endl;/*删除数据成功,信息
46、库 信息数量减一 */os1.close();if(k=0)/*已删除数据则不进行下面程序*/for(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<<" "<<si.co
47、mpany<<" "<<si.time_buying<<""<<si.mode<<""<<si.ODO<<" "<<si.oil_consumption<<""<<si.oil_price<<""<<si.road_tolt<<" "<<si.all_cost<<" &
48、quot;<<si.CTNS<<”"if(i=j) n2-;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<&l
49、t;""<<ti.time_buying<<""<<ti.mode<<""<<ti.oil_price<<""<<ti.road_tolt<<"for(i=0;i<n3;i+)/* 删除数据 */<<ti.license_plat<<" "<<pany<<<<ti.ODO<<" "<<ti.oil_c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出纳实务试题练习(一)
- 2026届江苏省南京一中学中考三模英语试题含答案
- 健美操二级有氧健身操组合教学设计高中体育与健康人教版
- 2026届四川省成都市浦江县市级名校中考语文考试模拟冲刺卷含解析
- 公司人力资源管理制度
- 企业管理制度招投标
- 初级经济法串讲【第五章-所得税法律制度】
- 2026 幼儿情绪管理自爱情绪培养技巧课件
- 电子商务物流管理优化方案
- 2026届泉州四检数学试卷+答案
- T-GDPPS 025-2025 小火蚁监测与防控技术规程
- 非物质文化遗产歙县(汪满田、瞻淇、渔梁)鱼灯制作技艺
- 云南省2024-2025学年高一上学期期末(学业水平合格性考试)物理试卷(含答案)
- 通信线路定期维护及巡检管理标准
- 2025年中医全科医生转岗培训考试历年参考题库含答案详解(5套)
- 儿童胸片影像诊断
- 八重洲FT-60R双频段FM手持对讲机说明书
- 湖南省2025年中考物理真题(含答案)
- 英语●天津卷丨2023年6月普通高等学校招生全国统一考试英语试卷及答案
- T/CECS 10020-2019综合管廊智能井盖
- 四室一厅户型设计
评论
0/150
提交评论