?? 羅應華c++練習一computer.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 + -