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

📄 罗应华c++练习一computer.cpp

📁 在进行C++中级培训的时候编写的一个设计cpu类的C++源代码
💻 CPP
字号:
#include <iostream>
#include <string>
#include <cmath>
#include <ctime>

using namespace std;

//char comperNameAll[3][10] = {{"AACompany"} ,{"BBCompany"} ,{"CCCompany"}};

class Cpu
{
public:
	void SetCompanyName( char * sCompanyName );
	
	char * getCompanyName( void );
	
	int GetPrice( void );	
	
	void SetParamountcy( int fHz );	
	
	void ImplementPrice( void );	
	
private:
	char companyName[10];
	int price;
	int  paramountcy;
};

class Memory
{
public:
	void SetCompanyName( char * sCompanyName );
	
	char * getCompanyName( void );
	
	int GetPrice( void );
	
	void SetSize( int iSize );	
	
	void ImplementPrice( void );
	
private:
	char companyName[10];
	int price;
	int  size;	
};

class MainBoard
{
public:
	MainBoard();

	void SetCompanyName( char * sCompanyName );
	
	char * getCompanyName( void );
	
	int GetPrice( void );

	void ImplementPrice( void );

	void Plug( Cpu * ccpu, Memory * cmemory);

	bool SelfCheck( void );

private:
	char companyName[10];
	int price;
	bool check;
};

class Monitor
{
public:
	void SetCompanyName( char * sCompanyName );
	
	char * getCompanyName( void );
	
	int GetPrice( void );

	void ImplementPrice( void );

	void SetSize( int iSize );

	void SetStyle( int iStyle );

private:
	char companyName[10];
	int price;
	int  size;
	int style;
};

class Computer
{
public:
	Computer();

	void GetNmae( void );

	void SetCpuCompanyName( void );

	void SetCpuParamountcy( void );	

	void SetMemoryCompanyName( void );

	void SetMemorySize( void );

	void SetMonitorCompanyName( void );

	void SetMonitorSize( void );

	void SetMonitorStyle( void );

	void SetMainBoardCompanyName( void );

	void CalculatePrice( void );

	int GetPrice( void );

	void PinrtComputer( void );

	void Init( void );

	void Start( void );

private:
	char tempName[10];
	Cpu cpu;
	Memory memory;
	MainBoard mainBoard;
	Monitor monitor;
	int price;
};



//////////////////////////////////////////////////////////////////////////////Cpu
void Cpu::SetCompanyName( char * sCompanyName )
{
	strcpy( companyName, sCompanyName );
}

char * Cpu::getCompanyName( void )
{
	return companyName;
}

int Cpu::GetPrice( void )
{
	return price;
}

void Cpu::SetParamountcy( int fHz )
{
	paramountcy = fHz;
}

void Cpu::ImplementPrice( void )
{
	int temp = 1;
	if ( 0 == strcmp( companyName, "AACompany" ) )
	{
		temp = 1;
	}
	else if ( 0 == strcmp( companyName, "BBCompany" ) )
	{
		temp = 2;
	}
	else if ( 0 == strcmp( companyName, "CCCompany" ) )
	{
		temp = 3;
	}
	else
	{
		temp = 1;
	}
	price = abs( paramountcy ) * 500 * temp;
}



///////////////////////////////////////////////////////////////////////////////////Memory
void Memory::SetCompanyName( char * sCompanyName )
{
	strcpy( companyName, sCompanyName );
}

char * Memory::getCompanyName( void )
{
	return companyName;
}

int Memory::GetPrice( void )
{
	return price;
}

void Memory::SetSize( int iSize )
{
	size = iSize;
}

void Memory::ImplementPrice( void )
{
	int temp = 1;
	if ( 0 == strcmp( companyName, "AACompany" ) )
	{
		temp = 1;
	}
	else if ( 0 == strcmp( companyName, "BBCompany" ) )
	{
		temp = 2;
	}
	else if ( 0 == strcmp( companyName, "CCCompany" ) )
	{
		temp = 3;
	}
	else
	{
		temp = 1;
	}
	price = temp * size * 2;
}



//////////////////////////////////////////////////////////////////////////MainBoard
MainBoard::MainBoard()
{
	check = false;
}

void MainBoard::SetCompanyName( char * sCompanyName )
{
	strcpy( companyName, sCompanyName );
}

char * MainBoard::getCompanyName( void )
{
	return companyName;
}

int MainBoard::GetPrice( void )
{
	return price;
}

void MainBoard::ImplementPrice( void )
{
	int temp = 1;
	if ( 0 == strcmp( companyName, "AACompany" ) )
	{
		temp = 1;
	}
	else if ( 0 == strcmp( companyName, "BBCompany" ) )
	{
		temp = 2;
	}
	else if ( 0 == strcmp( companyName, "CCCompany" ) )
	{
		temp = 3;
	}
	else
	{
		temp = 1;
	}
	price = temp * 500;
}

void MainBoard::Plug( Cpu * ccpu, Memory * cmemory)
{
	if ( 0 == strcmp( ccpu->getCompanyName(), cmemory->getCompanyName() ) )
	{
		check = true;
	}
	else
	{
		check = false;
	}
}

