OJ 1781 Problem A 驾驶员与汽车

Java sdut acm 3869购物车 题目链接:点击打开链接 购物车 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 各位亲爱的小伙伴们,大家好! 欢迎来到美美自助购物商场,首先请您帮忙建立商品信息,然后选购商品、确定数量,计算出总价格到结算中心进行结算。美美祝您购物愉快噢! 首先读取N行商 阅读详情

Description

我们知道,目前我国的驾照大致可分为A、B、C三种,其中C证只能开小型客车(货车),B证可开中、小型客车(货车),A证没有限制。现在请定义如下几个类:

  1. Automobile:抽象类,具有数据成员double speed,纯虚函数virtual void run() const = 0。

  2. 六种车型,即小型车Benz、Buick;中型车Zhongba、Beiqi;以及大型车Dayu、Jianghuai。它们都是Automobile的子类。

  3. Driver类,具有string name和char type两个数据成员,前者是司机的名字,后者是司机持有的驾照类型(A、B或C)。提供Drive(Automobile
    *)方法,根据驾照类型判定该司机是否可以驾驶指定的汽车。

Input

输入分多行。第一行是一个整数M>0,表示之后有M个测试用例。

每个测试用例包括四部分:司机姓名(不含空白符)、驾照类型(A、B或C)、车型(分别用字母a~f表示六种车型,对应的车型可以从main()中看出)以及该车的行驶速度(double类型范围内的正数)。

Output

输出共M行,每个测试用例对应一行输入,具体格式参见样例。

Sample Input

4
zhangsan C a 100.33
lisi C d 100.33
wangwu B f 100.33
Tom A e 300.00

Sample Output

Driver zhangsan can drive Benz at speed of 100.33km/h.
A Benz is erased!
An automobile is erased!
Driver lisi cannot drive bus.
A Beiqi is erased!
An automobile is erased!
Driver wangwu cannot drive large bus.
A Jianghuai is erased!
An automobile is erased!
Driver Tom can drive Dayu at speed of 300.00km/h.
A Dayu is erased!
An automobile is erased!

HINT

1.使用typeid来判定一个基类指针实际指向的对象的类型。

2.注意:append.cc中已经给出了Driver类的一个方法,不要在Driver类重复定义了。

Append Code

int main()
{
    string name;
    char type;
    double speed;
    char automobileType;
    int cases;
    Automobile *automobile;


    cin>>cases;
    for (int i = 0; i < cases; i++)
    {
        cin>>name>>type>>automobileType>>speed;
        Driver driver(name, type);
        switch (automobileType)
        {
        case 'a':
            automobile = new Benz(speed);
            break;
        case 'b':
            automobile = new Buick(speed);
            break;
        case 'c':
            automobile = new Zhongba(speed);
            break;
        case 'd':
            automobile = new Beiqi(speed);
            break;
        case 'e':
            automobile = new Dayu(speed);
            break;
        case 'f':
            automobile = new Jianghuai(speed);
            break;
        }
        driver.Drive(automobile);
        delete automobile;
    }
    return 0;
}

Accepted Code

/**
 *  OJ 作业九
 *  2020年6月5日07:55:51
 */
#include <iostream>
#include <string>
#include <iomanip>
#include <typeinfo>
using namespace std;

class Automobile {
protected:
    double speed;
public:
    Automobile(double v = 0) : speed(v) {}
    virtual ~Automobile() { cout << "An automobile is erased!\n"; }
    virtual void run() const = 0;
};

class Benz : public Automobile {
public:
    Benz(double v) : Automobile(v) {}
    ~Benz() { cout <<"A Benz is erased!\n"; }
    void run() const { cout << fixed << setprecision(2) << "Benz at speed of " << speed << "km/h.\n"; }
};

class Buick : public Automobile {
public:
    Buick(double v) : Automobile(v) {}
    ~Buick() { cout <<"A Buick is erased!\n"; }
    void run() const { cout << fixed << setprecision(2) << "Buick at speed of " << speed << "km/h.\n"; }
};
class Zhongba : public Automobile {
public:
    void run() const { cout << fixed << setprecision(2) << "Zhongba at speed of " << speed << "km/h.\n"; }
    Zhongba(double v) : Automobile(v) {}
    ~Zhongba() { cout <<"A Zhongba is erased!\n"; }
};

