C++程序设计车辆管理系统实验报告 附源代码.docx
《C++程序设计车辆管理系统实验报告 附源代码.docx》由会员分享,可在线阅读,更多相关《C++程序设计车辆管理系统实验报告 附源代码.docx(31页珍藏版)》请在冰豆网上搜索。
C++程序设计车辆管理系统实验报告附源代码
C++程序设计车辆管理系统实验报告附源代码
1.实习题目
车辆管理系统
2.原理概述
某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能:
(1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定
(1)能够统计出该公司,所有车辆的累积行驶里程
(2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息
(3)能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息
(4)能够统计出该公司车辆的总数额以及每类车辆的数量
(5)能够实现某个类型车辆的添加和删除
(6)其他功能可根据需要自行扩充,并请在课程设计报告中详细说明!
3.设计方案
3.1编程语言
C++语言
3.2数据结构
3.3.系统结构图
3.4技术方案
先定义结构体类,再将其继承,分别记录车辆信息和车辆编号函数;类的定义和使用;
While函数for循环if判断语句switch循环;文件的打开与关闭,输入和输出。
3.4流程图
车辆信息添加
车辆信息查询
车辆信息显示
车辆信息删除
车辆信息统计
车辆信息保存
车辆信息读取
车辆信息打印
4.程序编写
#include
#include
#include
usingnamespacestd;
#defineN25//车辆极限存储量
structManager{
intnum;//车辆编号
intpnum;//车牌号
stringmade;//生产厂家
stringname;//名字
inttime;//日期
doubledistance;//里程
doubleprice;//价格
stringdriver;//驾驶员
longlongcellphone;//手机号
inttype;//车型
};
classCar{
private:
Managercar[N];
inttop;//当前车的数量。
public:
Car(){top=0;}
voidadd();//增加
voidsearch();//查询
voidshow();//显示
voiddelet();//删除
voidsum();//统计
voidjiemian();//界面
voidstore();//保存
voidread();//读取
voidwrite();//打印
};
voidCar:
:
add(){}
voidCar:
:
search(){}
voidCar:
:
show(){}
voidCar:
:
delet(){}
voidCar:
:
sum(){}
voidCar:
:
jiemian(){}
voidCar:
:
store(){}
voidCar:
:
read(){}
voidCar:
:
write(){}
5.执行界面、运行结果分析
车辆信息添加
输入编号添加车辆依次输入车辆信息。
车辆信息查询
输入车辆编号查询车辆信息。
车辆信息显示
显示车库内所有车辆。
车辆信息删除
选择编号显示车辆信息,完成删除。
车辆信息统计
选择要统计的内容,显示统计的内容。
车辆信息保存
将车辆信息保存在文件中。
车辆信息读取
将保存的车辆信息读取出来。
车辆信息打印
将车辆信息打印下来。
6.总结与体会
经过了几个星期的学习与实践,汽车管理系统已基本完成,基本功能已全部实现,顽强可以在汽车公司投入使用。
系统功能有:
添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。
通过这次实践学习,我不仅加深了课堂知识还学到了许多课上学不到的技能。
既提高了我的基础知识,又增强了我的动手操作能力。
比如在做一个大项目时,一开始不急于动手写代码,应该先对这个项目做整体的分析,明确此项目的数据结构和基本实现功能,然后收集资料,设计算法,在这些工作完成后再开始编写代码。
在本次实践过程中我也发现了许多的不足。
比如,在这次系统设计中,只考虑到问题的一般情况,而忽略特殊情况;考虑问题不全面,只会单一的在某一方面或某一类方面考虑问题,视野没有得以开阔等。
我相信经过本次实践,我会在以后的学习工作中变得更加小心和自信,系统也会学做越熟练。
在不断的错误和失败中逐渐弥补和提高,是自己变得更加完美,设计以更加完美。
#include
#include
#include
usingnamespacestd;
#defineN25//车辆极限存储量
structManager{
intnum;//车辆编号
intpnum;//车牌号
stringmade;//生产厂家
stringname;//名字
inttime;//日期
doubledistance;//里程
doubleprice;//价格
stringdriver;//驾驶员
longlongcellphone;//手机号
inttype;//车型
};
classCar{
private:
Managercar[N];
inttop;//当前车的数量。
public:
Car(){top=0;}
voidadd();//增加
voidsearch();//查询
voidshow();//显示
voiddelet();//删除
voidsum();//统计
voidjiemian();//界面
voidstore();//保存
voidread();//读取
voidwrite();//打印
};
voidCar:
:
add(){
inta=1,b;
while
(1){
if(topinti;
cout<<"请输入添加的车辆信息:
"<cout<<"车辆编号:
";
cin>>i;
for(intj=0;jif(car[j].num==i){
cout<<"车辆编号重复,系统返回."<a++;
break;
}
}
if(a==1){
car[top].num=i;
cout<<"输入车牌号:
";
cin>>car[top].pnum;
cout<<"输入车名:
";
cin>>car[top].name;
cout<<"输入购买日期:
";
cin>>car[top].time;
cout<<"输入生产厂家:
";
cin>>car[top].made;
cout<<"输入行驶里程:
";
cin>>car[top].distance;
cout<<"输入价格:
";
cin>>car[top].price;
cout<<"输入驾驶员的名字:
";
cin>>car[top].driver;
cout<<"输入驾驶员的手机号:
";
cin>>car[top].cellphone;
cout<<"输入车型:
(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)";
cin>>car[top].type;
top++;
cout<<"添加成功!
是否继续添加车辆?
(1->yesor2->no)"<cin>>b;
if(b=2){
cout<<"系统返回中,请稍后!
"<break;
}
}
else//编号重复
break;
}
else{
cout<<"车库已满无法添加"<cout<<"系统返回"<break;
}
}
jiemian();
}
voidCar:
:
search(){
inti,j,k,a=0,b=0,c;
cout<<"1-根据编号查询!
"<cout<<"2-根据驾驶员信息查询!
"<cout<<"请输入你的查询方式!
(1or2)"<cin>>i;
switch(i)
{
case1:
{intn;
cout<<"输入要查询的车辆编号:
"<cin>>n;
for(j=0;jif(car[j].num==n){
cout<<"车辆编号:
"<cout<<"车名:
"<cout<<"购买日期:
"<cout<<"生产厂家:
"<cout<<"行驶里程:
"<cout<<"车辆价格:
"<cout<<"驾驶员的名字:
"<cout<<"驾驶员的手机号:
"<cout<<"车型:
"<cout<<"(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)"<a++;
}
}
if(a==0){
cout<<"编号不存在!
"<}
break;
}
case2:
{intm;
stringl;
cout<<"输入驾驶员的名字"<cin>>l;
cout<<"输入驾驶员的手机号"<cin>>m;
for(k=0;kif(car[k].driver==l){
if(car[k].cellphone==m){
cout<<"车辆编号:
"<cout<<"车名:
"<cout<<"购买日期:
"<cout<<"生产厂家:
"<cout<<"行驶里程:
"<cout<<"车辆价格:
"<cout<<"驾驶员的名字:
"<cout<<"驾驶员的手机号:
"<cout<<"车型:
"<cout<<"(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)"<b++;
}
}
}
if(b=0){
cout<<"信息错误或不存在!
"<}
break;
}
default:
cout<<"输入有误!
"<break;
}
cout<<"按1返回主界面:
"<cin>>c;
if(c==1){
jiemian();
}
else{
jiemian();
}
}
voidCar:
:
show(){
inti,j;
if(top!
=0){
cout<<"车库中所有车的基本信息:
"<for(i=0;icout<<"车辆编号:
"<cout<<"车名:
"<cout<<"购买日期:
"<cout<<"生产厂家:
"<cout<<"行驶里程:
"<cout<<"车辆价格:
"<cout<<"驾驶员的名字:
"<cout<<"驾驶员的手机号:
"<cout<<"车型:
"<cout<<"(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)"<}
}
else
cout<<"车辆库为空!
"<cout<<"按1返回主界面:
"<cin>>j;
if(j==1){
jiemian();
}
else{
jiemian();
}
}
voidCar:
:
delet(){
inti,a=0;
while
(1){
if(top==0){
cout<<"车辆库为空将退回功能界面!
"<break;
}else{
cout<<"请输入要删除的车辆编号!
"<cin>>i;
for(intj=0;jif(car[j].num==i){
cout<<"车辆编号:
"<cout<<"车名:
"<cout<<"购买日期:
"<cout<<"生产厂家:
"<cout<<"行驶里程:
"<cout<<"车辆价格:
"<cout<<"驾驶员的名字:
"<cout<<"驾驶员的手机号:
"<cout<<"车型:
"<cout<<"(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)"<cout<<"是否确定信息并删除!
(1->是,2->否)"<intn;
cin>>n;
if(n==1){
car[j].num=car[top-1].num;
car[j].name=car[top-1].name;
car[j].time=car[top-1].time;
car[j].made=car[top-1].made;
car[j].distance=car[top-1].distance;
car[j].price=car[top-1].price;
car[j].driver=car[top-1].driver;
car[j].cellphone=car[top-1].cellphone;
car[j].type=car[top-1].type;
top--;
a++;
}else
if(n==2){
cout<<"系统返回中!
"<}else{
cout<<"输入错误系统返回中。
。
。
"<}
}
}
if(a==0){
cout<<"此编号不存在,不能进行删除,请重新输入!
"<}else{
cout<<"删除成功!
系统将返回功能界面...."<break;
}
}
}
jiemian();
}
voidCar:
:
sum(){
inti,j,l,m,a=0,b=0,c=0,d=0,f=0;
cout<<"1-统计里程"<cout<<"2-统计资产"<cout<<"3-统计驾驶员"<cout<<"4-统计车辆数"<cout<<"输入统计的选项:
"<cin>>i;
if(i>0&&i<5){
switch(i){
case1:
cout<<"1-总里程"<cout<<"2-各类车的总里程"<cout<<"输入选项:
"<cin>>j;
if(j==1||j==2){
switch(j){
case1:
for(l=0;la=a+car[l].distance;
}
cout<<"总里程:
"<cout<<"查询成功,系统将返回主页面。
"<break;
case2:
for(m=0;mif(car[m].type==1){a=a+car[m].distance;}
else
if(car[m].type==2){b=b+car[m].distance;}
else
if(car[m].type==3){c=c+car[m].distance;}
else
if(car[m].type==4){d=d+car[m].distance;}
else
f=f+car[m].distance;
}
cout<<"摩托车的总里程:
"<cout<<"汽车的总里程:
"<
cout<<"客车的总里程:
"<cout<<"面包车的总里程:
"<cout<<"货车的总里程:
"<cout<<"查询成功,系统将返回主页面。
"<//(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)
break;
default:
cout<<"输入有误!
系统将返回."<break;
}
}
else{
cout<<"输入错误,系统返回。
"<break;
}
break;
case2:
cout<<"1-总资产"<cout<<"2-各类车的总资产"<cout<<"输入选项:
"<cin>>j;
if(j==1||j==2){
switch(j){
case1:
for(l=0;la=a+car[l].price;
}
cout<<"总资产:
"<cout<<"查询成功,系统将返回主页面。
"<break;
case2:
for(m=0;mif(car[m].type==1){a=a+car[m].price;}
else
if(car[m].type==2){b=b+car[m].price;}
else
if(car[m].type==3){c=c+car[m].price;}
else
if(car[m].type==4){d=d+car[m].price;}
else
f=f+car[m].price;
}
cout<<"摩托车的总资产:
"<cout<<"汽车的总资产:
"<