C++-练习-64

题目:

请基于下面这个名称空间编写一个由3搁文件组成的程序:

namespace SALES

{

        const int QUARTERS = 4;

        struct Sales

        {

                double sales[QUARTERS];

                double average;

                double max;

                double min;

        };

        void setSales(Sales & s,const double ar[],int n);

        void setSales(Sales & s);

        void showSales(const Sales & s);

}

第一个文件是头文件,其中包含了名称空间;第二个文件时一个源代码文件,它对这个名称空间进行扩展,以提供这三个函数的定义;第三个文件声明两个Sales对象,并使用setSales()的交互式版本为一个结构提供值,然后使用setSales()的非交互版本为另一个结构提供值。然后使用setSales()的非交互式版本为另一个结构提供值。另外它还使用showSales()来显式这两个结构的内容。

void setSales(Sales & s,const double ar[],int n)

将数组ar中的4个元素赋值到s的销售成员,并计算和存储输入项目的平均值、最大值和最小值;

void setSales(Sales & s)

以交互方式收集4个季度的销售额,将其存储在s的销售成员中,并计算和存储平均值、最大值和最小值

void showSales(const Sales & s)

显式结构的所有信息

源代码:

test.cpp

#include "test.h"
using namespace SALES;
int max = 0;

int main()
{
	Sales ann;
	Sales andy;
	double sales[4] = { 1.2,3.3,4.5,6.7 };

	setSales(ann, sales, 4);
	setSales(andy);

	showSales(ann);
	showSales(andy);
	return 0;

}

 test_function.cpp

#include "test.h"
#include <iostream>
using namespace SALES;
using namespace std;
namespace SALES
{
        void setSales(Sales& s, const double ar[], int n)
        {
                double total = 0;
                s.max = s.min = ar[0];
                for (int i = 0; i < n; i++)
                {
                        s.sales[i] = ar[i];
                        if (s.max < ar[i])
                                s.max = ar[i];
                        else if (s.min > ar[i])
                                s.min = ar[i];
                        total += ar[i];
                }
                s.average = total / n;
        }

        void setSales(Sales& s)
        {
                double ar[4];
                int n = 4;
                cout << "请输入四个销售业绩: ";
                for (int i = 0; i < n; i++)
                {
                        cin >> ar[i];
                }

        int total = 0;
        s.max = s.min = ar[0];
        for (int i = 0; i < n; i++)
        {
                s.sales[i] = ar[i];
                if (s.max < ar[i])
                        s.max = ar[i];
                else if (s.min > ar[i])
                        s.min = ar[i];
                total += ar[i];
        }
        s.average = total / n;
        }
        void showSales(const Sales& s)
        {
                cout << "销售业绩分别为: ";
                for (int i = 0; i < 4; i++)
                {
                        cout << s.sales[i] << " ";
                }
                cout << endl;
                cout << "最大值: " << s.max << "最小值: " << s.min << "平均值: " << s.average << endl;
        }
}

test.h

namespace SALES
{
        const int QUARTERS = 4;
        struct Sales
        {
                double sales[QUARTERS];
                double average;
                double max;
                double min;
        };
        void setSales(Sales& s, const double ar[], int n);
        void setSales(Sales& s);
        void showSales(const Sales& s);
}

演示效果:

任务升级:将Sales结构及相关的函数转换为一个类及其方法。用构造函数替换void setSales(Sales & s,const double ar[],int n)函数。用构造函数实现void setSales(Sales & s)方法的交互版本。将类保留在名称空间SALES中 

源代码:

test.h

namespace SALES 
{
	class Sales
	{
	private:
		static const int QUARTERS = 4;
		double sales[QUARTERS];
		double average;
		double max;
		double min;
	public:
		void setSales(const double ar[], int n);
		void setSales();
		void showSales() const;
	};
}

test.cpp

#include "test.h"
using namespace SALES;

int main()
{
	Sales ann;
	Sales andy;
	double sales[4] = { 1.2,3.3,4.5,6.7 };

	ann.setSales(sales, 4);
	andy.setSales();

	ann.showSales();
	andy.showSales();
	return 0;

}

test_function.cpp

演示效果:

#include "test.h"
#include <iostream>

using namespace std;
namespace SALES 
{
	void Sales::setSales(const double ar[], int n)
	{
		double total = 0;
		this->max = this->min = ar[0];
		for (int i = 0; i < n; i++)
		{
			this->sales[i] = ar[i];
			if (this->max < ar[i])
				this->max = ar[i];
			else if (this->min > ar[i])
				this->min = ar[i];
			total += ar[i];
		}
		this->average = total / n;
	}

	void Sales::setSales()
	{
		double ar[4];
		int n = 4;
		cout << "请输入四个销售业绩: ";
		for (int i = 0; i < n; i++)
		{
			cin >> ar[i];
		}

	int total = 0;
	this->max = this->min = ar[0];
	for (int i = 0; i < n; i++)
	{
		this->sales[i] = ar[i];
		if (this->max < ar[i])
			this->max = ar[i];
		else if (this->min > ar[i])
			this->min = ar[i];
		total += ar[i];
	}
	this->average = total / n;
	}
	void Sales::showSales() const
	{
		cout << "销售业绩分别为: ";
		for (int i = 0; i < 4; i++)
		{
			cout << this->sales[i] << " ";
		}
		cout << endl;
		cout << "最大值: " << this->max << "最小值: " << this->min << "平均值: " << this->average << endl;
	}

}

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

猜你喜欢

转载自blog.csdn.net/little_startoo/article/details/143103757