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中可以运行
在pta中显示答案错误