6-4 创建计算机 (15 分)

定义一个简单的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!
 

首先创建cpu类:

class cpu {

	int rank;
	double fre;
	int volt;
public:	

	cpu(int a, double b, int c) : rank{ a }, fre{ b }, volt{ c } {
		cout << "create a CPU!" << endl;
	}
	cpu(const cpu& c) : rank{ c.rank }, fre{ c.fre }, volt{ c.volt }{
		cout << "create a CPU by copy!" << endl;
	}
	~cpu() {
		cout << "desturct a CPU!" << endl;
	}
	void showinfo() {
		cout << "cpu parameter:" << endl;
		cout << "rank:" << rank << endl;
		cout << "frequency:" << fre << endl;
		cout << "voltage:" << volt << endl;
	}

};

再创建ram类:

class ram {

	int volum;
public:
	ram(int e) :volum{ e } {
		cout << "create a RAM!" << endl;
	}
	ram(const ram& r) :volum{ r.volum } {
		cout << "create a RAM by copy!" << endl;
	}
	~ram() {
		cout << "desturct a RAM!" << endl;
	}
	void showinfo() {
		cout << "ram parameter:" << endl;
		cout << "volumn:" << volum << " GB" << endl;
	}
};

接着创建cdrom类:

class cdrom {

	int speed;
public:
	cdrom(int f) : speed{ f } {
		cout << "create a CDROM!" << endl;
	}
	cdrom(const cdrom& cd) :speed{ cd.speed } {
		cout << "create a CDROM by copy!" << endl;
	}
	~cdrom() {
		cout << "destruct a CDROM!" << endl;
	}
	void showinfo() {
		cout << "cdrom parameter:" << endl;
		cout << "speed:" << speed << endl;
	}
};

最后创建computer类:

class COMPUTER {
private:
	cpu c;
	ram r;
	cdrom cd;
public:
	COMPUTER(int a, double b, int c, int d, int e)
		:c{ a,b,c }, r{ d }, cd{ e } {

		cout << "create a COMPUTER with para!" << endl;
	}
	COMPUTER()  
		:c{ 1,2,100 }, r{ 1 }, cd{ 16 }{

		cout << "no para to create a COMPUTER!" << endl;
	}
	COMPUTER(const COMPUTER& p)
		:c{ p.c }, r{ p.r }, cd{ p.cd } {
		cout << "create a COMPUTER by copy!" << endl;
	}
	void showinfo() {
		c.showinfo();
		r.showinfo();
		cd.showinfo();
	}
	~COMPUTER() {
		cout << "destruct a COMPUTER!" << endl;
	}
};

得到最终题目答案为:

#include <iostream>
using namespace std;
class cpu {

	int rank;
	double fre;
	int volt;
public:	

	cpu(int a, double b, int c) : rank{ a }, fre{ b }, volt{ c } {
		cout << "create a CPU!" << endl;
	}
	cpu(const cpu& c) : rank{ c.rank }, fre{ c.fre }, volt{ c.volt }{
		cout << "create a CPU by copy!" << endl;
	}
	~cpu() {
		cout << "desturct a CPU!" << endl;
	}
	void showinfo() {
		cout << "cpu parameter:" << endl;
		cout << "rank:" << rank << endl;
		cout << "frequency:" << fre << endl;
		cout << "voltage:" << volt << endl;
	}

};
class ram {

	int volum;
public:
	ram(int e) :volum{ e } {
		cout << "create a RAM!" << endl;
	}
	ram(const ram& r) :volum{ r.volum } {
		cout << "create a RAM by copy!" << endl;
	}
	~ram() {
		cout << "desturct a RAM!" << endl;
	}
	void showinfo() {
		cout << "ram parameter:" << endl;
		cout << "volumn:" << volum << " GB" << endl;
	}
};
class cdrom {

	int speed;
public:
	cdrom(int f) : speed{ f } {
		cout << "create a CDROM!" << endl;
	}
	cdrom(const cdrom& cd) :speed{ cd.speed } {
		cout << "create a CDROM by copy!" << endl;
	}
	~cdrom() {
		cout << "destruct a CDROM!" << endl;
	}
	void showinfo() {
		cout << "cdrom parameter:" << endl;
		cout << "speed:" << speed << endl;
	}
};
class COMPUTER {
private:
	cpu c;
	ram r;
	cdrom cd;
public:
	COMPUTER(int a, double b, int c, int d, int e)
		:c{ a,b,c }, r{ d }, cd{ e } {

		cout << "create a COMPUTER with para!" << endl;
	}
	COMPUTER()  
		:c{ 1,2,100 }, r{ 1 }, cd{ 16 }{

		cout << "no para to create a COMPUTER!" << endl;
	}
	COMPUTER(const COMPUTER& p)
		:c{ p.c }, r{ p.r }, cd{ p.cd } {
		cout << "create a COMPUTER by copy!" << endl;
	}
	void showinfo() {
		c.showinfo();
		r.showinfo();
		cd.showinfo();
	}
	~COMPUTER() {
		cout << "destruct a COMPUTER!" << endl;
	}
};

注意:

仔细观察题目所给的样例,其中computer类和cdrom类析构函数中输出的是 destruct 而cpu类和ram类析构函数中的输出为desturct。 个人觉得这题出题人描述的不是很好,成员函数run,stop在此题没有存在的必要而且desturct明显是拼写错误吧!!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值