C++中如何用类来实现多位学生成绩、平均分最高分、最低分的计算
时间: 2023-05-21 17:01:54 浏览: 267
可以定义一个名为 Student 的类,其中包含学生姓名、学号、成绩等属性,以及计算平均分、最高分、最低分的方法。可以使用数组或者列表来存储多个学生的信息,然后遍历数组或者列表,调用计算方法得到平均分、最高分、最低分等信息。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[20];
int id;
float score;
} Student;
typedef struct {
Student students[MAX_STUDENTS];
int count;
} Class;
void add_student(Class *c, char *name, int id, float score) {
if (c->count >= MAX_STUDENTS) {
printf("Error: too many students\n");
return;
}
Student s;
strcpy(s.name, name);
s.id = id;
s.score = score;
c->students[c->count++] = s;
}
float get_average_score(Class *c) {
float sum = 0;
for (int i = 0; i < c->count; i++) {
sum += c->students[i].score;
}
return sum / c->count;
}
float get_max_score(Class *c) {
float max = 0;
for (int i = 0; i < c->count; i++) {
if (c->students[i].score > max) {
max = c->students[i].score;
}
}
return max;
}
float get_min_score(Class *c) {
float min = 100;
for (int i = 0; i < c->count; i++) {
if (c->students[i].score < min) {
min = c->students[i].score;
}
}
return min;
}
int main() {
Class c;
c.count = 0;
add_student(&c, "Tom", 1001, 80);
add_student(&c, "Jerry", 1002, 90);
add_student(&c, "Alice", 1003, 85);
printf("Average score: %.2f\n", get_average_score(&c));
printf("Max score: %.2f\n", get_max_score(&c));
printf("Min score: %.2f\n", get_min_score(&c));
return 0;
}
```
这个程序定义了一个名为 Student 的结构体,其中包含学生姓名、学号、成绩等属性。另外还定义了一个名为 Class 的结构体,其中包含一个 Student 类型的数组和一个计数器 count,用于存储多个学生的信息。程序还定义了 add_student、get_average_score、get_max_score、get_min_score 等函数,用于添加学生、计算平均分、最高分、最低分等信息。在 main 函数中,我们创建了一个 Class 类型的变量 c,添加了三个学生的信息,然后调用计算函数得到平均分、最高分、最低分等信息。
阅读全文