您的位置:首页 > 编程语言 > C语言/C++

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

2008-02-17 22:45 323 查看
平台: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息