class Beiqi : public Automobile {
public:
    void run() const { cout << fixed << setprecision(2) << "Beiqi at speed of " << speed << "km/h.\n"; }
    Beiqi(double v) : Automobile(v) {}
    ~Beiqi() { cout <<"A Beiqi is erased!\n"; }
};

class Dayu : public Automobile {
public:
    void run() const { cout << fixed << setprecision(2) << "Dayu at speed of " << speed << "km/h.\n"; }
    Dayu(double v) : Automobile(v) {}
    ~Dayu() { cout <<"A Dayu is erased!\n"; }
};

class Jianghuai : public Automobile {
public:
    void run() const { cout << fixed << setprecision(2) << "Jianghuai at speed of " << speed << "km/h.\n"; }
    Jianghuai(double v) : Automobile(v) {}
    ~Jianghuai() { cout <<"A Jianghuai is erased!\n"; }
};
class Driver {
private:
    string name;
    char type;
public:
    void Drive(Automobile *automobile);
    Driver(string n, char t) : name(n), type(t) {}
};
void Driver::Drive(Automobile *automobile)
{
    switch (type)
    {
    case 'A':
        cout<<"Driver "<<name<<" can drive ";
        automobile->run();
        break;
    case 'B':
        if (typeid(*automobile) == typeid(Dayu) || typeid(*automobile) == typeid(Jianghuai))
            cout<<"Driver "<<name<<" cannot drive large bus."<<endl;
        else
        {
            cout<<"Driver "<<name<<" can drive ";
            automobile->run();
        }
        break;
    case 'C':
        if (typeid(*automobile) != typeid(Benz) && typeid(*automobile) != typeid(Buick))
            cout<<"Driver "<<name<<" cannot drive bus."<<endl;
        else
        {
            cout<<"Driver "<<name<<" can drive ";
            automobile->run();
        }
        break;
    }
}
模拟渡口(MFC实现) 说明:某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分别为客车类和货车类,上车有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。 立即下载

相关推荐

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本征矩阵,单应矩阵梳理)附c++源码

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本质矩阵,单应矩阵梳理)附c++源码对极几何是什么,它有什么用(整体流程理解)对极约束(描述两相机关系)基础矩阵特性与求解方法本质矩阵特性与求解方法相机姿态恢复方法怎么又冒出了个单应矩阵H? 对极几何是什么,它有什么用(整体流程理解) 如图,当空间上有一个点分别在相机1和相机2上进行成像,这两个点存在什么变换关系呢?再扩展一下,真实世界下的场景分别用两个相机进行拍摄,获得两张照片,两张照片有什么变换关系呢?那么对极几何就是用来描述这种变换关系的。

qq_37764141的博客 5104

Problem B: 驾驶员与汽车

Problem B: 驾驶员与汽车 Description 我们知道,目前我国的驾照大致可分为A、B、C三种,其中C证只能开小型客车(货车),B证可开中、小型客车(货车),A证没有限制。现在请定义如下几个类: 1. Automobile:抽象类,具有数据成员double speed,纯虚函数virtual void run() const = 0。 2. 六种车型,即小型车Benz

hao_zong_yin的博客 1576

机械臂学习:视觉引导——绪论

视觉引导 = 定位 + 引导定位:视觉系统定位到待引导的物体引导:视觉系统引导机械臂按需要的轨迹实现一定的工艺流程(过度点:人为指定机械臂的轨迹防止碰撞)(点云匹配:解决位姿估计姿态估计的问题)无序抓取的三个核心技术:3d识别(图中的点云匹配) 抓取方法路径规划(防止机械臂的碰撞,如自身碰撞等)如果只有同一高度的平移和旋转,其实并不需要点云,用单目就可以做,但是如果涉及到物体的倾斜以及高度的变换,那就是单目力所不能及,所以就是第三种情况:平移旋转加垫高。

2303_80018785的博客 4047

驾驶员与汽车

Description 我们知道,目前我国的驾照大致可分为A、B、C三种,其中C证只能开小型客车(货车),B证可开中、小型客车(货车),A证没有限制。现在请定义如下几个类: Automobile:抽象类,具有数据成员double speed,纯虚函数virtual void run() const = 0。 六种车型,即小型车Benz、Buick;中型车Zhongba、Beiqi;以及大型车...

fighting123678的博客 662

大疆M3508电机使用CAN通信进行速度PID闭环控制详解

