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

article/2025/8/8 11:15:53

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

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

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

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

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

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

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

目录

一、题目

二、界面

三、代码 

四、课程设计报告


一、题目

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

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

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

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

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

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

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

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

二、界面

 

三、代码 

 1、头文件

这是头文件Mary_Vehicle.h的内容

#include<windows.h>
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>
#include<conio.h>
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!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕int a = 0, x, y;        // x代表车辆编号	while(1){if(top < N)         //判断top当前已存车辆数小于汽车最大存储数N{cout<<"请输入需添加的车辆信息"<<endl;cout<<"车辆编号:";cin>>x;for(int j=0; j<top;j++)         //判断编号是否重复{if (vehicle[j].num==x)     {cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++;       //如果重复++,此时a不为0break;}}if(a==0)                 //此时编号不重复{ vehicle[top].num = x;cout<<"车牌号:";cin>>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<<"即将跳转至功能主界面"<<endl;break;}}else       //此时编号重复break;}else                    //top>N{cout<<"车辆信息库已满,不能再添加车辆!"<<endl;cout<<"即将跳转至功能主界面"<<endl;flash();break;}}Sleep(1500);   //延迟1.5秒system("cls");//清空屏幕Interface();     //调用总界面函数
}//查询车辆
void Manage_Vehicler::Search_vehicle()        
{//ifstream infile;/* infile.open("车辆信息.txt",ios::in);if(!infile) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}*/system("cls");//清空屏幕int choose,m,n,a=0;char i,j,t[20]; cout<<"                                    |******************************"<<endl;cout<<"                                    |          查询车辆界面        "<<endl;cout<<"                                    |******************************"<<endl;cout<<"                                    |*        ◇1.按驾驶人查询       *"<<endl;cout<<"                                    |*        ◇2.按编号查询         *"<<endl;cout<<"                                    |*        ◇3.按类别查询         *"<<endl;cout<<"                                    |******************************\n"<<endl;cout<<"                                    |◇请输入你的查询选项依据:";while(1){cin>>i;      cout<<endl;if(i=='1'||i=='2'||i=='3')break;cout<<"                                    |◇输入错误,重输:";}	if(i=='1'){cout<<"                                    |◇请输入需查询车辆的驾驶人:";cin>>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<top;j++)if(strcmp(vehicle[j].Vehicle_Drirer,t)==0 || vehicle[j].num==n || vehicle[j].Type==m)   //strcmp比较,相同返回0,小于负数,大于正数。如果所输入的想要查找的依据在车辆管理系统中存在,就会输出对应的车辆全部信息{cout<<"编号    车牌号   驾驶人  购买时间(XXXX年) 型号     特性     总公里 养路费 维护费  油耗  总费用"<<endl;break;}for( j=0;j<top;j++)if(strcmp(vehicle[j].Vehicle_Drirer, t)==0 || vehicle[j].num==n || vehicle[j].Type==m) {cout<<setw(0)<<vehicle[j].num<<setw(8)<<vehicle[j].ID<<setw(9)<<vehicle[j].Vehicle_Drirer<<setw(6)<<vehicle[j].Emption_Time;  //前四个if(vehicle[j].Type==1 )cout<<setw(23)<<"大客车"<<setw(8)<<"载客量:"<<Max_Passenger[j];  //输出特性else if(vehicle[j].Type == 2 )cout<<setw(23)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];  else if(vehicle[j].Type == 3 )cout<<setw(23)<<"卡 车"<<setw(9)<<"载重量:"<<weight[j];else if(vehicle[j].Type == 4 )cout<<setw(23)<<"摩托车"<<setw(9)<<"最大速度:"<<velocity[j];else if(vehicle[j].Type == 5 )cout<<setw(23)<<"越野车"<<setw(9)<<"栏板高:"<<height[j];cout<<setw(6)<<vehicle[j].ODO<<setw(7)<<vehicle[j].RoadFee<<setw(8)<<vehicle[j].Base_fee<<setw(7)<<vehicle[j].OilKm<<setw(9)<<vehicle[j].Total_cost<<endl;			a++;        //使a不为0}if(a!=0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;if(choose == 1)Edit_vehicle();        //调用编辑功能函数}else             //上述a++的函数未成功,最上面1,2,3的查询结果没有{if(i=='1') cout<<"                                    |◇车辆驾驶人不存在!"<<endl;if(i=='2') cout<<"                                    |◇车辆编号不存在!"<<endl;else if (i=='3') cout<<"                                    |◇车辆型号不存在!"<<endl;}cout<<"                                    |◇按任意键返回功能主界面"<<endl;char zz=getch();   //无回显的取一个字符flash();Interface();         //调用界面函数
}//显示车辆信息库
void Manage_Vehicler::Displays_information()         
{//ifstream infile;infile.open("车辆信息.txt",ios::in);if(!infile) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕if(top != 0)      //top记录当前车辆数目{cout<<"********************************************************************************"<<endl;cout<<"编号  车牌号   驾驶人  购买时间(XXXX年)    型号     特性     总公里 养路费 维护费  油耗  总费用"<<endl;for(int j = 0; j < top; j++)         //使用for循环对应输出,j代表车辆数{cout<<setw(0)<<vehicle[j].num<<setw(13)<<vehicle[j].ID<<setw(9)<<vehicle[j].Vehicle_Drirer<<setw(6)<<vehicle[j].Emption_Time;if(vehicle[j].Type == 1 )cout<<setw(13)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<Max_Passenger[j];else if(vehicle[j].Type == 2 )cout<<setw(13)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];else if(vehicle[j].Type == 3)cout<<setw(13)<<"卡 车 "<<setw(8)<<"载重量:"<<setw(2)<<weight[j];else if(vehicle[j].Type == 4)cout<<setw(13)<<"摩托车 "<<setw(8)<<"最大速度:"<<setw(2)<<velocity[j];else cout<<setw(13)<<"越野车 "<<setw(8)<<"栏板高:"<<setw(2)<<height[j];cout<<setw(6)<<vehicle[j].ODO<<setw(7)<<vehicle[j].RoadFee<<setw(8)<<vehicle[j].Base_fee<<setw(7)<<vehicle[j].OilKm<<setw(9)<<vehicle[j].Total_cost<<endl;}cout<<"********************************************************************************"<<endl;}else                               cout<<"车辆库为空!"<<endl;cout<<"按任意键返回主界面:";char z=getch();        //从输出获得一个字符之后调用界面函数flash();Interface();
}//编辑车辆,修改车辆      
void Manage_Vehicler::Edit_vehicle()   
{//ifstream infile;infile.open("车辆信息.txt",ios::out);if(!infile) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕int i, j, a = 0;cout<<"请依次输入需要修改的车辆信息:"<<endl;while(1){cout<<"车辆编号:";cin>>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<<"此编号不存在,不能进行修改,请重新输入!"<<endl;else{cout<<"修改成功!系统将返回主界面..."<<endl;break;               //跳出while循环}}
Sleep(1500);   //延迟1.5秒
Interface();
}//删除车辆
void Manage_Vehicler::Delect_vehicle()       
{ifstream infile;infile.open("车辆信息.txt",ios::out);if(!infile) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕int i, a = 0;       //a用来判断循环是否成功while(1){if(top == 0)   //车库为空无法删除{cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break;         //跳出while循环}else          //不为空{cout<<"请输入需要删除的车辆编号:";cin>>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<<"此编号不存在,不能进行删除,请重新输入!"<<endl;else{cout<<"删除成功!系统将返回功能界面..."<<endl;break;}}}
Sleep(1500);   //延迟1.5秒
Interface();
}//车辆信息存盘
void Manage_Vehicler::Write_vehicle()       
{ofstream Write_vehicle;Write_vehicle.open("车辆信息.txt",ios::out);if(!Write_vehicle) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕	if(Write_vehicle){for(int i = 0; i <=top; i++){//Write_vehicle<<endl;Write_vehicle<<vehicle[i].num<<" "<<vehicle[i].ID<<" "<<vehicle[i].Vehicle_Drirer<<" "<<vehicle[i].Emption_Time<<" "<<vehicle[i].Type<<" ";if(vehicle[i].Type == 1)Write_vehicle<<Max_Passenger[i];//存入   载客量else if(vehicle[i].Type == 2)Write_vehicle<<coach[i];//存入    车厢数else if(vehicle[i].Type == 3)Write_vehicle<<weight[i];//存入    载重量else if(vehicle[i].Type == 4)Write_vehicle<<velocity[i];//存入    最大速度else Write_vehicle<<height[i];//存入    栏板高Write_vehicle<<" "<<vehicle[i].ODO<<" "<<vehicle[i].RoadFee<<" "<<vehicle[i].Base_fee<<" "<<vehicle[i].OilKm<<" "<<vehicle[i].Total_cost;}}
}
///读出车辆信息
void Manage_Vehicler::Read_vehicle()            
{ int start=1; ifstream Read_vehicle;Read_vehicle.open("车辆信息.txt",ios::in);if(!Read_vehicle) {cout<<"error!文件打开失败!"<<endl;Sleep(1500);return;}system("cls");//清空屏幕while(start){if(Read_vehicle){while(!Read_vehicle.eof())   //文件不结束,还有内容{Read_vehicle>>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<<"\n\n\n                    -------------------------------------------------------------"<<endl;cout<<"                    |***********************************************************|                   "<<endl;cout<<"                    |***********************************************************|                    "<<endl;cout<<"                    |                欢迎进入车辆管理系统                       |\t\t"<<endl;cout<<"                    |***********************************************************|                    "<<endl;cout<<"                    |***********************************************************|                    "<<endl;cout<<"                    |*                   1.添加车辆                            *|\t\t|\t总车辆\t"<<top<<endl;cout<<"                    |*                   2.查询车辆                            *|\t\t|\t大客车\t"<<c1<<endl;cout<<"                    |*                   3.显示车辆                            *|\t\t|\t小轿车\t"<<c2<<endl;cout<<"                    |*                   4.编辑车辆                            *|\t\t|\t卡 车 \t"<<c3<<endl;cout<<"                    |*                   5.删除车辆                            *|\t\t|\t摩托车\t"<<c4<<endl;cout<<"                    |*                   0.退出系统                            *|\t\t|\t越野车\t"<<c5<<endl;cout<<"                    |***********************************************************|                                   "<<endl;cout<<"                    -------------------------------------------------------------\n\n\n"<<endl;char i;cout<<"                    |请输入你需要操作的选项:";cin>>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<<"\n\n\n\n\n\n\n********************************************************************************************************************\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="<<i<<"j="<<j<<endl;_sleep(100);system("cls");}return;
}
//退出时显示
void flash()
{system("color F0");for(int i=0;i<16;i++){int j=11;
SetColor(i,j);cout<<"\n\n\n\n\n\n\n********************************************************************************";SetColor(i,j);cout<<"********************************************************************************";SetColor(i,j);cout<<"**************************                              ************************";SetColor(i,j);cout<<"**************************    感谢您的使用!!          ************************";SetColor(i,j);cout<<"**************************                              ************************";SetColor(i,j);cout<<"********************************************************************************";SetColor(i,j);cout<<"********************************************************************************";//cout<<"i="<<i<<"j="<<j<<endl;_sleep(100);system("cls");}return;
}
//主函数
int main()
{   shine();system("color F0");//设置控制台字体颜色为黑色,背景白色system("date");Manage_Vehicler a;a.Interface();//~Manage_Vehicler();return 0;
}

四、课程设计报告

这个太多了,就不都贴出来了。如果广大网友与需要的话,可以自行下载在下面这个链接里!

c++课程设计:简单车辆管理系统源代码(600+行)+报告(20+页)+记录文档-其它文档类资源-CSDN文库

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

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

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

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


http://chatgpt.dhexx.cn/article/CWJBcngE.shtml

相关文章

什么是车辆识别代码(VIN)

车辆识别代码(VIN),VIN是英文Vehicle Identification Number(车辆识别码)的缩写。因为ASE标准规定:VIN码由17位字符组成,所以俗称十七位码。正确解读VIN码,对于我们正确地识别车型,以致进行正确地诊断和维修都是十分重要的。车辆识别代码根据国家车辆管理标准确定,包…

Eigen学习笔记1:在VS2015下Eigen(矩阵变换)的配置

一、Eigen简介 Eigen是一个高层次的C 库&#xff0c;有效支持线性代数&#xff0c;矩阵和矢量运算&#xff0c;数值分析及其相关的算法。 Eigen适用范围广&#xff0c;支持包括固定大小、任意大小的所有矩阵操作&#xff0c;甚至是稀疏矩阵&#xff1b;支持所有标准的数值类型&…

鲁鹏老师三维重建课程之单视图重建

配置Json环境 使用Jsoncpp包中的.cpp和 .h文件 解压上面下载的 Jsoncpp 文件&#xff0c;把 jsoncpp-src-0.5.0文件拷贝到工程目录下&#xff0c; 将 jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\include\json 和 jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\src\lib_json 目录里的文…

常用 Linux 软件汇总!很全,但不敢说最全

点击下方公众号「关注」和「星标」 回复“1024”获取独家整理的学习资料&#xff01; 音频 Airtime - Airtime 是一款用于调度和远程站点管理的开放广播软件 Ardour - 在 Linux 上录音&#xff0c;编辑&#xff0c;和混音 Audacious - 开源音频播放器&#xff0c;按你想要的方式…

RoadMap:面向自动驾驶视觉定位的轻量级语义地图(ICRA2021)

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 标题&#xff1a;RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者&#xff1a;Tong Qin, Yuxin Zheng, Tongqing Chen, Yilun Chen, and Qing Su 来源&#…

计算机图形学作业( 三):使用openGL画一个立方体,并实现平移、旋转和放缩变换

计算机图形学作业( 三):使用openGL画一个立方体,并实现平移、旋转和放缩变换 题目引入GLM库画立方体模型、观察和投影修改着色器立方体的顶点深度测试立方体变换平移旋转放缩渲染管线的理解代码题目 引入GLM库 利用 openGL 进行 3D 绘图需要用到大量的数学矩阵运算,而 Op…

一文掌握基于深度学习的自动驾驶小车开发(Pytorch实现,含完整数据和源码,树莓派+神经计算棒)

目录 一 . 基本介绍 二、模拟平台安装和基本使用 三、基于OpenCV的自动驾驶控制 3.1基于HSV空间的特定颜色区域提取 3.2基于canny算子的边缘轮廓提取 3.3感兴趣区域定位 3.4基于霍夫变换的线段检测 3.5动作控制&#xff1a;转向角 四、基于深度学习的自动驾驶控制 4.…

OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

&#xfeff;&#xfeff; 实验平台&#xff1a;win7&#xff0c;VS2010 先上结果截图&#xff08;文章最后下载程序&#xff0c;解压后直接运行BIN文件夹下的EXE程序&#xff09;&#xff1a; a.鼠标拖拽旋转物体&#xff0c;类似于OGRE中的“OgreBites::CameraStyle::CS_ORB…

Python-WingIde各种调试方法

一、 本地从IDE启动文件调试 主要步骤:设置断点,F5开始调试 二、 本地从IDE外启动文件调试 1.) 从WingIDE的安装目录(默认C:\Program Files (x86)\Wing IDE 6.0)复制wingdbstub.py到被调试代码所在目录 2.) 代码中添加importwingdbstub 3.) IDE左下角设置如图 4.) 在…

