Problem A: 交通工具信息
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 750 Solved: 421
[ Submit][ Status][ Web Board]
Description
有一个交通工具类vehicle,将它为 基类派生的有派生小车类car,卡车类truck和轮船类boat,定义这些类,并使其能够显示其各类交通工具的详细信息。
他们包含的信息,有如下几种:
1.名字 -----与输入的名字相符合
2.时速(km/h) -----最高时速
3.耗油量(L/100km) -----在经济时速下测得耗油量
小车类:
250km/h
14.8 L/100km
卡车类:
140km/h
18L/100km
轮船类:
50km/h
8.33L/100km
Input
输入三个派生类对应名字。
Output
输出对应类型的信息。
Sample Input
Mercedes_Benz
Transport_truck
Boat
Sample Output
Mercedes_Benz
250km/h
14.8L/100km
Transport_truck
140km/h
18L/100km
Boat
50km/h
8.33L/100km
AC代码:
#include <iostream> using namespace std; class Vehicle { public: Vehicle(); Vehicle(string sname) { name=sname; } void showinfo() { cout<<name<<endl; } private: string name; }; class Car :public Vehicle { public: void showinfo() { cout<<v<<"km/h"<<endl; cout<<q<<"L/100km"<<endl; } Car(string sname):Vehicle(sname),v(250),q(14.8){}; private: int v; double q; }; class Truck:public Vehicle { public: void showinfo() { cout<<v<<"km/h"<<endl; cout<<q<<"L/100km"<<endl; } Truck(string sname):Vehicle(sname),v(140),q(18){}; private: int v; double q; }; class Boat:public Vehicle { public: void showinfo() { cout<<v<<"km/h"<<endl; cout<<q<<"L/100km"<<endl; } Boat(string sname):Vehicle(sname),v(50),q(8.33){}; private: int v; double q; }; int main(){ Vehicle *vp; string name0,name1,name2; cin>>name0; Car car(name0); cin>>name1; Truck truck(name1); cin>>name2; Boat boat(name2); vp=&car; vp->showinfo (); Car *vp1; vp1=&car; vp1->showinfo(); vp=&truck; vp->showinfo (); Truck *vp2; vp2=&truck; vp2->showinfo(); vp=&boat; vp->showinfo (); Boat *vp3; vp3=&boat; vp3->showinfo(); return 0; }