1、C+程序设计车辆管理系统实验报告附源代码C+ 程序设计车辆管理系统实验报告附源代码1. 实习题目车辆管理系统2. 原理概述某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能:( 1)利用类、继承的相关理论知识, 建立合理的类, 能够管理至少 5 种车型, 各种车型的相关数据,根据需要自行设定(1) )能够统计出该公司,所有车辆的累积行驶里程(2) )能够分类统计出每一类车辆的累积行驶里程、 资产总额、 驾驶员数量等相关信息(3) )能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息(4) )能够统计出该公司车辆的总数额以及每类车辆的数量(5)
2、)能够实现某个类型车辆的添加和删除(6) )其他功能可根据需要自行扩充,并请在课程设计报告中详细说明!3. 设计方案3.1 编程语言C+语言3.2 数据结构;.Manager num;/ 车辆编号pnum;/ 车牌号made;/ 生产厂家name;/ 名字Manager carN;Car车车车车车车车车车辆辆辆辆辆辆辆辆辆信信信信信信信信信息息息息息息息息息3.4 技术方案先定义结构体类,再将其继承,分别记录车辆信息和车辆编号函数;类的定义和使用;While 函数 for 循环 if 判断语句 switch 循环;文件的打开与关闭,输入和输出。;.3.4 流程图车辆信息添加开始判断数据库是否满
3、 是 返回主界面输入车是判断编号是否重复是 返回主界面输入车辆信息车辆总数 +1继续添加 否 返回主界面;.结束车辆信息查询开始根据编号 根据驾驶员信息判断车辆是否存在;.是显示车辆信息否 返回主界面结束车辆信息显示开始判断车库是否否是显示车库内所有车辆返回主界面结束车辆信息删除开始判断车库是否为空是否输入车辆编号判断删除信息是否否删除成功返回主界面结束车辆信息统计开始统 统 统 统计 计 计 计里 资 驾 车输出统计结果返回主界面结束车辆信息保存开始;.保存成功返回主界面 结束车辆信息读取开始读取成功返回主界结束车辆信息打印开始打印成功返回主界结束;.4. 程序编写#include #inc
4、lude #include 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 long cellphone;/ 手机号int type;/ 车型;class Car private:Manager carN;int top;/ 当前车的数量。public:
5、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()v
6、oid Car:write()5. 执行界面、运行结果分析车辆信息添加输入编号添加车辆依次输入车辆信息。车辆信息查询选择编号显示车辆信息,完成删除。车辆信息统计将车辆信息打印下来。6. 总结与体会经过了几个星期的学习与实践, 汽车管理系统已基本完成, 基本功能已全部实现, 顽强可以在汽车公司投入使用。系统功能有:添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。通过这次实践学习, 我不仅加深了课堂知识还学到了许多课上学不到的技能。 既提高了我的基础知识, 又增强了我的动手操作能力。 比如在做一个大项目时, 一开始不急于动手写代码,
7、 应该先对这个项目做整体的分析, 明确此项目的数据结构和基本实现功能, 然后收集资料,设计算法,在这些工作完成后再开始编写代码。在本次实践过程中我也发现了许多的不足。 比如, 在这次系统设计中, 只考虑到问题的一般情况, 而忽略特殊情况; 考虑问题不全面, 只会单一的在某一方面或某一类方面考虑问 题,视野没有得以开阔等。我相信经过本次实践, 我会在以后的学习工作中变得更加小心和自信, 系统也会学做越熟练。 在不断的错误和失败中逐渐弥补和提高, 是自己变得更加完美, 设计以更加完美。#include #include #include using namespace std;#define N
8、25/ 车辆极限存储量struct Manager int num;/ 车辆编号int pnum;/ 车 牌 号 string made;/ 生产厂家string name;/ 名 字 int time;/ 日期double distance;/ 里程double price;/ 价格string driver;/ 驾驶员long long cellphone;/ 手机号int type;/ 车型;class Car private:Manager carN;int top;/ 当前车的数量。public:Car() top = 0; void add();/ 增加void search();
9、/ 查询void show();/ 显示void delet();/ 删除void sum();/ 统 计 void jiemian();/ 界面void store();/ 保存void read();/ 读取void write();/ 打印;void Car:add() int a = 1, b; while (1) if (topN) int i;cout 请输入添加的车辆信息 : endl; cout i;for (int j = 0; jtop; j+) if (carj.num = i) cout 车辆编号重复,系统返回 . 货车 );if (a = 1) cartop.num
10、= i;cout cartop.pnum;cout cartop.name;cout cartop.time;cout cartop.made;cout cartop.distance;cout cartop.price;cout cartop.driver;cout cartop.cellphone;cout 摩托车, 2- 汽车,3- 客车,4- 面包cin cartop.type;endl;top+;cout yes or 2-no) b; if (b = 2) cout 系统返回中 , 请稍后! endl; break;else/ 编号重复break;else cout 车库已满无法添
11、加 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 ) i;switch (i)case 1: int n;cout 输入要查询的车辆编号: n;for (j = 0; j top; j+) if (carj.num = n) cout 车辆编号: carj.num endl; cout 车 名 : carj.name endl; cout 购买日
12、期: carj.time endl; cout 生产厂家 : carj.made endl;cout 行驶里程: carj.distance endl; cout 车辆价格: carj.price endl;cout 驾驶员的名字: carj.driver endl;cout 驾驶员的手机号: carj.cellphone endl; endl;cout 车型 : carj.type endl;cout 摩托车, 2- 汽车 ,3- 客车,4- 面包车 ,5- 货车 )a+;if (a = 0) cout 编号不存在! endl;break;case 2: int m; string l;co
13、ut 输入驾驶员的名字 l;cout 输入驾驶员的手机号 m;for (k = 0; k top; k+) if (cark.driver = l) if (cark.cellphone = m) cout 车辆编号: cark.num endl; cout 车 名 : cark.name endl; cout 购买日期: cark.time endl; cout 生产厂家 : cark.made endl;cout 行驶里程: cark.distance endl; cout 车辆价格: cark.price endl;cout 驾驶员的名字: cark.driver endl;cout 驾
14、驶员的手机号: cark.cellphone endl; cout 车型 : cark.type endl;cout 摩托车, 2- 汽车 ,3- 客车 ,4- 面包车 ,5-货车 ) endl;b+;if (b = 0) cout 信息错误或不存在! endl;break;default:cout 输入有误! endl; break;cout 按 1 返回主界面 : c;if (c = 1) jiemian();else jiemian();endl;void Car:show() int i, j;if (top != 0) cout 车库中所有车的基本信息: endl; for (i =
15、 0; i top; i+) cout 车辆编号: cari.num endl; cout 车 名 : cari.name endl; cout 购买日期: cari.time endl; cout 生产厂家 : cari.made endl;cout 行驶里程: cari.distance endl; cout 车辆价格: cari.price endl;cout 驾驶员的名字: cari.driver endl;cout 驾驶员的手机号: cari.cellphone endl; cout 车型 : cari.type endl;cout 摩托车, 2- 汽车 ,3- 客车 ,4- 面包车
16、 ,5- 货车 ) elsecout 车辆库为空! endl;cout 按 1 返回主界面 : j;if (j = 1) jiemian();else jiemian();void Car:delet() int i,a=0; while(1)if(top=0)cout 车辆库为空将退回功能界面! endl; break;elsecout 请输入要删除的车辆编号! i;for(int j=0;jtop;j+) if(carj.num =i)cout 车辆编号: carj.num endl;cout 车 名 : carj.name endl; cout 购买日期: carj.time endl;
17、 cout 生产厂家 : carj.made endl;cout 行驶里程: carj.distance endl; cout 车辆价格 : carj.price endl;cout 驾驶员的名字: carj.driver endl;cout 驾驶员的手机号: carj.cellphone endl; cout 车型 : carj.type endl;cout 摩托车, 2- 汽车 ,3- 客车 ,4- 面包车 ,5-货车 ) endl;cout 是, 2- 否) n; if(n=1)carj.num=cartop-1.num; carj.name=cartop-1.name; carj.ti
18、me=cartop-1.time; carj.made=cartop-1.made; carj.distance=cartop-1.distance; carj.price=cartop-1.price; carj.driver=cartop-1.driver; carj.cellphone=cartop-1.cellphone; carj.type=cartop-1.type;top-; a+;else if(n=2)cout 系统返回中! endl;elsecout 输入错误系统返回中。 。 endl;if(a=0)cout 此编号不存在,不能进行删除 , 请重新输入! endl;else
19、cout 删除成功 ! 系统将返回功能界面 endl;break;jiemian();void Car:sum() int i, j,l,m,a=0, b=0, c=0,d=0,f=0; cout 1- 统计里程 endl; cout 2- 统计资产 endl; cout 3- 统计驾驶员 endl; cout 4- 统计车辆数 endl;cout 输入统计的选项: i;if (i 0 & i 5) switch (i) case 1:cout 1- 总里程 endl;cout 2- 各类车的总里程 endl; cout 输入选项: j;if (j = 1 | j = 2) switch (j
20、) case 1:for (l = 0; l top; l+) a = a + carl.distance;cout 总里程: a endl;cout 查询成功,系统将返回主页面。 endl;break;case 2:for (m = 0; m top; m+) if (carm.type = 1) a=a+carm.distance; elsecarm.distance; carm.distance; d=d+carm.distance; if (carm.type = 2) b=b +elseif (carm.type = 3) c=c +elseif (carm.type = 4)els
21、ef=f + carm.distance;cout 摩托车的总里程: a endl; cout 汽车的总里程: b endl; cout 客车的总里程: c endl; cout 面包车的总里程: d endl; cout 货车的总里程: f endl;cout 查询成功,系统将返回主页面。 摩托车, 2- 汽车 ,3- 客车 ,4- 面包车 ,5- 货车) break;default:cout 输入有误!系统将返回 . endl; break;else cout 输入错误,系统返回。 endl; break;break; case 2:cout 1- 总资产 endl;cout 2- 各类车
22、的总资产 endl; cout 输入选项: j;if (j = 1 | j = 2) switch (j) case 1:for (l = 0; l top; l+) a = a + carl.price;cout 总资产: a endl;cout break;查询成功,系统将返回主页面。 endl;case 2:for (m = 0; m top; m+) if (carm.type = 1) a = a + carm.price; elseif (carm.type = 2) b = b + carm.price; elsecarm.price; carm.price; if (carm.type = 3) c = c +elseif (carm.type = 4) d = d +elsef = f + carm.price;cout 摩托车的总资产: a endl; cout 汽车的总资产: b endl; cout 客车的总资产: c endl; cout 面包车的总资产: d endl; cout 货车的总资产: f endl;cout 查询成功,系统将返回主页面。 en
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1