图形处理单元(GPU)的演进

CPU 和 GPU 好久没有更新了&#xff0c;最近在阅读 CUDA 相关的一些论文&#xff0c;因为都是碎片化阅读&#xff0c;容易导致读过后&#xff0c;可能过一段时间又忘记掉&#xff0c;所以决定抽时间翻译翻译阅读的论文&#xff0c;一方面增强自己记忆&#xff0c;一方面与大家共…

图形学 光栅化 matlab 源代码

实验二&#xff1a;直线的光栅化算法 DDA Bresenham 实验三&#xff1a;圆的光栅化算法 编程实现两种中点画圆算法&#xff0c;第2种算法利用二阶差分方法&#xff1b; 实验四&#xff1a;多边形扫描转换算法 4.1对多边形扫描线填充算法进行简要描述&#xff0c;并给出多边形扫…

图形学入门合集1

Games101作业0 1虚拟机的使用 1.1虚拟机的安装 这里我们使用 Oracle VM VirtualBox 虚拟机。如果你使用 Windows 系统&#xff0c;你可以直接下载[链接](https://download.virtualbo%20%09%09x.org/virtualbox/6.1.4/VirtualBox-6.1.4-136177-Win.exe)&#xff0c;下载完成后…

Recorder︱图像特征检测及提取算法、基本属性、匹配方法

