Wanglihaoer 2022-03-24 11:08 采纳率: 100%
浏览 132
已结题

pta: 创建计算机(c++)

6-6 创建计算机 (10 分)
定义一个简单的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!

我的回答:

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

class CPU
{
    public:
        int rank;
        int frequency;
        int voltage;
        void showcpu()
        {   
            cout<<"cpu parameter:"<<endl;
            cout<<"rank:"<<rank<<endl;
            cout<<"frequency:"<<frequency<<endl;
            cout<<"voltage:"<<voltage<<endl;
        }
        ~CPU()
        {
            
            cout<<"desturct a CPU!"<<endl;
        }
};
class RAM
{
    public:
        int volumn;
        void showram()
        {
            cout<<"ram parameter:"<<endl;
            cout<<"volumn:"<<volumn<<" "<<"GB"<<endl;
        }
        ~RAM()
        {
            
            cout<<"desturct a RAM!"<<endl;
        }
};
class CDROM
{
    public:
        int speed;
        void showcdrom()
        {
            cout<<"cdrom parameter:"<<endl;
            cout<<"speed:"<<speed<<endl;
        }
        ~CDROM()
        {
            
            cout<<"destruct a CDROM!"<<endl;
        }
};
class COMPUTER
{
    public:
        COMPUTER(int a,int b,int c,int d,int e)
        {
            cpu.rank=a;
            cpu.frequency=b;
            cpu.voltage=c;
            ram.volumn=d;
            cdrom.speed=e;
            cout<<"create a CPU!"<<endl;
             cout<<"create a RAM!"<<endl;
            cout<<"create a CDROM!"<<endl;
            cout<<"create a COMPUTER with para!"<<endl;
        }

        COMPUTER()
        {
            cpu.rank=1;
            cpu.frequency=2;
            cpu.voltage=100;
            ram.volumn=1;
            cdrom.speed=16;
                cout<<"create a CPU!"<<endl;
             cout<<"create a RAM!"<<endl;
            cout<<"create a CDROM!"<<endl;
            cout<<"no para to create a COMPUTER!"<<endl;
        
        }
        COMPUTER(COMPUTER &m)
        {
            this->cpu.rank=m.cpu.rank;
            this->cpu.frequency=m.cpu.frequency;
            this->cpu.voltage=m.cpu.voltage;
            this->ram.volumn=m.ram.volumn;
            this->cdrom.speed=m.cdrom.speed;
                cout<<"create a CPU!"<<endl;
             cout<<"create a RAM!"<<endl;
            cout<<"create a CDROM!"<<endl;
            cout<<"create a COMPUTER by copy!"<<endl;
        }
        void showinfo()
        {  
            cpu.showcpu();
            ram.showram();
            cdrom.showcdrom();
        }
        ~COMPUTER()
        {
            
            cout<<"destruct a COMPUTER!"<<endl;
        }

        private:
            CPU cpu;
            RAM ram;
            CDROM cdrom;
};

遇到的问题:
在dev中可以运行

img


在pta中显示答案错误

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-24 11:26
    关注

    仔细对比一下就知道了啊, copy的那一段,你前面元器件构造都少了个copy字样

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月24日

悬赏问题

  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图