#include<windows.h>
#include<iostream>
#include<fstream>
#include<iomanip>
#include<conio.h>
using namespace std;
#define N 20 //车辆最大存储量20
#define OilPrice 8.0 //油价8元每升
class Manager;
class Cars
{
private:
int num; //编号
int pnum; //车牌号
char made[20]; //制造公司
double time; //购买时间(多少个月)
int type; //型号(1-大客车,2-小轿车,3-卡车) double km; //总公里数
int cost; //基本维护费用
int RoadFee; //养路费
double OilKm; //耗油量/公里
double AllCount;//累计总费用
friend Manager;
};
class Manager
{
private:
Cars car[N];
int people[N]; //最大载客量(大客车)
int coach[N]; //箱数(小轿车)
int weight[N]; //载重量(卡车)
int top; //记录当前车辆数量
public:
Manager(){top = 0;}//车辆初始值为0
void add(); //添加车辆
void search(); //查询车辆
void show(); //显示车辆信息库
void edit(); //编辑功能
void delet(); //删除车辆
void sum(); //统计信息
void read(); //读出车辆信息
void write(); //车辆信息存盘
void jiemian(); //总界面
};
//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////
void Manager::add() //////////添加车辆
{
int a = 0, x, y;
while(1)
{
if(top < N)
{
cout<<"请输入需添加的车辆信息"<<endl;
cout<<"车辆编号:";
cin>>x;
for(int j = 0; j < top; j++)
{
if ( car[j].num == x ) //编号重复
{
cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;
a++;
break;
}
}
if(a == 0) //此时编号不重复
{
car[top].num = x;
cout<<"车牌号:";
cin>>car[top].pnum;
cout<<"车辆制造公司:";
cin>>car[top].made;
cout<<"购买时间:";
cin>>car[top].time;
cout<<"养路费:";
cin>>car[top].RoadFee;
cout<<"车辆型号(1-大客车,2-小轿车,3-卡车):";
cin>>car[top].type;
while(!(car[top].type==1||car[top].type==2||car[top].type==3)) //判断输入指令是否为1-3
{
cout<<"输入指令号错误,重输:";
cin>>car[top].type;
}
cout<<"总公里数:";
cin>>car[top].km;
if( car[top].type == 1 ) //此时是1-大客车
{
cout<<"最大载客量:";
cin>>people[top];
car[top].cost = 2000;
car[top].OilKm = 0.1;
}
else if( car[top].type == 2 ) //此时是2-小轿车
{
cout<<"车厢数:";
cin>>coach[top];
car[top].cost = 1000;
car[top].OilKm = 0.05;
}
else //此时是3-卡车
{
cout<<"载重量:";
cin>>weight[top];
car[top].cost = 1500;
car[top].OilKm = 0.15;
}
car[top].AllCount =(OilPrice * car[top].OilKm * car[top].km) + (car[top].time *car[top].cost); //计算总费用
top++; //车辆总数加一
write(); //调用车辆信息存盘函数
cout<<"是否继续添加车辆?(1-是,2-否):";
cin>>y;
while(!( y==1 || y==2 ))
{
cout<<"输入指令号错误,重输:";
cin>>y;
}
if(y == 2)
{
cout<<"即将跳转至功能主界面"<<endl;
break;
}
}
else //此时编号重复
break;
}
else
{
cout<<"车辆信息库已满,不能再添加车辆!"<<endl;
cout<<"即将跳转至功能主界面"<<endl;
break;
}
}
Sleep(1000); //延迟1秒
jiemian();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////
void Manager::search() //////////查询车辆
{
int choose,m,n,a = 0;
char i,t[20];
cout<<"****************************"<<endl;
cout<<"*    1.按车辆制造公司查询*"<<endl;
cout<<"*    2.按编号查询*"<<endl;
cout<<"*    3.按类别查询*"<<endl;源代码大电影
cout<<"****************************"<<endl;
cout<<" 请输入你的选项:";
while(1)
{
cin>>i;
cout<<endl;
if(i=='1'||i=='2'||i=='3')
break;
cout<<"输入错误,重输:";
}
if(i == '1')
{cout<<"请输入需查询车辆的制造公司:";
cin>>t;}
else if(i == '2')
{cout<<"请输入需查询的车辆编号:";
cin>>n;}
else if(i == '3')
{cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";
cin>>m;}
for(int j = 0; j < top; j++)
if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m)
{cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;break;}
for( j = 0; j < top; j++)
if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m)
{
cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7)
<<car[j].time;
if(car[j].type == 1 )
cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<people[j];
else if(car[j].type == 2 )
cout<<setw(9)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];
else
cout<<setw(8)<<"卡车"<<setw(9)<<"载重量:"<<weight[j];
cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;
a++;
}
if(a != 0)
{
cout<<"是否进行修改?(1-是,2-否):";
cin>>choose;
if(choose == 1)
edit();
}
else
{
if(i=='1') cout<<"车辆制造公司不存在!"<<endl;
if(i=='2') cout<<"车辆编号不存在!"<<endl;
else if (i=='3') cout<<"车辆型号不存在!"<<endl;
}
cout<<"按任意键返回功能主界面"<<endl;
char zz=getch();
jiemian();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////
void Manager::show() //////////显示车辆信息库
{
if(top != 0)
{
cout<<"********************************************************************************"< <endl;
cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;
for(int j = 0; j < top; j++)
{

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。