请设计学生类Student,描述学生信息。请设计类成员数据char _name[20], char _no[20], MyDate _birth, int _score分别描述姓名、学号、生日、成绩。设计成员函数: 构造函数Student(const char* name, const char* no, int year, int month, int day, int score ); 输出学生信息函数void Show(); 改写成绩函数 void SetScore(int newScore); 读取学生成绩函数int GetScore() .
时间: 2023-06-11 08:10:13 浏览: 197
以下是设计的学生类Student:
```C++
#include <iostream>
#include <string.h>
class MyDate {
public:
MyDate(int year, int month, int day) : _year(year), _month(month), _day(day) {}
void Show() { std::cout << _year << "-" << _month << "-" << _day; }
private:
int _year;
int _month;
int _day;
};
class Student {
public:
Student(const char* name, const char* no, int year, int month, int day, int score)
: _score(score) {
strncpy(_name, name, 19);
_name[19] = '\0';
strncpy(_no, no, 19);
_no[19] = '\0';
_birth = new MyDate(year, month, day);
}
void Show() {
std::cout << "姓名:" << _name << std::endl;
std::cout << "学号:" << _no << std::endl;
std::cout << "生日:";
_birth->Show();
std::cout << std::endl;
std::cout << "成绩:" << _score << std::endl;
}
void SetScore(int newScore) {
_score = newScore;
}
int GetScore() {
return _score;
}
private:
char _name[20];
char _no[20];
MyDate* _birth;
int _score;
};
```
其中,`MyDate`类描述了生日信息,`Student`类描述了学生信息。在构造函数中,使用`strncpy`函数复制字符串,避免了数组越界的问题。在`Show`函数中,使用`_birth->Show()`调用`MyDate`类的`Show`函数输出生日信息。`SetScore`函数用于修改成绩,`GetScore`函数用于获取成绩。
阅读全文