在做图像的研究&#xff0c;发现对图像本质、内核以及可以提取的特征方式一点儿都不懂&#xff0c;赶紧补补课。 . 一、图像常用属性 本节指的是一般来说&#xff0c;图像处理的一些角度&#xff0c;也是根据一些美图软件最为关注的一些图像属性&#xff1a; 基本属性&#…

视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示

专栏系列文章如下&#xff1a; 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和E…

多视图几何三维重建实战系列之MVSNet

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 1. 概述 MVS是一种从具有一定重叠度的多视图视角中恢复场景的稠密结构的技术&#xff0c;传统方法利用几何、光学一致性构造匹配代价&#xff0c;进行匹配代价累积&#xff0c;再估计深度值。虽然传统方法有较…

一文搞懂NSCT(Nonsubsampled Contourlet)变换,matlab程序实现并讲解NSCT_TOOLBOX的使用方法

文章目录 一、前言二、NSCT理论背景三、NSCT图像表述3.1 图像变换综述3.2 非下采样的金字塔分解3.2 非下采样的方向滤波器组分解 四、NSCT的matlab程序实现五、总结5.1 NSCT现存不足5.2 致谢 一、前言 在这篇文章中我将从图像分解领域的发展方面为大家讲解NSCT的出现背景和实现…

