-->
当前位置:首页 > 题库 > 正文内容

函数题:CStudent类的静态数据

Luz3年前 (2021-10-19)题库691
设计一个表示学生的CStudent类: <br>
1.定义CStudent类的基本数据成员,描述学生具有的基本属性,如学号、姓名、性别等。<br>
2.定义5门课程的成绩数组scores;<br>
3.定义一个静态的整型数据成员num,用来存放班级中所有学生的总数; <br>
4.定义静态成员函数getnum用来读取数据成员num; <br>
5.定义成员函数display()显示学生的基本信息,成员函数getname()返回学生的姓名。<br>
### CStudent类定义如下:
c++
#include <iostream>
#include <string.h>
using namespace std;
class CStudent{
char name[10];
char sex[10];
int age;
float scores[5];
static int num;
public:
CStudent(); //参数表为空的构造函数
CStudent(char sname[],char ssex[],int sage,float s[]);//构造函数
CStudent(CStudent &p); //复制构造函数
~CStudent();//析构函数
static int getnum(); //读取数据成员num
void display()//显示学生的基本信息:学号、姓名、性别和课程成绩
{
cout<<"name:"<<name<<endl;
cout<<"score:"<<scores[0]<<","<<scores[1]<<","<<scores[2]<<","<<scores[3]<<","<<scores[4]<<endl;
}
char* getname(); //得到学生的姓名
};
/* 请在这里填写答案 */

### 裁判测试程序样例:
c++
int main(){
char name1[10],name2[10];
cin>>name1>>name2;
float a1[]={81,85,99,95,82},a2[]={90,89,78,91,85};
cout<<"total number:"<<CStudent::getnum()<<endl;
CStudent s1(name1,"male",21,a1);
CStudent s2(name2,"female",20,a2);
cout<<"total number:"<<s2.getnum()<<endl;
s2.display();
s1.~CStudent();
cout<<"total number:"<<s2.getnum()<<endl;
return 0;
}


### 输入样例:
in
li
wang


### 输出样例:
out
total number:0
total number:2
name:wang
score:90,89,78,91,85
total number:1







答案:若无答案欢迎评论

本题考核静态数据的作用<br>
静态数据成员num,用以记录学生对象的总数目,因此要注意在构造函数,复制构造函数和析构函数中静态数据都要进行相应的操作。<br>
构造函数,复制构造函数是创建对象时系统自动创建的,因此num需要加1,析构函数是删除对象时创建的,因此num需要减1

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。