当前位置:文档之家› 车辆管理系统主要负责各种车辆的常规信息管理工作

车辆管理系统主要负责各种车辆的常规信息管理工作

车辆管理系统主要负责各种车辆的常规信息管理工作。

系统中的车辆主要有大客车、小轿车和卡车。

每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)等信息。

大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。

功能要求:(1)添加车辆:主要完成车辆信息的添加,要求编号唯一. (2)查询车辆:(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。

(4)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。

(5)车辆信息存盘:将当前程序中的车辆信息存入文件中。

(6)读出车辆信息:从文件中将车辆信息读入程序。

主要程序:#include <iostream>#include <fstream>#include <string>#include <stdlib.h>using namespace std;int N=50; /*设置全局变量N=50,信息库最多存储50辆车辆信息*/ int n1=0; /*全局变量,记录大客车文件当前信息库信息数量*/int n2=0; /*全局变量,记录小轿车文件当前信息库信息数量*/int n3=0; /*全局变量,记录卡车文件当前信息库信息数量*/ ofstream os1("file1.dat",ios::binary|ios::trunc);ofstream os2("file2.dat",ios::binary|ios::trunc);ofstream os3("file3.dat",ios::binary|ios::trunc);/**********************************************************************/ class car{ /*汽车类*/public:string license_plat;string company;double time_buying;string mode;void getcar();void show(){cout<<license_plat<<" \t"<<company<<" \t "<<time_buying<<" \t "<<mode<<" \t ";}~car(){}};/******************************************************************/class truck:public car /*卡车类,公有继承汽车类*/{public:double load_weight; /*卡车附加属性载重量*/void show(){car::show();cout<<" "<<load_weight<<endl;}~truck(){}};/******************************************************************/class sedan:public car{public:int CTNS; /*小轿车附加属性箱数*/void show(){car::show();cout<<" "<<CTNS<<endl;}~sedan(){}};/*****************************************************************/class coach:public car{public:int apacity ; /*大客车附加属性载客量*/void show(){car::show();cout<<" "<<apacity<<endl;}~coach(){}};/****************************************************************/void car::getcar() /*getcar()函数实现*/{cout<<"车牌号: ";cin>>license_plat;cout<<"车辆制造公司: ";cin>>company;cout<<"车辆购买时间(月): ";cin>>time_buying;cout<<"车辆型号(1大客车2小轿车3卡车): ";cin>>mode;}/******************************************************************/coach* getcoach() /*设置函数获取客车库中信息存储于数组中,方便之后提取*/ {int i;coach *head=new coach[n1];ifstream os1("file1.dat",ios::in|ios::binary);for(i=0;i<n1;i++){os1>>head[i].license_plat>>head[i].company>>head[i].time_buying>>head[i].mode>>head[i].apacity;}os1.close();return head;}/**********************************************************************/sedan* getsedan() /*设置函数获取小轿车库中信息存储于数组中,方便之后提取*/{int i;sedan* head=new sedan[n2];ifstream os2("file2.dat",ios::in|ios::binary);for(i=0;i<n2;i++){os2>>head[i].license_plat>>head[i].company>>head[i].time_buying>>head[i].mode>>head[i].CTNS;}os2.close();return head;}/************************************************************************/truck* gettruck() /*设置函数获取客车库中信息存储于数组中,方便之后提取*/ {int i;truck* head=new truck[n3];ifstream os3("file3.dat",ios::in|ios::binary);for(i=0;i<n3;i++){os3>>head[i].license_plat>>head[i].company>>head[i].time_buying>>head[i].mode>>head[i].load_weight;}os3.close();return head;}/**************************************************************************/int add() /*添加函数*/{int i,j,k=0,x;coach c;sedan s;truck t;cout<<"请输入添加数量: ";cin>>x;for(i=0;i<x;i++){int flag=0;cout<<"请选择添加车辆的类别(退出输入0): "<<endl;cout<<"*************************************************"<<endl;cout<<"* 1 大客车 2 小轿车 3 卡车*"<<endl;cout<<"*************************************************"<<endl;cin>>j;if(flag==0){if(j==1){n1++;c.getcar();cout<<"请输入载客量: ";cin>>c.apacity;ofstream os1("file1.dat",ios::binary|ios_base::app);os1<<c.license_plat<<" "<<pany<<" "<<c.time_buying<<" "<<c.mode<<" "<<c.apacity<<" ";cout<<"添加成功! "<<endl;os1.close();}if(j==2){n2++;s.getcar();cout<<"请输入箱数: ";cin>>s.CTNS;ofstream os2("file2.dat",ios::binary|ios_base::app);os2<<s.license_plat<<" "<<pany<<" "<<s.time_buying<<" "<<s.mode<<" "<<s.CTNS<<" ";cout<<"添加成功! "<<endl;os2.close();}if(j==3){n3++;t.getcar();cout<<"请输入载重量): ";cin>>t.load_weight;ofstream os3("file3.dat",ios::binary|ios_base::app);os3<<t.license_plat<<" "<<pany<<" "<<t.time_buying<<" "<<t.mode<<" "<<t.load_weight<<" ";cout<<"添加成功!"<<endl;os3.close();}}}return 0;}/******************************************************************/void query() /*查询函数*/{ int x,flag=0;string str;cout<<"请输入查询方式(退出输入0):"<<endl;cout<<"****************************************"<<endl;cout<<"* 1 车牌号查询2公司查询*"<<endl;cout<<"****************************************"<<endl;cin>>x;/*按公司查询或按编号查询*/if((x==1)||(x==2)){int i;if(x==2) cout<<"请输入公司: ";else cout<<"请输入车牌号: ";cin>>str;coach* c=getcoach();for(i=0;i<n1;i++){if(c[i].license_plat==str){ cout<<"车牌号制造公司购买时间型号特有属性"<<endl;c[i].show();flag=1;break;}if(c[i].company==str) cout<<"车牌号制造公司购买时间型号特有属性"<<endl;c[i].show();}if(flag==0){sedan* s=getsedan();for(i=0;i<n2;i++){if(s[i].license_plat==str){cout<<"车牌号制造公司购买时间型号特有属性"<<endl;s[i].show();flag=1;break;}if(s[i].company==str) cout<<"车牌号制造公司购买时间型号特有属性"<<endl;s[i].show();}}if(flag==0){truck* t=gettruck();for(i=0;i<n3;i++){if(t[i].license_plat==str){cout<<"车牌号制造公司购买时间型号特有属性"<<endl;t[i].show();flag=1;break;}if(t[i].company==str) cout<<"车牌号制造公司购买时间型号特有属性"<<endl;t[i].show();}}if(flag==0)cout<<"未找到信息,输入错误!"<<endl;/*未找到符合的数据输出错误*/ }}/*******************************************************************/void show() /*显示函数*/{int i=0;cout<<"***************************************************"<<endl;cout<<"车牌号制造公司购买时间型号特有属性"<<endl;cout<<"***************************************************"<<endl;coach* c=getcoach();for(i=0;i<n1;i++)c[i].show();sedan* s=getsedan();for(i=0;i<n2;i++)s[i].show();truck* t=gettruck();for(i=0;i<n3;i++)t[i].show();}/********************************************************************/void collect() /*统计函数*/{cout<<"当前车辆信息库中共有"<<n1+n2+n3<<"条车辆信息."<<endl;cout<<"其中:"<<n1<<"条大客车信息,"<<endl<<" "<<n2<<"条小轿车信息"<<endl<<" "<<n3<<"条卡车信息."<<endl;}/********************************************************************/int main(){int a;cout<<"***********************************************************"<<endl;cout<<"\t";cout<<"** 欢迎进入车辆管理系统**"<<endl;cout<<"\t";cout<<"***********************************************"<<endl;cout<<"\t";cout<<"* 车辆管理系统: *"<<endl;cout<<"\t";cout<<"* 1 添加*"<<endl;cout<<"\t";cout<<"* 2 查询*"<<endl;cout<<"\t";cout<<"* 3 显示*"<<endl;cout<<"\t";cout<<"* 4 统计*"<<endl;cout<<"\t";cout<<"* 5 退出*"<<endl;cout<<"\t";cout<<"* 请选择: *"<<endl;cout<<"***********************************************************"<<endl;cin>>a;/*输入选项*/do{switch(a){case 1:add();break;case 2:query();break;case 3:show();break;case 4:collect();break;case 5:cout<<"\n\n\t\t\t欢迎再次使用汽车库管理系统\n\n";exit(1);default:cout<<"ERROR:输入选项错误!"<<endl;}/*完成操作后给用户再次提供选项界面*/cout<<"***********************************************"<<endl;cout<<"* 车辆管理系统: *"<<endl;cout<<"* 1 添加*"<<endl;cout<<"* 2 查询*"<<endl;cout<<"* 3 显示*"<<endl;cout<<"* 4 统计*"<<endl;cout<<"* 5 退出*"<<endl;cout<<"* 请选择: *"<<endl;cout<<"***********************************************"<<endl;cin>>a;}while(1);return 0;}。

相关主题