定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。其中数学总成绩、英语总成绩和人数为静态数据成员(考虑为什么它们三个要定义成静态数据成员),成员函数包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数,数学总成绩,英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
string name;
int num;
int mathScore;
int englishScore;
static int count;
static int mathTotalScore;
static int englishTotalScore;
public:
Student(string,int,int,int);
void ShowBase (){
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<num<<endl;
cout<<"数学成绩:"<<mathScore<<endl;
cout<<"英语成绩:"<<englishScore<<endl;
}
void ShowStatic(){
cout<<"人数:"<<count<<endl;
cout<<"数学总成绩:"<<mathTotalScore<<endl;
cout<<"英语总成绩:"<<englishTotalScore<<endl;
}
};
Student::Student(string nm,int nu,int math,int english):num(nu),mathScore(math),englishScore(english)
{
name=nm;
count++;
mathTotalScore+=mathScore;
englishTotalScore+=englishScore;
}
int Student::count=0;
int Student::englishTotalScore=0;
int Student::mathTotalScore=0;
int main()
{
cout<<"-------------------------------"<<endl;
Student Bob("Bob",54563,90,100);
Bob.ShowBase();
cout<<"-------------------------------"<<endl;
Student Frank("Frank",52363,80,120);
Frank.ShowBase();
cout<<"-------------------------------"<<endl;
Student Alex("Alex",54503,130,80);
Alex.ShowBase();
cout<<"-------------------------------"<<endl;
Student Jack("Jack",54343,100,100);
Jack.ShowBase();
cout<<"-------------------------------"<<endl;
Jack.ShowStatic();
return 0;
}
-------------------------------
姓名:Bob
学号:54563
数学成绩:90
英语成绩:100
-------------------------------
姓名:Frank
学号:52363
数学成绩:80
英语成绩:120
-------------------------------
姓名:Alex
学号:54503
数学成绩:130
英语成绩:80
-------------------------------
姓名:Jack
学号:54343
数学成绩:100
英语成绩:100
-------------------------------
人数:4
数学总成绩:400
英语总成绩:400