实训C++语言设计——COMPUTER电脑类设计

平台:VC++ 2005 测试通过!
.vcproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件。
它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
StdAfx.h, StdAfx.cpp
这些文件用于生成名为 twod.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
这些都是使用应用程序向导生成的 VC++ 文件故不列出
我只列出程序主要部分!

#include <iostream>
#include <string>
#include <vector>
using namespace std;
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};

/*CPU类型的定义*/
class CPU{
private:
CPU_Rank _rank;
int _frequency;
float _voltage;
public:
CPU();//默认构造函数
//CPU(const CPU& rc); //拷贝构造函数
CPU(CPU_Rank r,int f,float v);
~CPU(){cout<<"析构了一个CPU"<<endl;};
void OutPut();
};

CPU::CPU(){
cout<<"调用默认构造函数构造了一个CPU"<<endl;
}

/*CPU::CPU(const CPU& rc):
_rank(rc._rank), _frequency(rc._frequency), _voltage(rc._voltage){
cout<<"调用CPU拷贝构造函数"<<endl;
}
*/

CPU::CPU(CPU_Rank r,int f,float v)
:_rank(r), _frequency(f), _voltage(v)
{
cout<<"构造了一个CPU"<<endl;
}

void CPU::OutPut(){
cout<<endl<<"CPU:"
<<"等级="<< _rank
<<"频率="<< _frequency
<<"电压="<< _voltage<<endl;
}

class RAM{
private:
int _memSize;
public:
RAM();
//RAM(const RAM& rr); //拷贝构造函数
RAM(int mem);
~RAM(){cout<<"析构了一个RAM"<<endl;}
void OutPut();
};

/*RAM类型的实现*/
RAM::RAM(){
cout<<"调用默认构造函数构造了一个RAM"<<endl;
}

/*RAM::RAM(const RAM& rr):_memSize(rr._memSize){
cout<<"调用RAM拷贝构造函数"<<endl;
}
*/

RAM::RAM(int mem):_memSize(mem){
cout<<"构造了一个RAM"<<endl;
}

void RAM::OutPut(){
cout<<"内存大小:"<<_memSize;
}


class CDROM{
private:
int _speed;
public:
CDROM();
CDROM(int speed);
//CDROM(const CDROM& rcd);
~CDROM(){cout<<"析构了一个CDROM"<<endl;}
void OutPut();
};

CDROM::CDROM():
_speed(0){
cout<<"调用默认构造函数构造了一个CDROM"<<endl;
};

CDROM::CDROM(int speed):_speed(speed){
cout<<"构造了一个CDROM"<<endl;
}

/*CDROM::CDROM(const CDROM& rcd):_speed(rcd._speed){
cout<<"调用CDROM拷贝构造函数"<<endl;
}
*/

void CDROM::OutPut()
{
cout<<endl <<"光驱速度:"<<_speed<<endl;
}


class COMPUTER{
private:
CPU _cpu;
RAM _ram;
CDROM _cdrom;
public:
COMPUTER(){cout<<"调用默认构造函数构造了一个COMPUTER"<<endl;}
/*请思考传递参数的方式不同为何导致程序输出的内容不同*/
//COMPUTER(const CPU& c,const RAM& r,const CDROM& cd);
COMPUTER(CPU c, RAM r, CDROM cd);
//COMPUTER(const COMPUTER& rc);
~COMPUTER(){cout<<"析构了一个Computer"<<endl;}
void Run() {cout<<"Computer 开始运新!"<<endl;}
void Stop() {cout<<"Computer 停止运行!"<<endl;}
void OutPut();
};

//COMPUTER::COMPUTER(const CPU& c,const RAM& r,const CDROM& cd)
COMPUTER::COMPUTER(CPU c, RAM r, CDROM cd)
:_cpu(c), _ram(r), _cdrom(cd){
cout<<"构造了一个Computer"<<endl;
}

/*COMPUTER::COMPUTER(const COMPUTER& rc)
:_cpu(rc._cpu), _ram(rc._ram), _cdrom(rc._cdrom){
cout<<"调用COMPUTER拷贝构造函数"<<endl;
}
*/

void COMPUTER::OutPut()
{
_cpu.OutPut(); _ram.OutPut(); _cdrom.OutPut();
cout << endl;
}

// ComputerPro.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "CComputer.h"

int _tmain(int argc, _TCHAR* argv[])
{
CPU c(P4, 1000, 9.6);
RAM r(512);
CDROM cd(5400);

COMPUTER computer1(c, r, cd);
computer1.OutPut();
computer1.Run();
computer1.Stop();

return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值