C++程序设计车辆管理系统实验报告 附源代码.docx
《C++程序设计车辆管理系统实验报告 附源代码.docx》由会员分享,可在线阅读,更多相关《C++程序设计车辆管理系统实验报告 附源代码.docx(36页珍藏版)》请在冰豆网上搜索。
![C++程序设计车辆管理系统实验报告 附源代码.docx](https://file1.bdocx.com/fileroot1/2023-5/29/22576744-0577-4ef9-8b3d-ffa2bc60540d/22576744-0577-4ef9-8b3d-ffa2bc60540d1.gif)
C++程序设计车辆管理系统实验报告附源代码
C++程序设计车辆管理系统实验报告附源代码
1.实习题目
车辆管理系统
2、原理概述
某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能:
(1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定
(1)能够统计出该公司,所有车辆的累积行驶里程
(2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息
(3)能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息
(4)能够统计出该公司车辆的总数额以及每类车辆的数量
(5)能够实现某个类型车辆的添加与删除
(6)其她功能可根据需要自行扩充,并请在课程设计报告中详细说明!
3.设计方案
3、1编程语言
C++语言
3、2数据结构
add();//增加
search();//查询
show();//显示
delet();//删除
sum();//统计
jiemian();//界面
store();//保存
read();//读取
write();//打印
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
i