填空题:静态成员---计算学生个数
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
