4.完成第9章的编程练习 4,但将 Sales 结构及相关的函数转换为一个类及其方法。用构造函数替换setSales(sales&,double「],int)函数。用构造函数实现setSales(Sales &)方法的交互版本。将类保留在名称空间 SALES 中。
原文链接:https://blog.youkuaiyun.com/zhyjhacker/article/details/139219979
#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
代码运行结果

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

被折叠的 条评论
为什么被折叠?



