Problem C: 不同交通工具的速度
来源:互联网 发布:数据库设计原则和步骤 编辑:程序博客网 时间:2024/05/20 16:36
Problem C: 不同交通工具的速度
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1685 Solved: 765
[Submit][Status][Web Board]
Description
不同交通工具的速度是不同的。针对自行车、摩托车和汽车分别建立类,来模拟这一情况。
定义Vechicle类,是所有交通工具的父类:
1. 属性int speed表示交通工具的一般速度。
2. 静态数据成员int numOfVechicles,表示创建的交通工具的数量。这个值只增不减。
3. 静态成员函数int getNumOfVechicles(),用于获取交通工具的数量。
4. 析构函数。输出“A vechicle is deleted.”
5. 纯虚函数void show().
定义Bike、MotoBike和Car三个类,它们都是Vechicle的子类,且具有:
1. 构造函数。
2. 重写show()函数,输出“A *'s speed is ? km/h.”,其中“*”是bike、motobike或car,根据所在类不同而不同。“?”是speed属性的值。
3. 析构函数。输出“A * is deleted.”,“*”的含义同上。
定义Person类,表示司机:
1. 数据成员string name,是人的姓名。
2. void drive(Vechicle&)方法,输出“$ drives”, 并调用Vechicle类的show()方法。其中“$”是name的值。
Input
第1行N>0,表示有N个测试用例。
每个测试用例包括一个不含空白符的字符串、一个字符和一个整数。
Output
见样例及题目描述。
Sample Input
3Tom B 15Jack M 50Mary C 100
Sample Output
In beginning, we have 0 vechicles.Tom drives. A bike's speed is 15km/h.A bike is deleted.A vechicle is deleted.Jack drives. A motobike's speed is 50km/h.A motobike is deleted.A vechicle is deleted.Mary drives. A car's speed is 100km/h.A car is deleted.A vechicle is deleted.At the end, we have 3 vechicles.
#include <bits/stdc++.h>using namespace std;class Vechicle{public: int speed; Vechicle(int speed):speed(speed){numOfVechicle++;} static int numOfVechicle; static int getNumOfVechicles() { return numOfVechicle; } virtual void show()=0; virtual~Vechicle(){cout<<"A vechicle is deleted."<<endl;}};class Bike:public Vechicle{public: Bike(int _s):Vechicle(_s){} void show() { cout<<"A bike's speed is "<<speed<<"km/h."<<endl; } ~Bike(){cout<<"A bike is deleted."<<endl;}};class MotoBike:public Vechicle{public: MotoBike(int _s):Vechicle(_s){} void show() { cout<<"A motobike's speed is "<<speed<<"km/h."<<endl; } ~MotoBike(){cout<<"A motobike is deleted."<<endl;}};class Car:public Vechicle{public: Car(int _s):Vechicle(_s){} void show() { cout<<"A car's speed is "<<speed<<"km/h."<<endl; } ~Car(){cout<<"A car is deleted."<<endl;}};class Person{public: string name; Person(string name):name(name){} void drive(Vechicle &v){cout<<name<<" drives. ";v.show();}};int Vechicle::numOfVechicle=0;int main(){ int cases, n; char c; string name; Vechicle* vechicle; cout<<"In beginning, we have "<<Vechicle::getNumOfVechicles()<<" vechicles."<<endl; cin>>cases; for (int i = 0; i < cases; i++) { cin>>name>>c>>n; Person person(name); switch (c) { case 'B': vechicle = new Bike(n); break; case 'M': vechicle = new MotoBike(n); break; case 'C': vechicle = new Car(n); break; } person.drive(*vechicle); delete vechicle; } cout<<"At the end, we have "<<Vechicle::getNumOfVechicles()<<" vechicles."<<endl; return 0;}
0 0
- Problem C: 不同交通工具的速度
- Problem C: 不同交通工具的速度
- Problem C: 不同交通工具的速度
- Problem D: 不同交通工具的速度
- Problem C: 输出不同进制的数
- 未来的交通工具(图)
- 交通工具的未来
- 未来的概念交通工具
- YTU-OJ-Problem G: 交通工具信息
- 交通工具
- 交通工具
- 交通工具
- 交通工具
- 关于C++中vector的不同访问方式的速度以及++C与C++
- 关于C++中vector的不同访问方式的速度以及++C与C++
- 1.请定义一个交通工具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,方法:移动(move())、设置速度(setSpeed(int speed))、加速 spee
- 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等 方法:移动(move()),设置速度(setSpeed(int speed)),设置体积(set
- 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等 方法:移动(move()),设置速度(setSpeed(int speed)),设置体积(s
- 使用 DelegatingActionProxy
- Problem B: 来开个书店吧
- zabbix之告警杂谈(钉钉告警)
- C#中的excel操作
- linux split
- Problem C: 不同交通工具的速度
- mysql集群--读写分离
- 关于字符串,数组,对象的一些小方法
- Yaf封装MySQL
- jQuery中的事件与动画
- Problem E: 图形计数与求面积
- 驱动程序调试(一)————打印: prink, 自制proc文件
- 搭建 Jenkins 持续集成环境
- HDU 1151 Air Raid 最小路径覆盖,二分图匹配匈牙利算法(邻接表存关系)处理有向图