G 静态成员的应用--统计教师们的平均工资

G 静态成员的应用--统计教师们的平均工资

时间: 1ms        内存:128M

描述:

教师最近要涨工资了,需要统计出教师的个数和平均工资。
教师信息的输入如下:
            教师姓名(name)            工资(money)
            张三                               3089.2
            李四                               5040.8
            王五                               6890.97
            赵六                              1000

在下面的程序段基础上完成整个设计,统计教师个数和计算教师们的平均工资。

注意:
(1)程序中与工资相关的数据都用double数据,得到的平均工资也用double表示,保留两位有效数字    
(2)要求用静态数据成员和静态成员函数
(3)只提交begin到end部分的代码

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class teacher
{
  private:
      string name; //姓名
      double money;  //工资
      static int count;  //记录教师对象个数
      static double total;    //记录所有教师的总工资
  public:
     teacher(); //构造函数
     void input() //输入教师信息
     {
        cin>>name>>money;
     }
    double gettotal();  //计算所有教师工资总数
    static double average(); //获取教师平均工资
    static int getcount();  //获取教师对象个数 
};

//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************
 


//********************* end ********************

int main()
{
   int n;
   cin>>n;  //输入教师个数

   teacher *p=new teacher[n];

   while(n--)
   { 
      p->input(); //输入教师信息
      p->gettotal(); //计算d所有教师工资总数
      p++;
   }   
 
   cout<<"teacher count="<<teacher::getcount()<<endl;
   cout<<"average money="<<teacher::average()<<endl;
   return 0;
}

输入:

教师个数
每个教师信息(姓名和工资)

输出:

教师个数和平均工资

示例输入:

4
张三     3089.2
李四     5040.8
王五     6890.97
赵六     1000

示例输出:

teacher count=4
average money=4005.24

提示:

参考答案(内存最优[1504]):


#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class teacher
{
  private: 
      string name; //姓名
      double money;  //工资
      static int count;  //记录教师对象个数
      static double total;    //记录所有教师的总工资
  public:
     teacher(); //构造函数
     void input() //输入教师信息
     {
        cin>>name>>money;
     }
    double gettotal();  //计算所有教师工资总数
    static double average(); //获取教师平均工资
    static int getcount();  //获取教师对象个数  
};


//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************


int teacher::count=0;    //类的静态成员在类外进行初始化
   double teacher::total=0;    //类的静态成员在类外进行初始化 

   teacher::teacher() //构造函数
   {
     count++;
   }
    
   double teacher::gettotal()  //计算所有教师工资总数
   {
     total=total+money;
	 return total;
   }

   double teacher::average()//获取教师平均工资
   {
     return total/count;
   }

   int teacher::getcount() //获取教师对象个数  
   {
      return count;
   }

//********************* end ********************

int main()
{
   int n;
   cin>>n;  //输入教师个数

   teacher *p=new teacher[n];

   while(n--)
   {  
      p->input(); //输入教师信息
      p->gettotal(); //计算d所有教师工资总数
      p++;
   }    
 
   cout<<"teacher count="<<teacher::getcount()<<endl;
   cout<<"average money="<<teacher::average()<<endl;
   return 0;
}

参考答案(时间最优[0]):


#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class teacher
{
  private: 
      string name; //姓名
      double money;  //工资
      static int count;  //记录教师对象个数
      static double total;    //记录所有教师的总工资
  public:
     teacher(); //构造函数
     void input() //输入教师信息
     {
        cin>>name>>money;
     }
    double gettotal();  //计算所有教师工资总数
    static double average(); //获取教师平均工资
    static int getcount();  //获取教师对象个数  
};


//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************


int teacher::count=0;    //类的静态成员在类外进行初始化
   double teacher::total=0;    //类的静态成员在类外进行初始化 

   teacher::teacher() //构造函数
   {
     count++;
   }
    
   double teacher::gettotal()  //计算所有教师工资总数
   {
     total=total+money;
	 return total;
   }

   double teacher::average()//获取教师平均工资
   {
     return total/count;
   }

   int teacher::getcount() //获取教师对象个数  
   {
      return count;
   }

//********************* end ********************

int main()
{
   int n;
   cin>>n;  //输入教师个数

   teacher *p=new teacher[n];

   while(n--)
   {  
      p->input(); //输入教师信息
      p->gettotal(); //计算d所有教师工资总数
      p++;
   }    
 
   cout<<"teacher count="<<teacher::getcount()<<endl;
   cout<<"average money="<<teacher::average()<<endl;
   return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

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