完整word版车辆管理系统源代码C++文档格式.docx
《完整word版车辆管理系统源代码C++文档格式.docx》由会员分享,可在线阅读,更多相关《完整word版车辆管理系统源代码C++文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
intpeople[N];
//最大载客量(大客车)
intcoach[N];
//箱数(小轿车)
intweight[N];
//载重量(卡车)
inttop;
//记录当前车辆数量
public:
Manager(){top=0;
}//车辆初始值为0
voidadd();
//添加车辆
voidsearch();
//查询车辆
voidshow();
//显示车辆信息库
voidedit();
//编辑功能
voiddelet();
//删除车辆
voidsum();
//统计信息
voidread();
//读出车辆信息
voidwrite();
//车辆信息存盘
voidjiemian();
//总界面
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
voidManager:
:
add()//////////添加车辆
inta=0,x,y;
while
(1)
{
if(top<
N)
{
cout<
<
"
请输入需添加的车辆信息"
endl;
车辆编号:
;
cin>
>
x;
for(intj=0;
j<
top;
j++)
{
if(car[j].num==x)//编号重复
{
cout<
编号重复,添加失败!
即将跳转至功能主界面"
a++;
break;
}
}
if(a==0)//此时编号不重复
{
car[top].num=x;
车牌号:
car[top].pnum;
车辆制造公司:
car[top].made;
购买时间:
car[top].time;
cout<
养路费:
cin>
car[top].RoadFee;
车辆型号(1-大客车,2-小轿车,3-卡车):
car[top].type;
while(!
(car[top].type==1||car[top].type==2||car[top].type==3))//判断输入指令是否为1-3
输入指令号错误,重输:
cin>
总公里数:
car[top].km;
if(car[top].type==1)//此时是1-大客车
最大载客量:
people[top];
car[top].cost=2000;
car[top].OilKm=0.1;
elseif(car[top].type==2)//此时是2-小轿车
车厢数:
coach[top];
car[top].cost=1000;
car[top].OilKm=0.05;
else//此时是3-卡车
载重量:
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();
//调用车辆信息存盘函数
是否继续添加车辆?
(1-是,2-否):
y;
(y==1||y==2))
输入指令号错误,重输:
if(y==2)
即将跳转至功能主界面"
break;
else//此时编号重复
break;
}
else
cout<
车辆信息库已满,不能再添加车辆!
break;
}
Sleep(1000);
//延迟1秒
jiemian();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
search()//////////查询车辆
intchoose,m,n,a=0;
chari,t[20];
****************************"
*1.按车辆制造公司查询*"
*2.按编号查询*"
*3.按类别查询*"
请输入你的选项:
cin>
i;
cout<
if(i=='
1'
||i=='
2'
3'
)
输入错误,重输:
if(i=='
{cout<
请输入需查询车辆的制造公司:
t;
elseif(i=='
请输入需查询的车辆编号:
n;
请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):
m;
if(strcmp(car[j].made,t)==0||car[j].num==n||car[j].type==m)
{cout<
编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"
break;
for(j=0;
if(strcmp(car[j].made,t)==0||car[j].num==n||car[j].type==m)
setw(4)<
car[j].num<
setw(7)<
car[j].pnum<
car[j].made<
car[j].time;
if(car[j].type==1)
setw(9)<
大客车"
setw(8)<
载客量:
people[j];
elseif(car[j].type==2)
小轿车"
车厢数:
"
coach[j];
else
卡车"
载重量:
weight[j];
setw(6)<
car[j].km<
car[j].RoadFee<
car[j].cost<
car[j].OilKm<
car[j].AllCount<
a++;
if(a!
=0)
是否进行修改?
choose;
if(choose==1)
edit();
else
)cout<
车辆制造公司不存在!
车辆编号不存在!
elseif(i=='
车辆型号不存在!
按任意键返回功能主界面"
charzz=getch();
jiemian();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
show()//////////显示车辆信息库
if(top!
********************************************************************************"
for(intj=0;
setw
(2)<
卡车"
车辆库为空!
按任意键返回主界面:
charz=getch();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
edit()////////////编辑功能
inti,j,a=0;
请依次输入需要修改的车辆信息:
for(j=0;
if(car[j].num==i)//车库有此编号的车
car[j].pnum;
制造公司:
car[j].made;
型号(1-大客车,2-小轿车,3-卡车):
car[j].type;
(car[j].type==1||car[j].type==2||car[j].type==3))
输入信息有误,请输入1-3:
car[j].km;
car[j].RoadFee;
if(car[j].type==1)//此时是1-大客车
car[j].cost=2000;
car[j].OilKm=0.1;
elseif(car[j].type==2)//此时是2-小轿车
car[j].cost=1000;
car[j].OilKm=0.05;
car[j].cost=1500;
car[j].OilKm=0.15;
a++;
if(a==0)
此编号不存在,不能进行修改,请重新输入!
修改成功!
系统将返回主界面..."
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
delet()//////////////////删除车辆
inti,a=0;
if(top==0)
车辆信息库为空!
系统将返回功能界面..."
请输入需要删除的车辆编号:
cin>
for(intj=0;
if(car[j].num==i)//车辆编号存在
if(top==1)
car[0].type=0;
else
{
if(car[top-1].type==1)//判断出此时car数组里储存在最后一组的是1-大客车
{
people[j]=people[top-1];
/////////(把最后一组数据)///////
car[j].cost=2000;
/////////(赋给将要删除的)///////
car[j].OilKm=0.1;
/////////(那组数据的位置)///////
}
elseif(car[top-1].type==2)//判断出此时car数组里储存在最后一组的是2-小轿车
coach[j]=coach[top-1];
car[j].cost=1000;
car[j].OilKm=0.05;
else//判断出此时car数组里储存在最后一组的是3-卡车
weight[j]=weight[top-1];
car[j].cost=1500;
car[j].OilKm=0.15;
car[j].num=car[top-1].num;
/////////(把最后)///////
car[j].pnum=car[top-1].pnum;
/////////(一组数)///////
strcpy(car[j].made,car[top-1].made);
/////////(据赋给)///////
car[j].time=car[top-1].time;
/////////(将要删)///////
car[j].type=car[top-1].type;
/////////(除的那)///////
car[j].km=car[top-1].km;
/////////(组数据)///////
car[j].RoadFee=car[top-1].RoadFee;
/////////(的位置)///////
car[j].AllCount=car[top-1].AllCount;
/////////()///////
}
top--;
//此时删除车辆数据彻底完成,车辆总数减一
a++;
write();
if(a==0)
此编号不存在,不能进行删除,请重新输入!
删除成功!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
write()//////////////////车辆信息存盘
ofstreamwrite;
write.open("
d:
\\a.txt"
ios:
out);
if(write)
for(inti=0;
i<
i++)
{//依次存入编号、车牌号、制造商、购买时间、型号、
write<
write<
car[i].num<
car[i].pnum<
car[i].made<
car[i].time<
car[i].type<
if(car[i].type==1)
people[i];
//存入载客量
elseif(car[i].type==2)
coach[i];
//存入车厢数
weight[i];
//存入载重量
//依次存入总公里、养路费、维护费、油耗、总费用
car[i].km<
car[i].RoadFee<
car[i].cost<
car[i].OilKm<
car[i].AllCount;
elsecout<
writefailed"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
read()///////////////////读出车辆信息
ifstreamread("
in);
if(read)
while(!
read.eof())
{//依次读取编号、车牌号、制造商、购买时间、型号
read>
car[top].num>
car[top].pnum>
car[top].made>
car[top].time>
if(car[top].type==1)
read>
//读取载客量
elseif(car[top].type==2)
//读取车厢数
//读取载重量