目录一. 简介二. 电机通信协议三. 电机PID控制原理四. 官方代码移植-中断接收五. 官方代码移植-查询接收 一. 简介 之前写过一篇文章STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法,其中是以大疆的M3508电机为例进行讲解的(没错,就是RoboMaster机器人同款电机,不过Robomaster上的电机好像是小一号的M2006)。不少小伙伴私信问我要代码,我都回复说不是有官方demo么。后来问的人多了我大概明白了,看来官方的Demo还是有点门槛。可能是带FreeRTOS操作系统看

qq_30267617的博客 7万+

高级图像增强——模拟雨天,雾,雪,阳光,阴影,运动模糊,畸变等14种效果,同步扩充标签文件

本文提供了一些高级的,特殊的图像增强方法,具体包括、光。

Limiiiing的博客 1308

【Java面向对象编程——司机开车】

文章目录(一)编程实现1、创建汽车接口2、创建司机类3、创建测试司机类4、运行程序,查看结果5、修改TestDriver类,演示匿名内部类6、运行程序,查看结果(二)知识点讲解1、成员内部类2、局部内部类定义3、静态内部类定义4、匿名内部类(三)拓展练习任务1、使用成员内部类实现学生使用各种类型计算机的场景任务2、使用匿名内部类实现学生使用各种类型计算机的场景 创建Car接口 创建Driver类 创建测试类TestDriver 1、基于Car接口创建成员内部类对象作为参数传给驾驶员对象

qq_67308035的博客 1986

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 581

java 多态详解_java之多态详解

前言什么叫多态?多态就是一种事物可以有多种表现形式多态三要素1.被动方必须有继承关系2.子类一般都要重写父类方法3.必须将主动方的功能函数的参数设置为 被动方父类的类型举个例子司机开车假如说司机会开汽车 我们需要定义个汽车的类 然后在司机类中添加会开汽车的的方法假如说司机会开卡车 我们需要再定义一个卡车的类 然后在司机类中添加会开卡车的方法下面看下传统的调用方式 代码如下:class Ca...

weixin_31201481的博客 280

PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

这篇论文介绍了一种名为PointCNN的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。为了解决这一问题,论文提出了一种X-Conv操作。该方法通过学习一种来重新排列点云中的点并加权输入特征。然后,将典型的卷积操作应用于转换后的特征。这种方法将传统的 CNN 扩展到点云特征学习,并命名为PointCNN。

u012901740的博客 2300

YOLOv8自定义训练:车牌识别全流程(从标注到推理,附可视化代码)

