實訓C++語言設計——COMPUTER電腦類設計

來源:互聯網
上載者:User

平台: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;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.