填空题:静态成员---计算学生个数

填空题:静态成员---计算学生个数

时间: 1ms        内存:128M

描述:

学生类声明已经给出,在主程序中根据输入信息输出实际建立的学生对象个数,以及所有学生对象的成绩总和。
在下面的程序段基础上完成设计,只提交begin到end部分的代码
#include <iostream>
#include <string>
using namespace std;
class student
private:
string name;  //学生姓名
int age;      //学生年龄
int score;    //学生成绩
       static int count; //记录学生对象个数
static int sum;  //记录所有学生的总成绩
public:
student(string n,int a,int s);  //构造函数
static int get_count();  //静态成员函数,获取count的值
static int get_sum();   //静态成员函数,获取sum的值
};
 
//将程序需要的成份写下来,只提交begin到end部分的代码
//******************** begin ********************
int student::count=0;
_____(1)_______;
________(2)___________
{
     name=n;
age=a;
score=s;
count++;
sum+=s;
}
int student::get_count()
{
    ______(3)_______;
}
int student::get_sum()
{
    ______(4)______;
}
//********************* end ********************
int  main( )
{
  string name;
  int age;
  int score;
  int n;
  cin>>n;  //输入学生对象个数
  while(n--)
  {
         cin>>name>>age>>score;
new student(name,age,score);
  }
  cout<<"the count of student objects=";
  cout<<student::get_count()<<endl;
  cout<<"the sum of all students score=";
  cout<<student::get_sum()<<endl;
  return 0;
}

输入:

学生个数

对应学生个数的学生信息(姓名    年龄    成绩)

输出:

学生个数

所有学生的成绩之和

示例输入:

3
guo  34  98
zhang    56  60
li   23   87

示例输出:

the count of student objects=3
the sum of all students score=245

提示:

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


#include <iostream>
using namespace std;

class Student
{
public:
    void input();
    void sort();
    void output();
private:
    int grade[10];
};

void Student::input()
{
    for(int i=0;i<10;i++)
        cin>>grade[i];
}

void Student::output()
{
    for(int i=0;i<10;i++)
    {
        cout<<grade[i];
        if(i==9)cout<<endl;
        else cout<<' ';
    }
}void Student::sort()
{
    int i,j,k,t;
    for(i=0;i<9;i++)
    {
        k=i;
        for(j=i+1;j<10;j++)
            if(grade[j]>grade[k])k=j;
        t=grade[k];
        grade[k]=grade[i];
        grade[i]=t;
    }
}
int main()
{
    Student GroupA;
    GroupA.input();
    GroupA.sort();
    GroupA.output();
    return 0;   
}

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


#include <iostream>
using namespace std;

class Student
{
public:
    void input();
    void sort();
    void output();
private:
    int grade[10];
};

void Student::input()
{
    for(int i=0;i<10;i++)
        cin>>grade[i];
}

void Student::output()
{
    for(int i=0;i<10;i++)
    {
        cout<<grade[i];
        if(i==9)cout<<endl;
        else cout<<' ';
    }
}void Student::sort()
{
    int i,j,k,t;
    for(i=0;i<9;i++)
    {
        k=i;
        for(j=i+1;j<10;j++)
            if(grade[j]>grade[k])k=j;
        t=grade[k];
        grade[k]=grade[i];
        grade[i]=t;
    }
}
int main()
{
    Student GroupA;
    GroupA.input();
    GroupA.sort();
    GroupA.output();
    return 0;   
}

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

点赞

发表评论

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