实现结构体
  • 板块学术版
  • 楼主CRRC
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/28 17:31
  • 上次更新2024/7/28 19:15:17
查看原帖
实现结构体
1251448
CRRC楼主2024/7/28 17:31

请按下列要求实现一个用于表示学生的结构体类型 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;
}
2024/7/28 17:31
加载中...