练习1

#ifndef __EXERCISE1_H__
#define __EXERCISE1_H__
#include <string>
#include <iostream>
using std::string;
using std::cout;
using std::endl;


// 类CPU
//Method :设定厂商名称
//:取得厂商名称
//:取得价格
//:设定主频
//:取得价格实现方法:根据主频的范围和厂商确定(自己自由发挥)
class CPU
{
public:
 CPU(){}
 CPU(string tradename,double price,double df);
 CPU(const CPU &c);
 virtual ~CPU(){}
 void SetTradeName(string str);
 string& GetTradeName();
 double GetPrice();
 void SetDominantFrequency(double df);
 double GetPriceMethod(string tradename,double df);
 void print(){cout<<cpu_TradeName<<dw_cpu_Price<<dw_dominantFrequency<<endl;}
private:
 string cpu_TradeName;
 double dw_cpu_Price;
 double dw_dominantFrequency;
};

// 类Memory
//Method :设定厂商名称
//:取得厂商名称
//:取得价格(自己自由发挥)
//:设定大小
//:取得价格实现方法:根据内存大小的范围和厂商确定

class Memory
{
public:
 Memory(){}
 Memory(string mtn,double mprice,double ms);
 Memory(const Memory &m);
 virtual ~Memory(){}
 void SetTradeName(string str);  //设定Memory厂商名称
 string& GetTradeName();           //取得Memory厂商名称
 double GetPrice();              //取得Memory价格
 void SetMemorySize(double ms);  //设定Memory大小
 double GetPriceMethod(string tradename,double ms); //取得价格实现方法:根据内存大小的范围和厂商确定

private:
 string memory_TradeName; 
 double memory_Price;
 double memory_Size;

};

// 类MainBoard
//Method :设定厂商名称
//:取得厂商名称
//:取得价格(自己自由发挥)
//:取得价格实现方法:根据厂商确定
//:Plug(CCPU*,CMemory* )
//:SelfCheck() 检察是否plug过正确的CPU, Memory
class MainBoard
{
public:
 MainBoard(){}
 MainBoard(string mtn,double mprice);
 MainBoard(const MainBoard &m);
 virtual ~MainBoard(){}
 void SetTradeName(string str);  //设定MainBoard 厂商名称
 string& GetTradeName();           //取得MainBoard 厂商名称
 double GetPrice();              //取得MainBoard 价格
 double GetPriceMethod(string tradename); //根据厂商确定
 bool Plug(CPU* CCPU,Memory* CMemory);  //匹配cpu和memory
 bool SelfCheck();          //检察是否plug过正确的CPU, Memory
private:
 string MainBoard_TradeName; 
 double MainBoard_Price;
};

// 类Monitor
//Method :设定厂商名称
//:取得厂商名称
//:取得价格
//:设定大小
//:设定类型:一般。液晶
//:取得价格实现方法:根据大小,是否液晶和厂商确定(自己自由发挥)

class Monitor
{
public:
 Monitor(){}
 Monitor(string mtn,double mprice,double ms);
 Monitor(const Monitor &m);
 virtual ~Monitor(){}
 void SetTradeName(string str);  //设定Monitor 厂商名称
 char& GetTradeName();           //取得Monitor 厂商名称
 double GetPrice();              //取得Monitor 价格
 void SetSize(double mons);      //设定Monitor 大小
 void SetType(string Type);      //设定Monitor 类型
 bool JugdeLCD();                //判断是否是液晶显示器
 double GetPriceMethod(string tradename,bool b,double mons); //根据大小,是否液晶和厂商确定

private:
 string Monitor_TradeName; 
 double Monitor_Price;
 double Monitor_Size;
 string Monitor_Type;

};


//类计算机:
//包含以上几个类的成员
//Method :设定CPU主频
//:设定CPU厂商(A,B,C)
//:设定Memory大小(128,256,512)
//:设定Memory厂商(A,B,C)
//:设定显示器大小(14,15,17,19),类型(一般,液晶)
//:设定显示器厂商(A,B,C);
//:设定主版的厂商(A,B,C);
//:察看整机价格(打印到屏幕)
//:察看配置(打印到屏幕)
//:Init() (调用MainBoard.Plug())
//:Start() (调用MainBoard.SelfCheck() )
// Computer类:包含上面几个类的对象。
//写一个小程序,动态创建一个10个Computer的数组,设定察看每一台的配置,计算总价格等。
//要求正确的释放对象的数组。