车牌检测全流程实践指南 摘要:本文详细介绍了基于YOLOv8的车牌检测完整实现方案。针对车牌检测中的三大难点(小目标、多角度、光照变化),提供了从数据准备到模型部署的全流程解决方案。重点包括:1)数据采集与标注规范;2)针对小目标的YOLOv8模型优化配置;3)K-means锚框聚类方法;4)训练参数调优策略。通过实际验证,该方法可获得95%以上的检测准确率,并附有完整的代码实现和可视化工具,便于开发者快速复现应用。 (字数:149字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 850

深入剖析Python venv创建失败:从Error: exit status 1到环境完美构建

本文深入分析了Python venv创建失败的原因,特别是Error: exit status 1报错的常见场景,包括ensurepip模块缺失、网络连接问题和Python版本兼容性。提供了从临时解决方案到彻底修复的分步指南,并分享了预防措施与最佳实践,帮助开发者完美构建虚拟环境。

weixin_30414305的博客 477

DeepSeek 赋能招投标全流程智能化:多模态解析、知识图谱与投标文件自动生成实战指南(附完整代码与行业案例)

摘要:本文深入探讨DeepSeek技术在招投标领域的全流程智能化应用,通过整合自然语言处理(NLP)、多模态解析、知识图谱等核心技术,实现招标文件智能解析与投标文件自动生成。文中详细解析DeepSeek-R1模型的多模态处理机制、动态知识图谱构建方法及智能模板填充算法,通过完整代码实现展示技术细节。结合广某资源交易平台、山西XX"XX云"等典型案例,验证技术方案在提升招投标效率、降低人为错误方面的显著效果。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1463

Problem A: 驾驶员与汽车

Problem A: 驾驶员与汽车 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 2490  Solved: 1046 [Submit][Status][Web Board] Description 我们知道,目前我国的驾照大致可分为A、B、C三种,其中C证只能开小型客车(货车),B证可开中、小型客车(货车),A证没有限制。现在请

blood_kyo的博客 1284

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java中的“多态”

多态性(Polymorphism)在实际中的含义就是不同的对象有相同的轮廓或形态,但具体执行的过程却大相径庭。例如,驾驶员在开车时都知道“遇到红灯时刹车”,这与驾驶员驾驶的是什么型号的车无关,所有的车都具有相同的轮廓或形态的刹车。       在Java开发中,基于继承的多态就是指对象功能的调用者用超类的引用来进行方法调用。这样,可以提高灵活性,因为用超类的引用能调用各种不同的子类实现,就像汽车

ccfxue的博客 575

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vue 列表单个元素的显示和隐藏

项目中有这样一个列表: 我想通过代码来控制是上传还是删除 但如果常规方法给列表项加v-if的话,三个位置的“上传”不能单独控制,只能三个一起变。因为三个当中的v-if判断条件都是一样的。 想要做到单独控制,就需要在v-if的条件里面做文章: 像上面这样,每个列表项都有一个对应的record,这里分别为record1、record2、record3 事先在data()中定义一个变量isFileUpShow,用来控制“上传”的显示和隐藏: 这样操作一下,初始时v-if中的条件 “isFileUpSho

qq_41409120的博客 1833

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

**Android Studio 一直处于waiting for target device to come online 的解决办法*

Android Studio 一直处于waiting for target device to come online 的解决办法 前天导入小组的项目时出现了这个问题,百度了很多博客贴吧,试过很多种方法都不起作用。直到昨天看到一篇文章,遇到的和我一样的问题。解决方法如下图: 将这个两个文件夹删除,然后重新打开Android Studio,重新下载SDK,完成后就不会提示这个错误了。当然这只是我的...

qq_41409120的博客 6184

山东科技大学2020年6月8日实验题解

山东科技大学2020年6月8日实验题解 题目一: 农夫果园 Description 秋天到了,果园里的水果成熟了,商贩们来收水果了,农夫们都希望自己的水果能卖个好价钱。 现在果园里有三种水果正在销售,苹果(Apple)、香蕉(Banana)、梨(Pear)。每次销售都会记录下水果的种类、单价和总量,input()函数可以读取每条销售记录的单价和总量,total()函数可以计算出这次销售的总价。 但是,销售员在记录时忙中出错,各中水果的单价和总量的单位没有统一。单价是每公斤的价格,而水果是按箱记录的。其中,苹

a1351937368的博客 775

Java抽象类

什么是抽象?百度给出的解释是:从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。这句话概括了抽象的概念,而在Java中,你可以只给出方法的定义不去实现方法的具体事物,由子类去根据具体需求来具体实现。这种只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。包含一个或多个抽象方法...

xkfanhua的博客 6225

东华oj-进阶题第84题-摩托车

84 摩托车 作者: ZhouMingLIang时间限制: 10S章节: 结构体 问题描述 : 明明是一家摩托车厂的老板,他的厂为了迎合市场中不同消费者的需求,会生产不同型号的摩托车,这为明明的厂带来了不小的收益。有一次,一位大客户来到明明的厂洽谈生意,他需要采购一批型号各不相同的摩托车,然后他把需要的摩托车的型号告诉了明明,接着明明就需要在他所生产的摩托车中寻找到型号匹配的,如果有则卖给那个客户...

qq_41409120的博客 1111

json spr路驾驶技术视频api_驾驶证识别

param = new HashMap();try {param.put("pic", getBase64(pic));result = HttpUtil.sendPost(url, param, "UTF-8");System.out.println(result);JSONObject json = JSONObject.fromObject(result);if (json.getInt("...

weixin_39712821的博客 224

No mapping found for HTTP request with URI的解决方法

今天在这个地方卡了一下午,百度搜了下,原来好多人都遇到了这个问题,有的朋友还卡在这里一整天,这么说来我算好的哈哈。有必要记录下解决方法 首先将项目从tomcat移除,然后双击tomcat 然后修改这两个地方,其中第二个就是在tomcat的安装目录里面的webapps 改完之后重新把项目加到里面启动服务器就行了 感谢大神的经验贴 https://blog.youkuaiyun.com/dbc_121/ar...

qq_41409120的博客 4800

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 250
上一篇: OJ 2212 Problem A 杯子
下一篇: OJ 1783 Problem B 来开个书店吧
LiuLin_Hao
博客等级 码龄7年 78粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值