⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu.cpp

📁 在进行C++中级培训的时候编写的一个设计cpu类的C++源代码
💻 CPP
字号:
#include<iostream.h>
#include<string>
//using namespace std;
/* -------CPU--------*/
class Cpu
{
  public:
    void setComp(char company);
	char getComp();
	void setFreq(int frequency);
	int  getPrice();
    void printCpu();
  private:
    char comp;
	int price;
	int freq;
};
void Cpu::printCpu()
{
  cout<< "Cpu厂商为"<<comp<<" ,主频大小为:"<<freq<<" GHZ,价钱为 :"<<price<<"元"<<endl;
}
void Cpu::setComp(char company)
{ 
  comp = company;
}
char Cpu::getComp()
{
  return  comp;
}
void Cpu::setFreq(int frequency)
{
  freq = frequency;
}
int Cpu::getPrice()
{
  if (comp=='A')
  { switch (freq)
  {case 1 : price = 100; break;
	 case 2 : price = 200; break;
	 case 3 : price = 300; break;
	 default: break;}
   }
   if (comp=='B')
  { switch (freq)
   {case 1 : price = 150; break;
	 case 2 : price = 250; break;
	 case 3 : price = 350; break;
	 default: break;
   }
   }
   if (comp=='C')
  { switch (freq)
   { case 1 : price = 200; break;
	 case 2 : price = 300; break;
	 case 3 : price = 400; break;
	 default: break;
   }

   }
   return price;
}
/*-------Memory---------*/
class Memory
{
  public :
    void setComp(char company);
	char getComp();
	void setSize(int size);
	int  getPrice();
	void printMemory();
	bool plug(Cpu* p_cpu,Memory*  p_Memory);
  private:
    char comp;
	int price;
	int m_size;
};
void Memory::printMemory()
{
 cout<< "Memory 厂商为"<<comp<<" ,大小为:"<<m_size<<" MB, 价钱是: "<<price<<"元"<<endl;
}
void Memory::setComp(char company)
{
	comp = company;
}
char Memory::getComp()
{
 return comp;
}
void Memory::setSize(int size)
{
 m_size = size;
}
int Memory::getPrice()
{
  if (comp=='A')
  { switch (m_size)
  {  case 128 : price = 100; break;
	 case 256 : price = 200; break;
	 case 512 : price = 300; break;
	 default: break;
  }
  }
   if (comp=='B')
  { switch (m_size)
   {case 128 : price = 150; break;
	 case 256 : price = 250; break;
	 case 512 : price = 350; break;
	 default: break;
	}
   }
   if (comp=='C')
  { switch (m_size)
   {
     case 128 : price = 200; break;
	 case 256 : price = 300; break;
	 case 512 : price = 400; break;
	 default: break;
   }
   }
   return price;
}
/*---------MainBoard-----------*/
class MainBoard
{
  public:
	  MainBoard();
      void setComp(char company);
	  char getComp();
	  int  getPrice();
	  void printMainboard();
	  void plug(Cpu * ccpu, Memory * cmemory);
	  bool selfCheck();
  private:
	  char comp;
	  int price;
	  bool check;
};
MainBoard::MainBoard()
{
  check = false;
}
void MainBoard::plug( Cpu * ccpu, Memory * cmemory)
{
	if (  ccpu->getComp()==cmemory->getComp()  )
	{
		check = true;
	}
	else
	{
		check = false;
	}
}

bool MainBoard::selfCheck()
{
	return check;
}

void MainBoard::printMainboard()
{
  cout<< "MainBoard 厂商为 "<<comp<<" ,价钱是:  "<<price<<"元"<<endl;
}
void MainBoard::setComp(char company)
{
  comp =company;
}
char MainBoard::getComp()
{
  return comp;
}
int MainBoard::getPrice()
{
  switch (comp)
  {case 'A' : price =500; break;
  case 'B' : price =600; break;
  case 'C' : price =700; break;
  default : break;
  }
  return price;
}
/*MainBoard::plug(Cpu* p_cpu,Memory*  p_Memory)
{
 
}*/
/*----------Monitor-----------*/
class Monitor
{

