📄 clsstudent.h
字号:
#include <string>
using namespace std;
const int EXERCISE = 0; // 平时作业分数
const int REPORT = 1; // 实验报告分数
const int MIDTERM = 2; // 期中考试分数
const int TERMINAL = 3; // 期末考试分数
const int MARK = 4; // 总评分数
// 基类:抽象类
class Student {
protected:
string m_ID; // 数据成员:学号
string m_Name; // 数据成员:姓名
float m_Mark; // 数据成员:分数
public:
Student(string ID, string Name, float Mark = 0.)
: m_ID(ID), m_Name(Name), m_Mark(Mark) {} // 构造函数
Student() {} // 构造函数
virtual ~Student() {} // 虚析构函数
Student(Student& student) // 拷贝构造函数
{
m_ID = student.m_ID;
m_Name=student.m_Name;
m_Mark=student.m_Mark;
}
string GetID() { return m_ID; } // 取学号
string GetName() { return m_Name; } // 取姓名
float GetMark() { return m_Mark; } // 取总评分数
void CalcMark() // 计算总评分数
{
m_Mark = MarkAlgo();
}
virtual float MarkAlgo() = 0; // 总评分数算法:纯虚函数
};
// 第一级派生类
class Student1 : public Student {
protected:
float m_Midterm; // 期中考试分数
float m_Terminal; // 期末考试分数
public:
Student1(string ID, string Name, float Midterm, float Terminal) : Student(ID, Name)
{
m_Midterm = Midterm;
m_Terminal = Terminal;
}
Student1() {}
void SetStudent(string ID, string Name, float Midterm, float Terminal)
{
m_ID = ID;
m_Name = Name;
m_Midterm = Midterm;
m_Terminal = Terminal;
}
float GetMidterm() { return m_Midterm; } // 取期中考试分数
float GetTerminal() { return m_Terminal; } // 取期末考试分数
float MarkAlgo() // 总评分数算法
{
return m_Midterm * 0.3 + m_Terminal * 0.7;
}
};
// 第二级派生类
class Student2 : public Student1 {
protected:
float m_Exercise; // 平时作业分数
float m_Report; // 实验报告分数
public:
Student2(string ID, string Name, float Exercise, float Report, float Midterm, float Terminal) : Student1(ID, Name, Midterm, Terminal)
{
m_Exercise = Exercise;
m_Report = Report;
m_Midterm = Midterm;
m_Terminal = Terminal;
}
Student2() {}
void SetStudent(string ID, string Name, float Exercise, float Report, float Midterm, float Terminal)
{
m_ID = ID;
m_Name = Name;
m_Exercise = Exercise;
m_Report = Report;
m_Midterm = Midterm;
m_Terminal = Terminal;
}
float GetExercise() { return m_Exercise; } // 取平时作业分数
float GetReport() { return m_Report; } // 取实验报告分数
float MarkAlgo() // 总评分数算法
{
return m_Exercise * 0.1 + m_Report * 0.2 + m_Midterm * 0.1 + m_Terminal * 0.6;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -