?? 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 + -