  public :
    void setComp(char company);
	char getComp();
	void setSize(int size);
	int  getPrice( );
    void setType(char type);
	void printMonitor();
  private:
    char comp;
	int price;
	int m_size;
	char m_type;
};
void Monitor::printMonitor()
{
 cout<< "Monitor 厂商为"<<comp<<"  ,大小为 "<<m_size<<" 英寸 ,价钱 :"<<price<<"元,类型为 :"<<m_type<<endl;
}
void Monitor::setComp(char company)
{
	comp = company;
}
char Monitor::getComp()
{
 return comp;
}
void Monitor::setSize(int size)
{
 m_size = size;
}
int Monitor::getPrice()
{
 if(m_type == 'P')
 {
   if (comp=='A')
  { switch (m_size)
   {case 15 : price = 1000; break;
	 case 17 : price = 1500; break;
	 case 19 : price = 1750; break;
	 default: break;
   }
   }
   if (comp=='B')
  { switch (m_size)
   {case 15 : price = 1100; break;
	 case 17 : price = 1600; break;
	 case 19 : price = 1850; break;
	 default: break;
   }
   }
   if (comp=='C')
  { switch (m_size)
   { case 15 : price = 1500; break;
	 case 17 : price = 1750; break;
	 case 19 : price = 2000; break;
	default: break;
   }
   }
 }
 if (m_type == 'Y')
 {
   if (comp=='A')
  { switch (m_size)
   { case 15 : price = 1500; break;
	 case 17 : price = 2000; break;
	 case 19 : price = 2750; break;
	 default: break;
   }
   }
   if (comp=='B')
  { switch (m_size)
   {case 15 : price = 2100; break;
	 case 17 : price = 2600; break;
	 case 19 : price = 2850; break;
	 default: break;
   }
   }
   if (comp=='C')
  { switch  (m_size)
   {case 15 : price = 2500; break;
	 case 17 : price = 2750; break;
	 case 19 : price = 3000; break;
	 default: break;
   }
  }
 }
  return price;
}
void Monitor::setType(char type)
{
 m_type = type;
}
/*--------Computer----------*/
class Computer
{
public:
  void setComputer();
  void  viewPrice();
  void viewConf();
  void init();
  void start();
private:
	Cpu c;
	Memory memory;
	MainBoard mainboard;
	Monitor monitor;
};
void Computer::init()
{
 mainboard.plug(&c,&memory);
}
void Computer::start()
{
  mainboard.selfCheck();
}

void Computer::setComputer()
{
  char cpu_comp,memory_comp,mainboard_comp,monitor_comp,monitor_type;
  int memory_size,monitor_size;
  int cpu_freq;
  cout<<"CPU的厂商(A,B,C):"<<endl;
  cin>>cpu_comp;
  cout<<"CPU的主频(1,2,3):"<<endl;
  cin>>cpu_freq;
  c.setComp(cpu_comp);
  c.setFreq(cpu_freq);
  cout<<"Memory的厂商(A,B,C):"<<endl;
  cin>>memory_comp;
  cout<<"Memory的大小(128,256,512):"<<endl;
  cin>>memory_size;
  memory.setComp(memory_comp);
  memory.setSize(memory_size);
  cout<<"主板的厂商(A,B,C):"<<endl;
  cin>>mainboard_comp;
  mainboard.setComp(mainboard_comp);
  cout<<"显示器的厂商(A,B,C):"<<endl;
  cin>>monitor_comp;
  cout<<"显示器的大小(15,17,19):"<<endl;
  cin>>monitor_size;
  cout<<"显示器的类型(Y-液晶,P-纯平):"<<endl;
  cin>>monitor_type;
  monitor.setComp(monitor_comp);
  monitor.setSize(monitor_size);
  monitor.setType(monitor_type);
}
void Computer::viewPrice()
{
 int c_price;
 c_price= c.getPrice() +memory.getPrice()+mainboard.getPrice()+monitor.getPrice();
 cout<<"价钱是:"<<c_price<<"元"<<endl;
}
void Computer::viewConf()
{
 cout<<"计算机的配置如下:"<<endl<<endl;
 c.printCpu();
 memory.printMemory();
 mainboard.printMainboard();
 monitor.printMonitor();
}
void main()
{
  Computer *p = new Computer[10];
  for(int i=0;i<10;i++)
  {
	cout<<"请输入第"<<i+1<<"台计算机的配置:"<<endl;
	p[i].setComputer();
  }
  for (int j=0;j<10;j++)
  {
    cout<<"第"<<j+1<<"台计算机的情况如下:"<<endl;
    p[j].viewPrice();
    p[j].viewConf();
  }
 delete [] p;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -