【c++】2020大一下期末考试小练习1

考试题目

CPU是计算机的中央处理单元,是计算机的重要组成部分。计算机有很多具体的结构形式,其中有一种有多种防护等级的计算机被称为工业控制计算机(Industrial Personal Computer,IPC),该特殊形式的计算机经常被用于工业生产现场。

请根据要求完成如下编程工作:
1、 现有一个CPU类定义如下:

class CPU
{
   
private:
		double m_MainFreq;	//主频,单位GHz
		int m_CoreNum;		//核心数
		double m_Power;		//功率,单位:W

public:
		CPU(double MainFreq, int CoreNum, double Power);
		double GetMainFreq(void)const;	//获取主频
		CPU& operator++();	//前自增,主频加0.1,核心数加2,功率加1.0
		CPU operator++(int);	//后自增,规则同上
		friend ostream& operator<<(ostream& Out, const CPU& Obj);	//输出CPU的参数,
														//主频占6列,小数部分保留2位,左对齐
														//核心数占3列,左对齐
														//功率占6列,小数部分保留1位,左对齐
};

请根据要求完成如下函数定义:
(1) 请完善CPU类的构造函数定义,构造函数参数从左向右的含义:主频、核心数、功率
(2) 请完善CPU类的GetMainFreq ()成员函数的定义。
(3) 请完善CPU类的前++和后++运算符重载成员函数的定义。
(4) 请为CPU类提供输出运算符重载函数,输出格式如上所示

2、 计算机(Computer)基类定义如下:

class Computer
{
   
private:
	CPU m_CPU;
	int m_Memory;	//内存容量,单位:G
	int m_HD;		//硬盘容量,单位:G

public:
	Computer(double CPU_MainFreq, int CPU_CoreNum, double CPU_Power, int Memory, int HD);
CPU GetCPU(void)const;		//获取CPU数据
	double GetMemory(void)const;	//获取内存容量
	Computer& operator++();	//前自增,CPU部分自增规则同CPU类,内存扩大4G,硬盘扩大128G
	Computer operator++(int);	//后自增,规则同上
	friend ostream& operator<<(ostream& Out, const Computer& Obj);	
//CPU部分数据的输出规则与CPU类中定义相同
											//内存容量占6列,左对齐
											//硬盘容量占8列,左对齐
};

请根据要求完善如下函数定义:
(1) 请完善Computer类的构造函数定义,其中函数参数从左向右的含义:CPU主频、CPU核心数、CPU功率、内存大小、硬盘大小
(2) 请完善Computer类的GetCPU()成员函数的定义。
(3) 请完善Computer类的GetMemory()成员函数的定义。
(4) 请完善Computer类的前++和后++运算符重载成员函数的定义。
(5) 请为Computer类提供输出运算符重载函数,输出格式如上所示。

3、 请设计一个用于表示工控机的IPC类。

class IPC:public Computer
{
   
private:
		int m_ProtectGrade;		//防护等级
		static int m_Counts;	//工控机数量

public:
		IPC(double CPU_MainFreq=3.7, int CPU_CoreNum=6, double CPU_Power=95.0, int Memory=16, int HD=512, int ProtectGrade=65);
		IPC(const IPC& Obj);
		double GetProtectGrade(void)const;	//获取防护等级
		static int GetCounts(void);	//获取当前工控机数量
		IPC& operator++();		//前自增,Computer数据自增规则同上,防护等级加1
		IPC operator++(int);	//后自增,规则同上
		friend ostream& operator<<(ostream& Out, const IPC& Obj);	
//Computer部分数据的输出规则与Computer类中定义相同
							//防护等级占5列,左对齐
		~IPC();
};

请根据要求完善如下函数定义:
(1) 请完善IPC类的有参构造函数定义,其中函数参数从左向右的含义:CPU主频、CPU核心数、CPU功率、内存大小、硬盘大小、防护等级
(2) 请完善IPC类的复制构造函数定义
(3) 请完善IPC类的GetProtectGrade ()成员函数的定义。
(4) 请完善IPC类的GetCounts ()成员函数的定义。
(5) 请完善IPC类的前++和后++运算符重载成员函数的定义。
(6) 请为IPC类提供输出运算符重载函数,输出格式如上所示。

4、 在上述3个类设计的基础上,请按照下列要求分别编写4个函数:
(1) 编写一个函数ReadIPCFile,从D盘根目录下的文本文件source.txt中读取数量未知个工控机数据,构成一个IPC类型的向量A。该文本文件中每条工控机信息中顺序包含了CPU主频、CPU核心数、CPU功率、内存容量、硬盘容量、防护等级,每条数据占1行。
(2) 编写一个函数SortIPC,对上述A向量进行增序排序,排序条件定义如下:
a) CPU主频
b) 防护等级
注意:上述排序条件是有顺序的,必须按照“

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值