当前位置:文档之家› C++程序设计车辆管理系统实验报告 附源代码

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<iostream>#include<fstream>#include<string>using namespace std;#define N 25//车辆极限存储量struct Manager {int num;//车辆编号int pnum;//车牌号string made;//生产厂家string name;//名字int time;//日期double distance;//里程double price;//价格string driver;//驾驶员long longcellphone;//手机号int type;//车型};class Car {private:Manager car[N];int top;//当前车的数量。

public:Car() { top = 0; }void add();//增加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::store (){}void Car::read(){}void Car::write(){}5.执行界面、运行结果分析车辆信息添加输入编号添加车辆依次输入车辆信息。

车辆信息查询输入车辆编号查询车辆信息。

车辆信息显示显示车库内所有车辆。

车辆信息删除选择编号显示车辆信息,完成删除。

车辆信息统计选择要统计的内容,显示统计的内容。

车辆信息保存将车辆信息保存在文件中。

车辆信息读取将保存的车辆信息读取出来。

车辆信息打印将车辆信息打印下来。

6.总结与体会经过了几个星期的学习与实践,汽车管理系统已基本完成,基本功能已全部实现,顽强可以在汽车公司投入使用。

系统功能有:添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。

通过这次实践学习,我不仅加深了课堂知识还学到了许多课上学不到的技能。

既提高了我的基础知识,又增强了我的动手操作能力。

比如在做一个大项目时,一开始不急于动手写代码,应该先对这个项目做整体的分析,明确此项目的数据结构和基本实现功能,然后收集资料,设计算法,在这些工作完成后再开始编写代码。

在本次实践过程中我也发现了许多的不足。

比如,在这次系统设计中,只考虑到问题的一般情况,而忽略特殊情况;考虑问题不全面,只会单一的在某一方面或某一类方面考虑问题,视野没有得以开阔等。

我相信经过本次实践,我会在以后的学习工作中变得更加小心和自信,系统也会学做越熟练。

在不断的错误和失败中逐渐弥补和提高,是自己变得更加完美,设计以更加完美。

#include<iostream>#include<fstream>#include<string>using namespace std;#define N 25//车辆极限存储量struct Manager {int num;//车辆编号int pnum;//车牌号string made;//生产厂家string name;//名字int time;//日期double distance;//里程double price;//价格string driver;//驾驶员long longcellphone;//手机号int type;//车型};class Car {private:Manager car[N];int top;//当前车的数量。

public:Car() { top = 0; }void add();//增加void search();//查询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<N) {int i;cout<< "请输入添加的车辆信息:" <<endl;cout<< "车辆编号:";cin>>i;for (int j = 0; j<top; j++) {if (car[j].num == i) {cout<< "车辆编号重复,系统返回." <<endl;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->yes or 2->no)" <<endl;cin>> b;if (b = 2) {cout<< "系统返回中,请稍后!" <<endl;break;}}else//编号重复break;}else {cout<< "车库已满无法添加" <<endl;cout<< "系统返回 "<<endl;break;}}jiemian();}void Car::search() {int i, j, k,a = 0, b=0,c;cout<< "1-根据编号查询!"<<endl;cout<< "2-根据驾驶员信息查询!"<<endl;cout<< "请输入你的查询方式!(1 or 2)"<<endl;cin>>i;switch (i){case 1:{ int n;cout<< "输入要查询的车辆编号:" <<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<<endl;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<< "编号不存在!" <<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 <<endl;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<< "驾驶员的手机号:" << 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;}cout<< "按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 <<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<< "车型:" << car[i].type<<endl;cout<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;}}elsecout<< "车辆库为空!" <<endl;cout<< "按1返回主界面:" <<endl;cin>> j;if (j == 1) {jiemian();}else {jiemian();}}void Car::delet() {int i,a=0;while(1){if(top==0){cout<<"车辆库为空将退回功能界面!"<<endl;break;}else{cout<<"请输入要删除的车辆编号!"<<endl;cin>>i;for(int j=0;j<top;j++){if(car[j].num ==i){cout<< "车辆编号:" << car[j].num <<endl;cout<< "车名:" << car[j].name <<endl;cout<< "购买日期:" << car[j].time<<endl;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<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;cout<<"是否确定信息并删除!(1->是,2->否)"<<endl;int n;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++;}elseif(n==2){cout<<"系统返回中!"<<endl;}else{cout<<"输入错误系统返回中。

相关主题