bool MainBoard::SelfCheck( void )
{
	return check;
}


//////////////////////////////////////////////////////////////////////////////////////Monitor
void Monitor::SetCompanyName( char * sCompanyName )
{
	strcpy( companyName, sCompanyName );
}

char * Monitor::getCompanyName( void )
{
	return companyName;
}

int Monitor::GetPrice( void )
{
	return price;
}

void Monitor::ImplementPrice( void )
{
	int temp = 1;
	if ( 0 == strcmp( companyName, "AACompany" ) )
	{
		temp = 1;
	}
	else if ( 0 == strcmp( companyName, "BBCompany" ) )
	{
		temp = 2;
	}
	else if ( 0 == strcmp( companyName, "CCCompany" ) )
	{
		temp = 3;
	}
	else
	{
		temp = 1;
	}
	price = temp * size * style * 20;
}

void Monitor::SetSize( int iSize )
{
	size = iSize;
}

void Monitor::SetStyle( int iStyle )
{
	style = iStyle;
}


/////////////////////////////////////////////////////////////////////Computer
Computer::Computer()
{
	SetCpuCompanyName();

	SetCpuParamountcy();	

	SetMemoryCompanyName();

	SetMemorySize();

	SetMonitorCompanyName();

	SetMonitorSize();

	SetMonitorStyle();

	SetMainBoardCompanyName();

	Init();

	Start();
}

void Computer::GetNmae( void )
{
	int i;
	i = rand() % 3 + 1;
	if ( 1 == i )
	{
		strcpy( tempName, "AACompany" );
	}
	else if ( 2 == i)
	{
		strcpy( tempName, "BBCompany" );
	}
	else
	{
		strcpy( tempName, "CCCompany" );
	}
}

void Computer::SetCpuCompanyName( void )
{
	GetNmae();
	cpu.SetCompanyName( tempName );
}

void Computer::SetCpuParamountcy( void )
{
	int i;
	i = rand() % 5 + 1;
	cpu.SetParamountcy( i );
}

void Computer::SetMemoryCompanyName( void )
{
	GetNmae();
	memory.SetCompanyName( tempName );
}

void Computer::SetMemorySize( void )
{
	int i, size;
	i = rand() % 3 + 1;
	if ( 1 == i)
	{
		size = 128;
	}
	else if ( 2 == i )
	{
		size = 256;
	}
	else
	{
		size = 512;
	}
	memory.SetSize( size );
}

void Computer::SetMonitorCompanyName( void )
{
	GetNmae();
	monitor.SetCompanyName( tempName );
}

void Computer::SetMonitorSize( void )
{
	int i, size;
	i = rand() % 4 + 1;
	if ( 1 == i)
	{
		size = 14;
	}
	else if ( 2 == i )
	{
		size = 15;
	}
	else if ( 3 == i )
	{
		size = 17;
	}
	else
	{
		size = 19;
	}
	monitor.SetSize( size );
}

void Computer::SetMonitorStyle( void )
{
	int i;
	i = rand() % 4 + 1;
	monitor.SetStyle( i );
}

void Computer::SetMainBoardCompanyName( void )
{
	GetNmae();
	mainBoard.SetCompanyName( tempName );
}

void Computer::CalculatePrice( void )
{
	cpu.ImplementPrice();
	memory.ImplementPrice();
	mainBoard.ImplementPrice();
	monitor.ImplementPrice();
	price = cpu.GetPrice() + memory.GetPrice() + mainBoard.GetPrice() + monitor.GetPrice();
}

int Computer::GetPrice( void )
{
	CalculatePrice( );
	return price;
}

void Computer::PinrtComputer( void )
{
	cout<<"计算机配置如下: "<<'\t'
		<<"CPU:"<<cpu.getCompanyName()<<" 价格: "<<cpu.GetPrice()<<"   "
		<<"内存:"<<memory.getCompanyName()<<" 价格: "<<memory.GetPrice()<<"   "
		<<"主板:"<<mainBoard.getCompanyName()<<" 价格: "<<mainBoard.GetPrice()<<"   "
		<<"显示器:"<<monitor.getCompanyName()<<" 价格: "<<monitor.GetPrice()<<endl;
}

void Computer::Init( void )
{
	mainBoard.Plug( & cpu, & memory);
}

void Computer::Start( void )
{
	while( !mainBoard.SelfCheck() )
	{
		SetCpuCompanyName();
		SetMemoryCompanyName();
		Init();
	}
}



///////////////////////////////////main
void main( void )
{
	int i;
	time_t t;
	srand(( unsigned ) time( & t ));

	Computer computer[10];
	
	for( i = 0; i < 10 ; i++)
	{
		cout<<"第"<< i + 1 <<"台计算机的价格是:"<<computer[i].GetPrice()<<endl;
		cout<<"第"<< i + 1 <<"台";
		computer[i].PinrtComputer();
		cout<<endl;
	}
}

⌨️ 快捷键说明

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