📄 vehicle.cpp
字号:
#include <iostream>
#include <string>
using namespace std;
//交通工具类型
enum Vehicle_Type {car,truck};
//交通工具颜色
enum Color {red,blue,green,black,white,gray,ivory};
string colorName[]={"红","蓝","绿","黑","白","灰","乳白"};
//交通工具Vehicle类
class Vehicle {
private:
Vehicle_Type type; //交通工具类型
string name; //名称
Color color; //颜色
float fuelcap; //燃料箱容量
float cpkm; //燃料消耗量
public:
//类Vehicle的构造函数
Vehicle(Vehicle_Type vt,string n,Color c,float f,float m) {
type=vt;
name=n;
color=c;
fuelcap=f;
cpkm=m;
}
//存取函数
Vehicle_Type get_type() const { return type; }
Color get_color() const { return color; }
string get_name() const { return name; }
float get_fuelcap() const { return fuelcap; }
float get_cpkm() const { return cpkm; }
//(交通工具)可行驶里程范围
float range() const { return 100*fuelcap/cpkm; }
//显示交通工具的相关信息(虚函数)
virtual void show() const {
cout<<(type==car?"轿车":"卡车");
cout<<"["<<name<<"]";
cout<<"的颜色:"<<colorName[color]<<"色"<<endl;
cout<<" 燃料箱容量:"<<fuelcap<<"升,";
cout<<"百公里耗油:"<<cpkm<<"升,";
cout<<"可行驶总里程:"<<range()<<"公里"<<endl;
}
//纯虚函数(获得交通工具的容量)
virtual int get_capacity() =0;
};
class Car : public Vehicle {
private:
int passengers; //载客数
public:
Car(Vehicle_Type vt,string n,Color c,float f,float m,int p)
:Vehicle(vt,n,c,f,m) {
passengers = p;
}
//存取函数
int get_capacity() { return passengers; }
//显示交通工具的相关信息
void show() const {
Vehicle::show();
cout<<" 载客数:"<<passengers<<"人"<<endl;
}
};
class Truck : public Vehicle {
private:
int cargocap; //载重量
public:
Truck(Vehicle_Type vt,string n,Color c,float f,float m,int cc)
:Vehicle(vt,n,c,f,m) {
cargocap = cc;
}
//存取函数
int get_capacity() { return cargocap; }
//显示交通工具的相关信息
void show() const {
Vehicle::show();
cout<<" 载重量:"<<cargocap<<"公斤"<<endl;
}
};
void main() {
Vehicle *vp;
Car tian(car,"tian",red,60,8,7);
Car jeep(car,"jeep",ivory,70,15,4);
Truck semi(truck,"semi",white,200,20,44000);
Truck pickup(truck,"pickup",blue,28,15,2000);
vp=&tian;
vp->show();
cout<<" "<<vp->get_name()<<"的载客数:";
cout<<vp->get_capacity()<<endl;
vp=&jeep;
vp->show();
cout<<" "<<vp->get_name()<<"的载客数:";
cout<<vp->get_capacity()<<endl;
vp=;
vp->show();
cout<<" "<<vp->get_name()<<"的载重量:";
cout<<vp->get_capacity()<<endl;
vp=&pickup;
vp->show();
cout<<" "<<vp->get_name()<<"的载重量:";
cout<<vp->get_capacity()<<endl;
}
/*
该程序的输出为:
轿车[tian]的颜色:红色
燃料箱容量:60升,百公里耗油:8升,可行驶总里程:750公里
载客数:7人
tian的载客数:7
轿车[jeep]的颜色:乳白色
燃料箱容量:70升,百公里耗油:15升,可行驶总里程:466.667公里
载客数:4人
jeep的载客数:4
卡车[semi]的颜色:白色
燃料箱容量:200升,百公里耗油:20升,可行驶总里程:1000公里
载重量:44000公斤
semi的载重量:44000
卡车[pickup]的颜色:蓝色
燃料箱容量:28升,百公里耗油:15升,可行驶总里程:186.667公里
载重量:2000公斤
pickup的载重量:2000
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -