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


    SALES.h

    #ifndef SALES_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);
    } 
    
    
    
    
    #endif

    SALES.cpp

    #include "SALES.h"
    #include <iostream>
    static int count=0;//用于记录数组有多少个元素
    using  std::cout;
    using std::cin;
    using std::endl;
    namespace SALES
    {
    	
    	void setSales(Sales &s,const double ar[],int n)
    	{
    		count=n;
    		double Avg,Max,Min,Sum=0;
    		if(n>4)	//如果N>4,令N=4
    			n=4;
    		if(n==0)
    		{
    			s.average=0;
    			s.max=0;
    			s.min=0;
    		}
    		if(n<=4&&n>0)
    		{
    			count=n;
    			Avg=Max=Min=ar[0];
    			for(int i=0;i<n;i++)
    			{
    				s.sales[i]=ar[i];
    				Sum+=s.sales[i];
    				if(s.sales[i]>Max)
    					Max=s.sales[i];
    				if(s.sales[i]<Min)
    					Min=s.sales[i];
    			}
    			Avg=Sum*1.0/n;
    			s.average=Avg;
    			s.max=Max;
    			s.min=Min;	
    		}
    
    	
    	
    	}
    	void setSales(Sales &s)
    	{
    		double Max,Min,Avg;
    		Max=-999;	//必须适当初始化
    		Min=9999;
    		Avg=0;
    		double Sum=0;
    		for(int i=0;i<QUARTERS;i++)
    		{
    			cout<<"Please enter the valus:"<<endl;
    			cin>>s.sales[i];
    			Sum+=s.sales[i];
    				if(s.sales[i]>Max)
    					Max=s.sales[i];
    				if(s.sales[i]<Min)
    					Min=s.sales[i];	
    		}
    			Avg=Sum*1.0/QUARTERS;
    			s.average=Avg;
    			s.max=Max;
    			s.min=Min;
    			count=QUARTERS;	//令count=4
    	}
    	void showSales(const Sales &s)
    	{
    		cout<<"show Sales:"<<endl;
    		cout<<"s.sales address="<<s.sales<<endl;
    		
    		//cout<<sizeof(s.sales)<<endl;
    		//cout<<sizeof(double)<<endl;
    		//int count=0;//检测数组元素个数
    		//for(int i=0;s.sales[i]!='';i++)	//不要试图用这个来检测数组元素个数,你可以调试一下就能发现
    		//{//Tips:数组空元素地址内原有的数值不一定为''
    			//cout<<s.sales[i]<<endl;		
    			//count++;
    		//}
    		cout<<"count="<<count<<endl;
    		for(int i=0;i<count;i++)
    			cout<<s.sales[i]<<"  ";
    		cout<<"
    max is :"<<s.max<<endl;
    		cout<<"Min is :"<<s.min<<endl;
    		cout<<"Avg is "<<s.average<<endl;
    		cout<<"show end;"<<endl<<endl;
    	
    	
    	}
    
    
    }

    main94.cpp

    #include <iostream>
    #include "SALES.h"
    using namespace std;
    //using namespace SALES;
    void main94()
    {
    	using SALES::Sales;
    	Sales s1;
    	Sales s2;
    	double arr[7]={5.2,6.3,4.1,2.5,3.0,4.2,7.5};
    	using SALES::setSales;
    	setSales(s1,arr,6);
    	showSales(s1);
    	setSales(s2);
    	showSales(s2);
    	system("pause");
    
    
    
    
    }
    




  • 相关阅读:
    (转)大型分布式网站架构技术总结
    VC中怎么输入特殊符号(如平方、立方等下标符号)
    【转】VC++的Unicode编程
    【转】VC下的Unicode编程
    MFC多国语言——资源DLL
    MFC多国语言——资源副本
    【转】SetThreadLocale解决越南文乱码问题
    【转】msxml 操作xml
    关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
    vc6项目-vc8项目 转换日志
  • 原文地址:https://www.cnblogs.com/qq84435/p/3664829.html
Copyright © 2020-2023  润新知