class Computer
{
public:
 Computer(){}
 Computer(CPU c,Memory my,MainBoard mb,Monitor mr,double price);
 Computer(Computer &c);
 virtual ~Computer(){}
 void SetCpuDF(double df);  //设定CPU主频
 void SetCpuTradeName(string cpu);  //设定CPU 厂商名称
 void SetMemorySize();            //设定Memory大小(128,256,512)
 void SetMemoryTradeName(string memory);  //设定CPU 厂商名称
 void SetMonitorTradeName(string monitor);           //设定Monitor 厂商名称
 void SetMonitorSize(double mons);      //设定Monitor 大小
 void SetMainBoard(string mainboard);      //设定主版的厂商(A,B,C);
 void PrintComputerPrice(); //察看整机价格(打印到屏幕)
 void SeeComputerConfiguration();
 double GetComputerPrice();
 void Init(); //(调用MainBoard.Plug())
 void Start();  // (调用MainBoard.SelfCheck() )
private:
 CPU m_cpu;
 Memory m_memory;
 MainBoard m_mainboard;
 Monitor m_monitor;
 double m_ComputerPrice;
};


#endif

 

 

 

 

 

//#include <iostream>
#include "exercise1.h"
//using namespace std;

CPU::CPU(string tradename,double cprice,double df)
{
 cpu_TradeName=tradename;
 dw_cpu_Price=cprice;
 dw_dominantFrequency=df;
}
CPU::CPU(const CPU&c)
{
 cpu_TradeName = c.cpu_TradeName;
 dw_cpu_Price = c.dw_cpu_Price;
 dw_dominantFrequency = c.dw_dominantFrequency;
}

void CPU::SetTradeName(string str)
{
 cpu_TradeName = str;
}
string& CPU::GetTradeName()
{
 return cpu_TradeName;
}
double CPU::GetPrice()
{
 return dw_cpu_Price;
}
void CPU::SetDominantFrequency(double df)
{
 dw_dominantFrequency = df;
}
double CPU::GetPriceMethod(string tradename,double df)
{
 
 if (tradename == "inter")
 {
  if (df>0 && df<=100)
  {
   dw_cpu_Price = 400;
  }
  else if (df>100&&df<=150)
  {
   dw_cpu_Price = 500;
  }
  else if (df>150&&df<=200)
  {
   dw_cpu_Price = 600;
  }
  else if (df>200)
  {
   dw_cpu_Price = 1000;
  }
  
 }
 return dw_cpu_Price;
}


//Memory

Memory::Memory(string mtn,double mprice,double ms):memory_TradeName(mtn),memory_Price(mprice),memory_Size(ms)
{

}
Memory::Memory(const Memory &m)
{
 memory_TradeName = m.memory_TradeName;
 memory_Price = m.memory_Price;
 memory_Size = m.memory_Size;
}

void Memory::SetTradeName(string str)  //设定Memory厂商名称
{
 memory_TradeName = str;
}

string& Memory::GetTradeName()          //取得Memory厂商名称
{
 return memory_TradeName;
}

double Memory::GetPrice()              //取得Memory价格
{
 return memory_Price;
}

void Memory::SetMemorySize(double ms)  //设定Memory大小
{
 memory_Size = ms;
}

double Memory::GetPriceMethod(string tradename,double ms)  //取得价格实现方法:根据内存大小的范围和厂商确定
{
 if (tradename == "inter")
 {
  if (ms>0 && ms<=128)
  {
   memory_Price = 100;
  }
  else if (ms>128 && ms<=256)
  {
   memory_Price = 200;
  }
  else if (ms>256&&ms<=512)
  {
   memory_Price = 300;
  }
  

 }
 return memory_Price;
}


//MainBoard

MainBoard::MainBoard(string mtn,double mprice):MainBoard_TradeName(mtn),MainBoard_Price(mprice)
{

}
MainBoard::MainBoard(const MainBoard &m)
{
 MainBoard_TradeName = m.MainBoard_TradeName;
 MainBoard_Price = m.MainBoard_Price;
}

void MainBoard::SetTradeName(string str)  //设定MainBoard 厂商名称
{
 MainBoard_TradeName = str;
}

string& MainBoard::GetTradeName()           //取得MainBoard 厂商名称
{
 return MainBoard_TradeName;
}
double MainBoard::GetPrice()             //取得MainBoard 价格
{
 return MainBoard_Price;
}
double MainBoard::GetPriceMethod(string tradename)//根据厂商确定
{
 if(tradename == "华硕")
 {
  MainBoard_Price = 500;
 }
 return MainBoard_Price;
}

bool MainBoard::Plug(CPU* CCPU,Memory* CMemory)  //匹配cpu和memory
{

 return true;
}

bool MainBoard::SelfCheck()         //检察是否plug过正确的CPU, Memory
{
 
 return true;
}

 

 

#include "exercise1.h"
#include <istream>
using std::cout;
using std::endl;
int main()
{
 CPU C("inter",2,100);
 C.print();
 cout<<C.GetPrice()<<endl;
 Memory M("inter",2,128);

 return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值