视图几何三维重建实战系列之MVSNet

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 1. 概述 MVS是一种从具有一定重叠度的多视图视角中恢复场景的稠密结构的技术&#xff0c;传统方法利用几何、光学一致性构造匹配代价&#xff0c;进行匹配代价累积&#xff0c;再估计深度值。虽然传统方法有较…

[模板匹配霍夫变换]——模板匹配分析、霍夫变换分析

一、模板匹配分析 所谓模板匹配&#xff0c;就是在给定的图片中查找和模板最相似的区域&#xff0c;该算法的输入包括模板和图片&#xff0c;整个任务的思路就是按照滑窗的思路不断的移动模板图片&#xff0c;计算其与图像中对应区域的匹配度&#xff0c;最终将匹配度最高的区域…

计算机视觉学习第5章——多视图几何

目录 一、 外极几何 1.1 简单数据集 1.2 用Matplotlib绘制三维数据 1.3 计算F&#xff1a;八点法 1.4 外极点和外极线 二、照相机和三维结构的计算 2.1 三角部分 2.2 由三维点计算照相机矩阵 2.3 由基础矩阵计算照相机矩阵 三、多视图重建 3.1 稳健估计基础矩阵 …

Python计算机视觉——多视图几何

文章目录 第五章 多视图几何5.1 外极几何5.1.1 一个简单的数据集5.1.2 用Matplotlib绘制三维数据5.1.3 计算F&#xff1a;八点法5.1.4 外极点和外极线 5.2 照相机和三维结构的计算5.2.1 三角剖分5.2.2 由三维点计算照相机矩阵5.2.3 由基础矩阵计算照相机矩阵 5.3 多视图重建5.3…