1、 C程序设计车辆管理系统实验报告附源代码 47 2020年4月19日 文档仅供参考 C++程序设计车辆管理系统实验报告 附源代码 1. 实习题目 车辆管理系统 2.原理概述 某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能: (1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定 (1)能够统计出该公司,所有车辆的累积行驶里程 (2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息 (3)能够根据
2、驾驶员信息查找该驾驶员驾驶的车辆的详细信息 (4)能够统计出该公司车辆的总数额以及每类车辆的数量 (5)能够实现某个类型车辆的添加和删除 (6)其它功能可根据需要自行扩充,并请在课程设计报告中详细说明! 3.设计方案 3.1 编程语言 C++语言 3.2数据结构 Car num;//车辆编号 pnum;//车牌号 made;//生产厂家 name;//名字 time;//日期 distance;//里程 price;//价格 driver;//驾驶员 cellphone;//手机号 type;//车型 Manager Manager car[N]
3、 top;//当前车的数量。 add();//增加 search();//查询 show();//显示 delet();//删除 sum();//统计 jiemian();//界面 store();//保存 read();//读取 write();//打印 3.3.系统结构图 车辆管理系统 车辆信息打印 车辆信息读取 车辆信息保存 车辆信息界面 车辆信息删除 车辆信息统计 车辆信息显示 车辆信息查询 车辆信息添加 3.4技术方案 先定义结构体类,再将其继承,分别记录车辆信息和车辆编号
4、函数;类的定义和使用; While函数for循环if判断语句switch循环;文件的打开与关闭,输入和输出。 3.4流程图 车辆信息添加 开始 判断数据库是否满 返回主界面 是 输入车辆编号 是 是 返回主界面 判断编号是否重复 输入车辆信息 车辆总数+1 继续添加 返回主界面 否 结束 车辆信息查询 开始 根据驾驶员信息 根据编号 判断车辆是否存在 返回主界面 否 是
5、 显示车辆信息 结束 车辆信息显示 开始 否 判断车库是否有车 是 显示车库内所有车辆 返回主界面 结束 车辆信息删除 开始 判断车库是否为空 是 否 输入车辆编号 判断删除信息是否正确 否 删除成功 返回主界面 结束 车辆信息统计 开始 统计里程 统计资产 统计驾驶员 统计车辆数 输出统计结果 返回主界
6、面
结束
开始
车辆信息保存
保存成功
结束
返回主界面
开始
车辆信息读取
读取成功
返回主界面
结束
车辆信息打印
开始
打印成功
返回主界面
结束
4.程序编写
#include
7、int pnum;//车牌号 string made;//生产厂家 string name;//名字 int time;//日期 double distance;//里程 double price;//价格 string driver;//驾驶员 long long cellphone;//手机号 int type;//车型 }; class Car { private: Manager car[N]; int top;//当前车的数量。 public: Car() { top = 0; } void add();//增加
8、void search();//查询 void show();//显示 void delet();//删除 void sum();//统计 void jiemian();//界面 void store();//保存 void read();//读取 void write();//打印 }; void Car::add(){} void Car::search(){} void Car::show(){} void Car::delet(){} void Car::sum (){} void Car::jiemian(){} void Car::s
9、tore (){} void Car::read(){} void Car::write(){} 5. 执行界面、运行结果分析 车辆信息添加 输入编号添加车辆依次输入车辆信息。 车辆信息查询 输入车辆编号查询车辆信息。 车辆信息显示 显示车库内所有车辆。 车辆信息删除 选择编号显示车辆信息,完成删除。 车辆信息统计 选择要统计的内容,显示统计的内容。 车辆信息保存 将车辆信息保存在文件中。 车辆信息读取 将保存的车辆信息读取出来。 车辆信息打印 将车辆信息打印下来。 6.总结与体会 经过了几个星期的学习与
10、实践,汽车管理系统已基本完成,基本功能已全部实现,顽强能够在汽车公司投入使用。系统功能有:添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。 经过这次实践学习,我不但加深了课堂知识还学到了许多课上学不到的技能。既提高了我的基础知识,又增强了我的动手操作能力。比如在做一个大项目时,一开始不急于动手写代码,应该先对这个项目做整体的分析,明确此项目的数据结构和基本实现功能,然后收集资料,设计算法,在这些工作完成后再开始编写代码。 在本次实践过程中我也发现了许多的不足。比如,在这次系统设计中,只考虑到问题的一般情况,而忽略特殊情况;考
11、虑问题不全面,只会单一的在某一方面或某一类方面考虑问题,视野没有得以开阔等。
我相信经过本次实践,我会在以后的学习工作中变得更加小心和自信,系统也会学做越熟练。在不断的错误和失败中逐渐弥补和提高,是自己变得更加完美,设计以更加完美。
#include
12、ng made;//生产厂家 string name;//名字 int time;//日期 double distance;//里程 double price;//价格 string driver;//驾驶员 long long cellphone;//手机号 int type;//车型 }; class Car { private: Manager car[N]; int top;//当前车的数量。 public: Car() { top = 0; } void add();//增加 void search();//查询
13、void show();//显示
void delet();//删除
void sum();//统计
void jiemian();//界面
void store();//保存
void read();//读取
void write();//打印
};
void Car::add() {
int a = 1, b;
while (1) {
if (top
14、 j = 0; j
15、 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 << "
16、输入车型:(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)"; cin >> car[top].type; top++; cout << "添加成功!是否继续添加车辆?(1->yes or 2->no)" << endl; cin >> b; if (b = 2) { cout << "系统返回中,请稍后!" << endl; break; } } else//编号重复 break; } else { cout << "车库已满无法添加" << e
17、ndl;
cout << "系统返回 "<< endl;
break;
}
}
jiemian();
}
void Car::search() {
int i, j, k,a = 0, b=0,c;
cout << "1-根据编号查询!"<
18、< endl; cin >> n; for (j = 0; j < top; j++) { if (car[j].num == n) { cout << "车辆编号:" << car[j].num << endl; cout << "车名:" << car[j].name << endl; cout << "购买日期:" << car[j].time << endl; cout << "生产厂家:" << car[j].made << endl; cout << "行驶里程:" << car[j].distance << e
19、ndl; cout << "车辆价格:" << car[j].price << endl; cout << "驾驶员的名字:" << car[j].driver << endl; cout << "驾驶员的手机号:" << car[j].cellphone << endl; cout << "车型:" << car[j].type<< endl; cout << "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" << endl; a++; } } if (a == 0) { cout
20、<< "编号不存在!" << endl; } break; } case 2: { int m; string l; cout << "输入驾驶员的名字" << endl; cin >> l; cout << "输入驾驶员的手机号" << endl; cin >> m; for (k = 0; k < top; k++) { if (car[k].driver == l) { if (car[k].cellphone == m) { cout << "车辆编号:" << car[k].num << e
21、ndl; cout << "车名:" << car[k].name << endl; cout << "购买日期:" << car[k].time << endl; cout << "生产厂家:" << car[k].made << endl; cout << "行驶里程:" << car[k].distance << endl; cout << "车辆价格:" << car[k].price << endl; cout << "驾驶员的名字:" << car[k].driver << endl; cout <
22、< "驾驶员的手机号:" << car[k].cellphone << endl; cout << "车型:" << car[k].type << endl; cout << "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" << endl; b++; } } } if (b = 0) { cout << "信息错误或不存在!" << endl; } break; } default: cout << "输入有误!" << endl; break; } cou
23、t << "按1返回主界面:" << endl; cin >> c; if (c == 1) { jiemian(); } else { jiemian(); } } void Car::show() { int i, j; if (top != 0) { cout << "车库中所有车的基本信息:" << endl; for (i = 0; i < top; i++) { cout << "车辆编号:" << car[i].num << endl; cout << "车名:" << car[i].name <
24、< endl; cout << "购买日期:" << car[i].time << endl; cout << "生产厂家:" << car[i].made << endl; cout << "行驶里程:" << car[i].distance << endl; cout << "车辆价格:" << car[i].price << endl; cout << "驾驶员的名字:" << car[i].driver << endl; cout << "驾驶员的手机号:" << car[i].cellphone << endl; cout <<
25、 "车型:" << car[i].type << endl; cout << "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" << endl; } } else cout << "车辆库为空!" << endl; cout << "按1返回主界面:" << endl; cin >> j; if (j == 1) { jiemian(); } else { jiemian(); } } void Car::delet() { int i,a=0; while(1){
26、
if(top==0){
cout<<"车辆库为空将退回功能界面!"< 27、 cout << "生产厂家:" << car[j].made << endl;
cout << "行驶里程:" << car[j].distance << endl;
cout << "车辆价格:" << car[j].price << endl;
cout << "驾驶员的名字:" << car[j].driver << endl;
cout << "驾驶员的手机号:" << car[j].cellphone << endl;
cout << "车型:" << car[j].type << endl;
cout 28、 << "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" << endl;
cout<<"是否确定信息并删除!(1->是,2->否)"< 29、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<<"系统返回中!"< 30、"< 31、dl;
cout << "3-统计驾驶员" << endl;
cout << "4-统计车辆数" << endl;
cout << "输入统计的选项:" << endl;
cin >> i;
if (i > 0 && i < 5) {
switch (i) {
case 1:
cout << "1-总里程" << endl;
cout << "2-各类车的总里程" << endl;
cout << "输入选项:" << endl;
cin >> j;
if (j == 1 || j == 2) {
switch 32、j) {
case 1:
for (l = 0; l < top; l++) {
a = a + car[l].distance;
}
cout << "总里程:" << a << endl;
cout << "查询成功,系统将返回主页面。" << endl;
break;
case 2:
for (m = 0; m < top; m++) {
if (car[m].type == 1) { a=a+car[m].distance; }
else
33、 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 << "摩托车的总里程:" << a << endl;
cout 34、<< "汽车的总里程:" << b << endl;
cout << "客车的总里程:" << c << endl;
cout << "面包车的总里程:" << d << endl;
cout << "货车的总里程:" << f << endl;
cout << "查询成功,系统将返回主页面。" << endl;
//(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)
break;
default:
cout << "输入有误!系统将返回." << endl;
break; 35、
}
}
else {
cout << "输入错误,系统返回。" << endl;
break;
}
break;
case 2:
cout << "1-总资产" << endl;
cout << "2-各类车的总资产" << endl;
cout << "输入选项:" << endl;
cin >> j;
if (j == 1 || j == 2) {
switch (j) {
case 1:
for (l = 0; l < top; l++) {
36、 a = a + car[l].price;
}
cout << "总资产:" << a << endl;
cout << "查询成功,系统将返回主页面。" << endl;
break;
case 2:
for (m = 0; m < top; m++) {
if (car[m].type == 1) { a = a + car[m].price; }
else
if (car[m].type == 2) { b = b + car[m].price; }
37、 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 << "摩托车的总资产:" << a << endl;
cout << "汽车的总资产:" << b << endl;
cout << "客车的总资产:" << c << 38、endl;
cout << "面包车的总资产:" << d << endl;
cout << "货车的总资产:" << f << endl;
cout << "查询成功,系统将返回主页面。" << endl;
//(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)
break;
default:
cout << "输入有误!系统将返回." << endl;
break;
}
}
else {
cout << "输入错误,系统返回。" << endl; 39、
break;
}
break;
case 3:
cout << "1-总驾驶员数" << endl;
cout << "2-各类车的总驾驶员数" << endl;
cout << "输入选项:" << endl;
cin >> j;
if (j == 1 || j == 2) {
switch (j) {
case 1:
a = top;
cout << "总驾驶员数:" << a << endl;
cout << "查询成功,系统将返回主页面。" << endl; 40、
break;
case 2:
for (m = 0; m < top; m++) {
if (car[m].type == 1) { a++; }
else
if (car[m].type == 2) { b++; }
else
if (car[m].type == 3) { c++; }
else
if (car[m].type == 4) { d++; }
else
f++;
}
41、 cout << "摩托车的驾驶员数:" << a << endl;
cout << "汽车的总驾驶员数:" << b << endl;
cout << "客车的总驾驶员数:" << c << endl;
cout << "面包车的总驾驶员数:" << d << endl;
cout << "货车的总驾驶员数:" << f << endl;
cout << "查询成功,系统将返回主页面。" << endl;
//(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)
break;
de 42、fault:
cout << "输入有误!系统将返回." << endl;
break;
}
}
else {
cout << "输入错误,系统返回。" << endl;
break;
}
break;
case 4:
cout << "1-总车数" << endl;
cout << "2-各类车的车数" << endl;
cout << "输入选项:" << endl;
cin >> j;
if (j == 1 || j == 2) {
switch 43、j) {
case 1:
a = top;
cout << "总车辆数:" << a << endl;
cout << "查询成功,系统将返回主页面。" << endl;
break;
case 2:
for (m = 0; m < top; m++) {
if (car[m].type == 1) { a++; }
else
if (car[m].type == 2) { b++; }
else
if (car[m].type == 44、3) { c++; }
else
if (car[m].type == 4) { d++; }
else
f++;
}
cout << "摩托车的车辆数:" << a << endl;
cout << "汽车的总车辆数:" << b << endl;
cout << "客车的总车辆数:" << c << endl;
cout << "面包车的总车辆数:" << d << endl;
cout << "货车的总车辆数:" << f << endl 45、
cout << "查询成功,系统将返回主页面。" << endl;
//(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)
break;
default:
cout << "输入有误!系统将返回." << endl;
break;
}
}
else {
cout << "输入错误,系统返回。" << endl;
break;
}
break;
default:
cout << "输入有误!系统将返回." << endl;
46、break;
}
}
else {
cout << "输入错误,系统返回主页面。" << endl;
}
jiemian();
}
void Car::write(){
ofstream fileout("a.txt",ios::trunc);
fileout.close();
ofstream write("a.txt");
for(int i = 0; i < top; i++){
write << "车辆编号:" << car[i].num << " ";
write <<"车牌号"< 47、
write << "车名:" << car[i].name << " ";
write << "购买日期:" << car[i].time << " ";
write << "生产厂家:" << car[i].made << " ";
write << "行驶里程:" << car[i].distance << " ";
write << "车辆价格:" << car[i].price << " ";
write << "驾驶员的名字:" << car[i].driver << " ";
write << "驾驶员的手机号:" << car[i].ce 48、llphone << " ";
write << "车型:" << car[i].type << " "< 49、e << car[i].num << " ";
write < 50、 << car[i].type << " "<






