C++ primer plus第六版课后编程题答案10.4


 

SALES.h

#ifndef SALES_H_
#define SALES_H_	//测试这一句的作用
namespace SALES{
	class Sales{
		const static int QUARTERS=4;
	private:
		double sales[QUARTERS];
		double average;
		double max;
		double min;
	public:
		Sales(const double ar[],int n);
		Sales();
		void showS(int n){
			for(int i=0;i<n;i++)
			std::cout<<sales[i]<<" ";//用于方便显示数组内容;
		};
		void showSales();
	};//不能缺少";"??
};
#endif

SALES.cpp

#include <iostream>
#include "SALES.h"
using namespace std;
//using namespace SALES;
static int m=0;

SALES::Sales::Sales(const double ar[],int n)
{
	bool flag=false;//用于判断max,min,avg是否要设置为0;
	double Max=-999;
	double Min=999;
	double Avg=0;
	double Sum=0;
	if(n<0)
		cout<<"\nError input!"<<endl;
	if(n>4)
	{
		n=4;
		m=n;
	}
	if(n<=4&&n>0)
	{
		m=n;//记得要及时更新m的值,否则showS(m)容易出错
		flag=true;//这里就不是设置为0;
		for(int i=0;i<n;i++)
		{
			sales[i]=ar[i];
			Sum+=sales[i];
			if(Max<sales[i])
				Max=sales[i];
			if(Min>sales[i])
				Min=sales[i];
		}
	}
	//设置max,min,avg
	if(flag)
	{
		Avg=Sum*1.0/m;
		max=Max;
		min=Min;
		average=Avg;
	}
	else
	{
		max=0;
		min=0;
		average=0;
	}
}
SALES::Sales::Sales()
{
	m=4;//切记更新
	double Max=-999;
	double Min=999;
	double Avg=0;
	double Sum=0;
	int i=0;
	while(i<4)
	{
		cout<<"\nPlease enter the number:";
		cin>>sales[i];
		Sum+=sales[i];
		if(Max<sales[i])
			Max=sales[i];
		if(Min>sales[i])
			Min=sales[i];
		i++;
	}
	Avg=Sum*1.0/m;
	max=Max;
	min=Min;
	average=Avg;
}
void SALES::Sales::showSales()
{
	cout<<"\nshow on!"<<endl;
	cout<<"arr is:";
	//SALES::Sales::
	showS(m);
	cout<<"\n"<<"max="<<max<<"  min="<<min<<"  avg="<<average<<endl;
	cout<<"show end!"<<endl;
}



main104.cpp

#include <iostream>
#include "SALES.h"
using namespace std;
using namespace SALES;
void main104()
{
	double arr[6]={10,5.5,4.5,7.4,5.6,9.7};
	Sales s1(arr,4);
	s1.showSales();
	Sales s2=Sales();
	s2.showSales();

	system("pause");
	




}

 

 

 

 


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注