栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告

关于这个课程设计 ,差点没把我头发愁没。

好了其实本质还是东拼西凑,编程能力没怎么长进,花里胡哨的东西却学了不少(不是)

万恶的学院,虽然要求三人一组,但是却分一二三类,三个人代码还不能互相抄袭。

最后每个人都要提交代码,完成报告,答辩。

我严重怀疑是不是最近学院真的闲的没事干......

好了废话不多说,我把代码贴出来啦,造福广大网友,回馈我在CSDN当伸手党的日子

(大体上功能是可以实现,就是文件打开会有乱码,但是在cmd界面的读写啥的都没问题)

一、题目

该系统能够实现以下功能:

(1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定

(1)能够统计出该公司,所有车辆的累积行驶里程

(2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息

(3)能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息

(4)能够统计出该公司车辆的总数额以及每类车辆的数量

(5)能够实现某个类型车辆的添加和删除

(6)其他功能可根据需要自行扩充,并请在课程设计报告中详细说明!

二、界面

 

三、代码   1、头文件

这是头文件Mary_Vehicle.h的内容

#include
#include
#include
#include
#include
#include
using namespace std;
#define N 20          //车辆最大存储量20
#define OilPrice 8.0  //油价8元每升
void flash();
class Manage_Vehicler;//提前声明车辆管理类
//设置全局变量
int Vehicle_counter=0;
ifstream infile;
ofstream outflie;

这是Mary_Vehicle.cpp源文件

#include"Mary_Vehicle.h"
//车辆类
class Vehicle              //汽车类
{
public:
	int num;                  //编号
    char ID[N];                  //车牌号
    char Vehicle_Drirer[N];             //驾驶人
    double Emption_Time;                     //购买时间(XXXX年)(多少个月)
    int Type;                      //型号(1-大客车,2-小轿车,3-卡车,4-摩托车,5-越野车)        公共变量
    double ODO;                 //总公里数
    int Base_fee;                           //基本维护费用
	int RoadFee;                   //养路费
	double OilKm;                  //耗油量/公里
	double Total_cost;               //累计总费用
	friend Manage_Vehicler;
public :
		Vehicle();
		~Vehicle(){};
};
Vehicle::Vehicle(){
	ID[N]=0;
	Vehicle_Drirer[N]='无';
	Emption_Time=2000.0;
	Type=0;
	ODO=0.0;
	Base_fee=0;
	RoadFee=0;
	OilKm=0.0;
	Total_cost=0.0;
}
//车辆数组类,公有继承自车辆类
class Manage_Vehicler:public Vehicle              //总的类(管理类)
{
private:
	Vehicle vehicle[N];             //所有车辆数	
	int Max_Passenger[N];         //最大载客量(大客车)    
	int coach[N];          //箱数,轿车
	int weight[N];        //载重量(卡车)
	int velocity[N];       //最大速度(摩托车)
	double height[N];           //栏板高(越野车)
	int eapacity[N];         //电池容量(Ah)(电动汽车)
	int top;        //记录当前车辆数量
public:
	Manage_Vehicler(){top = 0;}//车辆初始值为0  车辆总数
	void Add_vehicle();     //添加车辆
	void Search_vehicle();  //查询车辆
	void Displays_information();    //显示车辆信息库
    void Edit_vehicle();    //编辑功能
    void Delect_vehicle();   //删除车辆
    void Sum_vehicle();     //统计信息
    void Read_vehicle();    //读出车辆信息
    void Write_vehicle();   //车辆信息存盘
    void Interface(); //总界面
	~Manage_Vehicler(){};
};
 //添加车辆  
void Manage_Vehicler::Add_vehicle()          
{
	ifstream infile;
    infile.open("车辆信息.txt",ios::out);
    if(!infile) 
		{
			cout<<"error!文件打开失败!"<>x;
	        for(int j=0; j>vehicle[top].ID;     
                cout<<"车辆驾驶人:";
                cin>>vehicle[top].Vehicle_Drirer;
                cout<<"购买时间(XXXX年):";
                cin>>vehicle[top].Emption_Time;
				cout<<"养路费:";
				cin>>vehicle[top].RoadFee;
                
				cout<<"车辆型号(1-大客车,2-小轿车,3-卡车,4—摩托车,5—越野车):";
                cin>>vehicle[top].Type;
				while(!(vehicle[top].Type==1||vehicle[top].Type==2||vehicle[top].Type==3||vehicle[top].Type==4||vehicle[top].Type==5)) //判断输入指令是否为1-3
				{
					cout<<"输入车辆型号错误,请重新输入:";
					cin>>vehicle[top].Type;
				}
                
				cout<<"总公里数:";
                cin>>vehicle[top].ODO;
                if( vehicle[top].Type==1)    //此时是1-大客车,
				{
					cout<<"最大载客量:";
                    cin>>Max_Passenger[top];
                    vehicle[top].Base_fee = 2000;   //基本维护费用
					vehicle[top].OilKm = 0.1;   //耗油量/公里
				}
				else if( vehicle[top].Type == 2 )   //此时是2-小轿车
				{
					cout<<"车厢数:";
                    cin>>coach[top];
                    vehicle[top].Base_fee = 1000;
					vehicle[top].OilKm = 0.05;
				}
				else if(  vehicle[top].Type == 3  )                           //此时是3-卡车
				{
					cout<<"载重量:";
                    cin>>weight[top];
                    vehicle[top].Base_fee = 1500;
					vehicle[top].OilKm = 0.15;
				}
				else if(  vehicle[top].Type == 4  )                            //此时是4-摩托车
				{
					cout<<"最大速度:";
                    cin>>weight[top];
                    vehicle[top].Base_fee = 1500;
					vehicle[top].OilKm = 0.15;
				}
				else if(  vehicle[top].Type == 5  )                            //此时是5-越野车
				{
					cout<<"栏板高:";
                    cin>>weight[top];
                    vehicle[top].Base_fee = 1500;
					vehicle[top].OilKm = 0.15;
				}
				else if(  vehicle[top].Type == 6  )                            //此时是6-电动汽车
				{
					cout<<"电池容量:";
                    cin>>eapacity[top];
                    vehicle[top].Base_fee = 1500;
					vehicle[top].OilKm = 0.15;
				}
				vehicle[top].Total_cost =(OilPrice * vehicle[top].OilKm * vehicle[top].ODO) + (vehicle[top].Emption_Time *vehicle[top].Base_fee);  //计算总费用
				top++;        //车辆总数加一
				Write_vehicle();      //调用车辆信息存盘函数,在下面定义
                cout<<"是否继续添加车辆?(1-是,2-否):";
                cin>>y;
				while(!( y==1 || y==2 ))    
				{
					cout<<"输入是否添加指令号错误,请重新输入:";
					cin>>y;
				}
                if(y == 2)
				{
					cout<<"即将跳转至功能主界面"<N
		{
			cout<<"车辆信息库已满,不能再添加车辆!"<>i;      
		cout<>t;
	}
	else if(i =='2')
	{
		cout<<"                                    |◇请输入需查询的车辆编号:";
		cin>>n;
	}
	else if(i == '3')
	{
		cout<<"                                    |◇请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车,4—摩托车,5—越野车):";
		cin>>m;
	}	
	
	for(int j=0;j>choose;
		if(choose == 1)
		Edit_vehicle();        //调用编辑功能函数
	}
	else             //上述a++的函数未成功,最上面1,2,3的查询结果没有
	{
		if(i=='1') cout<<"                                    |◇车辆驾驶人不存在!"<>i;
		for(j = 0; j < top; j++)
		{
			if(vehicle[j].num == i)  //车库有此编号的车
			{
				cout<<"车牌号:";
                cin>>vehicle[j].ID;
                cout<<"驾驶人:";
                cin>>vehicle[j].Vehicle_Drirer;
                cout<<"购买时间(XXXX年):";
                cin>>vehicle[j].Emption_Time;
                cout<<"型号(1-大客车,2-小轿车,3-卡车,4-摩托车,5-越野车):";
                cin>>vehicle[j].Type;
				
				while(!(vehicle[j].Type==1||vehicle[j].Type==2||vehicle[j].Type==3||vehicle[j].Type==4||vehicle[j].Type==5)) //判断是否有误
				{
					cout<<"输入信息有误,请输入1-5:";
					cin>>vehicle[j].Type;
				}
                
				cout<<"总公里数:";
                cin>>vehicle[j].ODO;
				cout<<"养路费:";
				cin>>vehicle[j].RoadFee;
                
				if( vehicle[j].Type == 1 )    //此时是1-大客车
				{
					cout<<"最大载客量:";
                    cin>>Max_Passenger[j];
                    vehicle[j].Base_fee = 2000;
					vehicle[j].OilKm = 0.1;
				}
				else if( vehicle[j].Type == 2 )   //此时是2-小轿车
				{
					cout<<"车厢数:";
                    cin>>coach[j];
                    vehicle[j].Base_fee = 1000;
					vehicle[j].OilKm = 0.05;
				}
				else if (vehicle[j].Type == 3)                      //此时是3-卡车
				{
					cout<<"载重量:";
                    cin>>weight[j];
                    vehicle[j].Base_fee = 1500;
					vehicle[j].OilKm = 0.15;
				}
				else if( vehicle[j].Type == 2 )   //此时是4-摩托
				{
					cout<<"最大速度:";
                    cin>>velocity[j];
                    vehicle[j].Base_fee = 1000;
					vehicle[j].OilKm = 0.05;
				}
				else                        //此时是5-越野
				{
					cout<<"栏板高:";
                    cin>>height[j];
                    vehicle[j].Base_fee = 1500;
					vehicle[j].OilKm = 0.15;
				}
				
				Write_vehicle();                  //调用存盘函数
				a++;         //成功后加一
			}
			
		}
		if(a == 0)      //未存成功,说明有错误
			cout<<"此编号不存在,不能进行修改,请重新输入!"<>i;
			for(int j = 0; j < top; j++)        //for循环用来删除所有存盘的信息
			{
				if(vehicle[j].num == i)   //车辆编号存在
				{
					if(top==1)
						vehicle[0].Type=0;      //就一辆车,使其变为0					
					else                    //top不等于1
					{
						if( vehicle[top - 1].Type == 1 )    //判断出此时vehicle数组里储存在最后一组的是1-大客车
						{
							Max_Passenger[j] = Max_Passenger[j+1];         //Max_Passenger载客量
						    vehicle[j].Base_fee = 2000;         
						    vehicle[j].OilKm = 0.1;       
						}
					    else if(vehicle[top - 1].Type == 2 )    //判断出此时vehicle数组里储存在最后一组的是2-小轿车
						{
							coach[j] = coach[top - 1];  
						    vehicle[j].Base_fee = 1000;   
						    vehicle[j].OilKm = 0.05;
						}
					    else if(vehicle[top - 1].Type == 3 )   //判断出此时vehicle数组里储存在最后一组的是3-卡车
						{
						    weight[j] = weight[j+1];
						    vehicle[j].Base_fee = 1500;
						    vehicle[j].OilKm = 0.15;
						}
						 else if(vehicle[top - 1].Type == 4 )   //判断出此时vehicle数组里储存在最后一组的是4-摩托车
						{
						    velocity[j] = velocity[j+1];
						    vehicle[j].Base_fee = 1500;
						    vehicle[j].OilKm = 0.15;
						}
						 else if(vehicle[top - 1].Type == 5 )   //判断出此时vehicle数组里储存在最后一组的是5-越野车
						{
						    height[j] = height[j+1];
						    vehicle[j].Base_fee = 1500;
						    vehicle[j].OilKm = 0.15;
						}
						vehicle[j].num = vehicle[j+1].num;          //使所有的数据均减一
						strcpy(vehicle[j].ID, vehicle[j+1].ID);
					    strcpy(vehicle[j].Vehicle_Drirer, vehicle[j+1].Vehicle_Drirer); 
					    vehicle[j].Emption_Time = vehicle[j+1].Emption_Time;        
					    vehicle[j].Type = vehicle[j+1].Type;        
					    vehicle[j].ODO = vehicle[j+1].ODO;            
					    vehicle[j].RoadFee = vehicle[j+1].RoadFee;  
					    vehicle[j].Total_cost = vehicle[j+1].Total_cost;
						vehicle[j+1].Type=0;
					}					
					a++;
					Write_vehicle();   //存盘函数
				}
			}
			if(a == 0)
				cout<<"此编号不存在,不能进行删除,请重新输入!"<>vehicle[top].num>>vehicle[top].ID>>vehicle[top].Vehicle_Drirer>>vehicle[top].Emption_Time>>vehicle[top].Type;
		        if(vehicle[top].Type == 1)
			        Read_vehicle>>Max_Passenger[top];//读取   载客量
		        else if(vehicle[top].Type == 2)
			        Read_vehicle>>coach[top];//读取    车厢数
		        else if(vehicle[top].Type == 3)
			    Read_vehicle>>weight[top];//存入    载重量
			    else if(vehicle[top].Type == 4)
		     	Read_vehicle>>velocity[top];//存入    最大速度
		        else 
			    Read_vehicle>>height[top];//存入    栏板高
		        Read_vehicle>>vehicle[top].ODO>>vehicle[top].RoadFee>>vehicle[top].Base_fee>>vehicle[top].OilKm>>vehicle[top].Total_cost;
		        if(vehicle[top].Type==1||vehicle[top].Type==2||vehicle[top].Type==3||vehicle[top].Type==4||vehicle[top].Type==5)
		            top++;
			}
			Read_vehicle.close();           //关闭文件
	        break;
	    }
	    else 
		{
		    ofstream o("车辆信息.txt");      
		    o.close();
		}
	}
}
//主界面
void Manage_Vehicler::Interface()            
{	int c1,c2,c3,c4,c5;
    c1=c2=c3=c4=c5=0;	
 
	for(int j = 0; j <= top; j++)
	{
		if( vehicle[j].Type == 1 ) c1++;      //统计大客车的数量
		else if(vehicle[j].Type == 2) c2++;      //统计小轿车的数量
		else if(vehicle[j].Type==3) c3++;      //统计卡车的数量
		else if(vehicle[j].Type==4) c4++;      //统计摩托车的数量
		else if(vehicle[j].Type==5) c5++;      //统计越野车的数量
	}
	top=c1+c2+c3+c4+c5;
	system("color F0");
	cout<<"nnn                    -------------------------------------------------------------"<>i;
	while(!(i=='1'||i=='2'||i=='3'||i=='4'||i=='5'||i=='0'))
	{
		cout<<"                    |输入错误,请重新输入:";
		cin>>i;           
	}
	switch(i)
	{
	case '1':Add_vehicle();break;
    case '2':Search_vehicle();break;
    case '3':Displays_information();break;
    case '4':Edit_vehicle();break;
    case '5':Delect_vehicle();break;
    case '0':flash();return;
	}
}
//开始欢迎界面美化,设置字体颜色和背景色
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,(ForeColor%1)|(BackGroundColor%16*16));}
//程序开始欢迎使用信息
void shine()
{
    for(int i=0;i<16;i++)
    {
        int j=11;
    SetColor(i,j);cout<<"nnnnnnn********************************************************************************************************************n";
    SetColor(i,j);cout<<"*********************************************************************************************************************n";
    SetColor(i,j);cout<<"**************************                               ************************************************************n";
    SetColor(i,j);cout<<"**************************    欢迎进入车辆管理系统!!        **********************************************************n";
    SetColor(i,j);cout<<"**************************    欢迎进入车辆管理系统!!        **********************************************************n";
    SetColor(i,j);cout<<"**************************                               ************************************************************n";
    SetColor(i,j);cout<<"*********************************************************************************************************************n";
    SetColor(i,j);cout<<"*********************************************************************************************************************n";
    
    
    //cout<<"i="< 
四、课程设计报告 

这个太多了,就不都贴出来了。如果广大网页与需要的话,可以自行下载

这是当时画的大流程图(不是很专业啊哈哈)

 最后,虽然摸鱼很快乐,但是deadline的时候好痛苦,尤其是报告,自己写,自己作图,认认真真写了两天多。愿世间再无课程设计。

还有,为什么大二的我要经历大四答辩的痛苦???

(个人看法,这种课程设计真的很没意思,我们只给了一周的时间,六七百行代码起步,如果自己写自己调,做出来就得一个星期吧,还得写报告,不借鉴都写不完。当然,可能能做到的大有人在,只是因为我太菜了,哭泣)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861754.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号