.定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。其中姓名定义为长度为18的字符数组,其它数据成员类型为整型,数学总成绩、英语总成绩和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数,数学总成绩,英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。
代码如下:
#include <iostream>
#include <cmath>
#include <string.h>
using namespace std;
class student
{
private:
char name[18];//定义一个长度为18的姓名数组
int num,mathscore,englishscore;//定义三个成员数据,人数,数学成绩,英语成绩
static int count,mts,ets;//定义静态成员数据,计算,数学总成绩,英语总成绩
public:
student(char nm[],int nu,int math,int english):num(nu),mathscore(math),englishscore(english)//构造函数
{
strcpy(name,nm);
count++;
mts+=math;
ets+=english;
}
void showBase()//显示数据
{
cout<<"学生姓名:"<<name<<endl;
cout<<"学号:"<<num<<endl;
cout<<"数学成绩为:"<<mathscore<<endl;
cout<<"英语成绩为:"<<englishscore<<endl;
}
static void showstatic()//静态函数显示数据
{
cout<<"人数:"<<count<<endl;
cout<<"数学总成绩:"<<mts<<endl;
cout<<"英语总成绩:"<<ets<<endl;
}
};
//静态成员数据初始化
int student::count=0;
int student::mts=0;
int student::ets=0;
int main(){
student stu[3]={student("aaa",1,78,98),student("bbb",2,87,86),student("ccc",3,90,99)};//数据成员赋值
stu[0].showBase();//调用函数
stu[1].showBase();//调用函数
stu[2].showBase();//调用函数
stu[0].showstatic();//只调用一次计算总成绩的函数,因为每调用一次showBase函数,都会自动计算成绩总和,因此最后只用显示一次总成绩
}