📄 cpu.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 + -