c++primer plus练习10,第四题,将第9章的编程练习 4 Sales结构及相关的函数转换为一个类及其方法

C++编程练习:将Sales结构转换为类并实现构造函数

4.完成第9章的编程练习 4,但将 Sales 结构及相关的函数转换为一个类及其方法。用构造函数替换setSales(sales&,double「],int)函数。用构造函数实现setSales(Sales &)方法的交互版本。将类保留在名称空间 SALES 中。

原文链接:https://blog.youkuaiyun.com/zhyjhacker/article/details/139219979

第9章的编程练习 4超链接

#include<iostream>
class Sales
{
public:
	Sales(double arr[],int n);
	Sales();
	~Sales();
	void showSales();
private:
	static const int	QUARTERS = 4;
	struct STsales
	{
		double ssales[QUARTERS];
		double saverage;
		double smax;
		double smin;
	};
	STsales s;
};
#include <iostream>
#include"sales.h"
Sales::Sales(double arr[], int n)
{
	double max = arr[0];
	double min = arr[0];
	double sum = 0;
	if (n>QUARTERS)
	{
		std::cout << "请输入正确的数量。";
		return;
	}
	for (int i = 0; i < QUARTERS; i++)
	{
		s.ssales[i] = arr[i];
	}
	for (int i = 0; i < QUARTERS; i++)
	{
		sum += arr[i];
		if (max<arr[i])
		{
			max = arr[i];
		}
		if (min>arr[i])
		{
			min = arr[i];
		}
	}
	s.smax = max;
	s.smin = min;
	s.saverage = sum / QUARTERS;
}
Sales::Sales()
{
	double sum = 0;
	std::cout << "请输入本年度的四节的销售额:";
	for (int i = 0; i < QUARTERS; i++)
	{
		std::cin >> s.ssales[i];
	}
	double max = s.ssales[0];
	double min = s.ssales[0];
	for (int i = 0; i < QUARTERS; i++)
	{
		sum += s.ssales[i];
		if (max<s.ssales[i])
		{
			max = s.ssales[i];
		}
		if (min>s.ssales[i])
		{
			min = s.ssales[i];
		}
	}
	s.smax = max;
	s.smin = min;
	s.saverage = sum / QUARTERS;
}
Sales::~Sales()
{
	std::cout << "Bye\n";
}
void Sales::showSales()
{
	for (int i = 0; i < QUARTERS; i++)
	{
		std::cout<< "季度#" << i + 1 << "销售额: " << s.ssales[i] << "\r\n";
	}
	std::cout << "本年销售最大值: " << s.smax << "\r\n" << "最小值: " << s.smin << "\r\n" << "平均值: " << s.saverage << std::endl;
}

主调用程序

#pragma region 练习4
/*
*/
#if 1
#include <iostream>
#include"sales.h"
int main()
{
	double arr[] = {1.1,1.2,1.3,1.4};
	Sales sales1(arr,4), sales2;
	sales1.showSales();
	sales2.showSales();
	return 0;
}
#endif 
#pragma endregion

代码运行结果
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值