⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vehicle.cpp

📁 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类 汽车类
💻 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=&semi;
  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 + -