6-4 带USB接口的电脑

6-4 带USB接口的电脑

分数 10

全屏浏览题目

切换布局

作者 刘骥

单位 重庆大学

请设计一台具有USB接口的电脑(Computer),使得它能够通过USB

接口从硬盘(Disk)、摄像头(Camera)、扫描仪(Scanner)读取数据。
其中USB接口定义为:

 

class USB{ public: virtual void read()=0; virtual ~USB(){} };

构造的Computer需要通过如下测试程序:

 
#include<iostream>
using namespace std;
class USB{
    public:
        virtual void read()=0;
        virtual ~USB(){}
};


/* 请在这里填写答案 */

int main(){
    Computer computer;
    //从Disk读取
    USB* usb=new Disk();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    //从Camera读取
    usb=new Camera();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    //从Scanner读取
    usb=new Scanner();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    return 0;
}

输入样例:


输出样例:

从硬盘中读取数据
从摄像头中读取数据
从扫描仪中读取数据

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

别看这个答案很简单,但是这个题说的很不好,computer类是没有给出的,但是要是自己写了,会告诉你重定义所以很可恶....这就恰恰说明了出题人不仔细,老师也是照搬过来就叫我们写,不带多看几眼的.........

下面给出代码:

/*
class Computer :public USB
{
public:
    virtual void setUSB(USB* p)
    {
        m_p = p;
    }
    virtual void read()
    {
        m_p->read();
    }
private:
    USB* m_p;
};
*/
class Disk :public USB
{
public:
    virtual void read()
    {
        cout << "从硬盘中读取数据" << endl;
    }
};
class Camera :public USB
{
public:
    virtual void read()
    {
        cout << "从摄像头中读取数据" << endl;
    }
};
class Scanner :public USB
{
public:
    virtual void read()
    {
        cout << "从扫描仪中读取数据" << endl;
    }
};
/* 请在这里填写答案 */

我在上面注释掉的内容如果题中没有定义computer是可以调试成功并且答案通过的.

虽然不一定是我这样写,但是我觉得我写的是一定很简单的,应该是能看懂的。

下面给出完整代码:

#include <iostream>
#include <cstdio>
using namespace std;

class USB
{
public:
    virtual void read()=0;
    virtual ~USB(){}
};

class Computer:public USB
{
public:
    virtual void setUSB(USB *p)
    {
        m_p=p;
    }
    virtual void read()
    {
        m_p->read();
    }
private:
    USB *m_p;
};
class Disk:public USB
{
public:
    virtual void read()
    {
        cout<<"从硬盘中读取数据"<<endl;
    }
};
class Camera:public USB
{
public:
    virtual void read()
    {
        cout<<"从摄像头中读取数据"<<endl;
    }
};
class Scanner:public USB
{
public:
    virtual void read()
    {
        cout<<"从扫描仪中读取数据"<<endl;
    }
};
/* 请在这里填写答案 */

int main()
{
    Computer computer;
    //从Disk读取
    USB* usb=new Disk();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    //从Camera读取
    
    usb=new Camera();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    //从Scanner读取
    
    usb=new Scanner();
    computer.setUSB(usb);
    computer.read();
    delete usb;
    
    return 0;
}

用这个在自己的编译器上调试一定是对的。

说实话,这个题不太符合我的认知。因为下面的main函数里面是调用不是usb->read();而是computer.read();如果是正常我们写的话我感觉应该是前者,因为后者调用是不会调用到派生类的read()的。

所以如果是我自己写这个题,我会把下面的main函数稍微改一下,见下面代码:

#include <iostream>
#include <cstdio>
using namespace std;

class USB
{
public:
    virtual void read() = 0;
    virtual ~USB() {}
};
class Computer :public USB
{
public:
    void setUSB(USB* usb)
    {
        return;
    }
    void read()
    {
        return;
    }

};
class Disk :public Computer
{
public:
    virtual void read()
    {
        cout << "从Disk读取" << endl;
    }
};
class Camera :public Computer
{
public:
    virtual void read()
    {
        cout << "从Camera读取" << endl;
    }
};
class Scanner :public Computer
{
public:
    virtual void read()
    {
        cout << "从Scanner读取" << endl;
    }
};

/* 请在这里填写答案 */

int main()
{
    Computer computer;
    //从Disk读取
    USB* usb = new Disk();
    computer.setUSB(usb);
    usb->read();
    //computer.read();
    delete usb;
    //从Camera读取
    usb = new Camera();
    computer.setUSB(usb);
    usb->read();
    //computer.read();
    delete usb;
    //从Scanner读取
    usb = new Scanner();
    computer.setUSB(usb);
    usb->read();
    //computer.read();
    delete usb;
    return 0;
}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: SR-710是一种常见的USB接口类型,常用于电子设备和计算机之间的数据传输和充电。 SR-710接口采用了USB 3.0技术,具有更快的数据传输速度和更高的充电功率。相对于旧版的USB 2.0接口,SR-710接口的传输速度可以达到5Gbps,是其两倍以上。这意味着可以更快地传输大量数据,如音频、视频文件。同时,SR-710还向后兼容USB 2.0设备,因此可以与旧设备无缝连接。 另外,SR-710接口还支持双向供电功能,即可以将电源从计算机输送到设备,也可以将电源从设备输送到计算机。这使得通过SR-710接口连接的设备可以充电或供电给计算机,使其更加方便实用。 此外,SR-710接口还支持热插拔功能,即可以在设备运行的情况下插入或拔出USB连接线,而不会对设备造成任何损害。这使得用户可以随时方便地连接或断开设备,无需重启或关闭设备。 总的来说,SR-710是一种高速、高功率的USB接口,通过它可以实现电子设备和计算机之间的快速数据传输和便捷充电。 ### 回答2: SR-710是一种USB接口设备。USB(通用串行总线)接口是一种常见的电脑和其他电子设备之间进行数据传输和连接的标准接口。 SR-710是一款高速USB 3.0 Hub,具有多个USB接口,可用于扩展计算机的USB连接数量。通过SR-710,用户可以将多个USB设备连接到计算机,例如打印机、鼠标、键盘、像头、外部硬盘驱动器等等。这种高速传输的接口可以提供更快的数据传输速度和更稳定的连接。 SR-710还可能支持USB充电功能,允许用户通过USB接口充电移动设备,例如智能手机或平板电脑。这方便了用户在同一时间内进行设备充电和数据传输。此外,SR-710还可能具有其他功能,如可调节的LED指示灯,用于显示设备连接状态。 总结而言,SR-710是一种USB接口设备,可用作高速USB 3.0 Hub。它提供多个USB接口,用于连接和扩展计算机的USB设备数量,并且可能支持USB充电功能。通过SR-710,用户可以方便地同时进行数据传输和设备充电。 ### 回答3: SR-710是一种常见的USB接口类型。USB(Universal Serial Bus)是一种常见的电脑外部设备连接标准,用于连接各种外部设备和计算机,如键盘、鼠标、打印机、像头等。 SR-710是指支持USB 3.0标准的接口。相对于之前的USB 2.0接口USB 3.0接口具有更高的传输速度和更高的功率传输能力。USB 3.0接口的传输速度可以达到5Gbps(Gigabits per second),比USB 2.0的480Mbps(Megabits per second)传输速度快10倍。这使得数据传输更加快速和高效。 SR-710 USB接口具有向下兼容性,这意味着它可以与USB 2.0和USB 1.1等之前的USB接口版本进行通信和连接。这为用户提供了更大的灵活性和便利性,因为他们可以同时使用各种不同版本的USB设备。 在SR-710 USB接口中,有四个物理连接线路:两个用于数据传输(一个用于上行数据,一个用于下行数据),一个用于电源传输,一个用于地线。这些线路允许设备之间进行双向通信和数据传输,同时还提供给连接设备所需的电力。 总之,SR-710 USB接口是一种高速、高效的USB 3.0接口类型,可以与各种USB设备连接和通信。它提供了更大的传输宽和更高的功率传输能力,为用户提供快速和便利的外部设备连接体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值