他们说答案在路上

题目:创建计算机

定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,注意使用类组合的思想解决该问题,使得给出的主函数代码可以正确运行并得到给出的输出结果。

函数接口定义:

根据要求写出类的实现代码

裁判测试程序样例:

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

在这里给出函数被调用进行测试的例子。例如:

int main()
{
    COMPUTER cpt1(6,4.0,200,60,32);  //测试带参数构造
    cout<<"cpt1's parameter:"<<endl;
    cpt1.showinfo();
    cout<<"------------------------------"<<endl;
    COMPUTER cpt2; //测试不带参数构造
    cout<<"cpt2's parameter:"<<endl;
    cpt2.showinfo();
    cout<<"------------------------------"<<endl;
    COMPUTER cpt3(cpt1); //测试复制构造
    cout<<"cpt3's parameter:"<<endl;
    cpt3.showinfo();
    cout<<"------------------------------"<<endl;    
}

输入样例:

输出样例:

在这里给出相应的输出。例如:

create a CPU!
create a RAM!
create a CDROM!
create a COMPUTER with para!
cpt1's parameter:
cpu parameter:
rank:6
frequency:4
voltage:200
ram parameter:
volumn:60 GB
cdrom parameter:
speed:32
------------------------------
create a CPU!
create a RAM!
create a CDROM!
no para to create a COMPUTER!
cpt2's parameter:
cpu parameter:
rank:1
frequency:2
voltage:100
ram parameter:
volumn:1 GB
cdrom parameter:
speed:16
------------------------------
create a CPU by copy!
create a RAM by copy!
create a CDROM by copy!
create a COMPUTER by copy!
cpt3's parameter:
cpu parameter:
rank:6
frequency:4
voltage:200
ram parameter:
volumn:60 GB
cdrom parameter:
speed:32
------------------------------
destruct a COMPUTER!
destruct a CDROM!
desturct a RAM!
desturct a CPU!
destruct a COMPUTER!
destruct a CDROM!
desturct a RAM!
desturct a CPU!
destruct a COMPUTER!
destruct a CDROM!
desturct a RAM!
desturct a CPU!
 

 

代码长度限制                                                                                                                  16 KB

时间限制                                                                                                                       400 ms

内存限制                                                                                                                         64 MB

#include <iostream>
using namespace std;
class CPU
{
private:
    int rank;
    int frequency;
    float voltage;
public:
    CPU()
    {
        cout<<"create a CPU!"<<endl;
        rank=1;
        frequency=2;
        voltage=100;
    }
    CPU(int r,int f,float v):rank(r),frequency(f),voltage(v)
    {
        cout<<"create a CPU!"<<endl;
    }
    CPU(CPU &a)
    {
        cout<<"create a CPU by copy!"<<endl;
        rank=a.rank;
        frequency=a.frequency;
        voltage=a.voltage;
    }
    ~CPU()
    {
        cout<<"desturct a CPU!"<<endl;
    }
    void showinfo()
    {
        cout<<"cpu parameter:"<<endl;
        cout<<"rank:"<<rank<<endl;
        cout<<"frequency:"<<frequency<<endl;
        cout<<"voltage:"<<voltage<<endl;
    }
};
class RAM
{
private:
    int volumn;
public:
    RAM()
    {
        cout<<"create a RAM!"<<endl;
        volumn=1;
    }
    RAM(int v):volumn(v)
    {
        cout<<"create a RAM!"<<endl;
    }
    RAM(RAM &b)
    {
        cout<<"create a RAM by copy!"<<endl;
        volumn=b.volumn;
    }
    ~RAM()
    {
        cout<<"desturct a RAM!"<<endl;
    }
    void showinfo()
    {
        cout<<"ram parameter:"<<endl;
        cout<<"volumn:"<<volumn<<" GB"<<endl;
    }
};
class CDROM
{
private:
    int speed;
public:
    CDROM()
    {
        cout<<"create a CDROM!"<<endl;
        speed=16;
    }
    CDROM(int s):speed(s)
    {
        cout<<"create a CDROM!"<<endl;
    }
    CDROM(CDROM &c)
    {
        cout<<"create a CDROM by copy!"<<endl;
        speed=c.speed;
    }
    ~CDROM()
    {
        cout<<"destruct a CDROM!"<<endl;
    }
    void showinfo()
    {
        cout<<"cdrom parameter:"<<endl;
        cout<<"speed:"<<speed<<endl;
    }
};
class COMPUTER
{
private:
    CPU cpu;
    RAM ram;
    CDROM cdrom;
public:
    COMPUTER()
    {
        cout<<"no para to create a COMPUTER!"<<endl;
    }
    COMPUTER(int r,int f,float v,int vo,int s):cpu(r,f,v),ram(vo),cdrom(s)
    {
        cout<<"create a COMPUTER with para!"<<endl;

    }
    COMPUTER(COMPUTER &d):cpu(d.cpu),ram(d.ram),cdrom(d.cdrom)
    {
        cout<<"create a COMPUTER by copy!"<<endl;
    }
    void showinfo()
    {

        cpu.showinfo();
        ram.showinfo();
        cdrom.showinfo();
    }
    ~COMPUTER()
    {
        cout<<"destruct a COMPUTER!"<<endl;
    }
};

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值