C++类和对象——6-5 创建计算机 (10分)
定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,注意使用类组合的思想解决该问题,使得给出的主函数代码可以正确运行并得到给出的输出结果。函数接口定义:根据要求写出类的实现代码
定义一个简单的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>
using namespace std;
//创建CPU类
class CPU{
int rank,frequency,voltage;//很奇怪,主函数里面的frequency是浮点数,但最后输出结果是整数所以这里设置为整型数
public:
CPU(int r=1,int f=2, int v=100):rank(r),frequency(f),voltage(v){cout<<"create a CPU!\n";}
CPU(const CPU&c){
cout<<"create a CPU by copy!\n";
rank=c.rank;
frequency=c.frequency;
voltage=c.voltage;
}
~CPU(){cout<<"desturct a CPU!\n";}//注意输出样例中拼写的是desturct
void showinfo(){
cout<<"cpu parameter:\n";
cout<<"rank:"<<rank<<endl;
cout<<"frequency:"<<frequency<<endl;
cout<<"voltage:"<<voltage<<endl;
}
};
//创建RAM类
class RAM{
int volumn;
public:
RAM(int v=1):volumn(v){cout<<"create a RAM!\n";}
RAM(const RAM &r){
cout<<"create a RAM by copy!\n";
volumn=r.volumn;
}
~RAM(){cout<<"desturct a RAM!\n";}//注意输出样例中拼写的是desturct
void showinfo(){
cout<<"ram parameter:\n";
cout<<"volumn:"<<volumn<<" GB"<<endl;
}
};
//创建CDROM类
class CDROM{
int speed;
public:
CDROM(int s=16):speed(s){cout<<"create a CDROM!\n";}
CDROM(const CDROM&c){
cout<<"create a CDROM by copy!\n";
speed=c.speed;
}
~CDROM(){cout<<"destruct a CDROM!\n";}
void showinfo(){
cout<<"cdrom parameter:\n";
cout<<"speed:"<<speed<<endl;
}
};
class COMPUTER{
//创建私有数据成员CPU RAM CDROM对象
CPU m_cpu;
RAM m_ram;
CDROM m_cdrom;
public:
//带参数的构造函数
COMPUTER(int rank,double frequency,int voltage,int volumn,int speed)
:m_cpu(rank,frequency,voltage),m_ram(volumn),m_cdrom(speed){
cout<<"create a COMPUTER with para!\n";
}
//不带参数的构造函数
COMPUTER(){
cout<<"no para to create a COMPUTER!\n";
}
//拷贝构造函数
COMPUTER(const COMPUTER&c):m_cpu(c.m_cpu),m_ram(c.m_ram),m_cdrom(c.m_cdrom){
cout<<"create a COMPUTER by copy!\n";
}
~COMPUTER(){cout<<"destruct a COMPUTER!\n";}
void showinfo(){
m_cpu.showinfo();
m_ram.showinfo();
m_cdrom.showinfo();
}
};
做这类题,细心万岁。
更多推荐



所有评论(0)