请按下列要求实现一个用于表示学生的结构体类型 Student :
结构体成员变量有:
字符串类型的姓名 name 整数类型的考试成绩 score1 和平时成绩 score2 实数类型的综合成绩 final 结构体的成员函数有:
input() 函数:无参数、无返回值,功能是输入某个结构体变量的姓名、考试成绩、平时成绩。 calc() 函数:无参数、无返回值,功能是用公式(综合成绩 = 考试成绩 * 80% + 平时成绩 * 20%)计算综合成绩,并存储到对应的成员变量中。 output() 函数:无参数、无返回值,功能是输出某个结构体变量的姓名与综合成绩,以空格隔开,成绩输出时保留一位小数,输出后换行。 operator < 函数(小于号运算符函数):参数是另一个 Student 类型的结构体变量,返回值为布尔类型,功能是比较两个学生变量之间的比较关系,比较规则如下: 当两个学生综合成绩不同时,判断当前学生的综合成绩是否更小; 当综合成绩相同时,判断当前学生的考试成绩是否更小; 当两个学生的成绩完全相同时,判断当前学生的姓名字典序是否更小。 你只需要提交结构体定义的代码,框架如下
struct Student{
/* 成员变量 */
void input() { /* 按要求实现函数 */ }
void calc() { /* 按要求实现函数 */ }
void output() { /* 按要求实现函数 */ }
bool operator < (const Student & o) const { /* 按要求实现函数 */ }
};
你提交的结构体会在下文这个已经编写好的主函数中被使用:
主函数会声明两个结构体变量 a 和 b,代表两个学生 并分别调用两个学生的 input() 函数进行输入 再分别调用两个学生的 calc() 函数计算两个学生各自的成绩 最后使用小于号运算符比较两个学生,并输出“较小”的那个学生的信息 除了结构体的定义,其余部分程序如下:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
/*
你实现的结构体
*/
int main() {
Student a, b;
a.input();
b.input();
a.calc();
b.calc();
if (a < b) {
a.output();
} else {
b.output();
}
return 0;
}