利用c语言编写代码, 设计一个学生类Student,有数据成员:学号(num)、姓名(name)、英语成绩(score1)、计算机成绩(score2)、平均成绩(average)、英语总分(sum1)、计算机总分(sum2),编写必要的成员函数对5位学生的英语总分、计算机总分进行统计。(提示:将sum1,sum2设置为静态变量。)
时间: 2024-02-04 13:02:21 浏览: 81
好的,这是一个C语言的实现Student类的示例代码:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
int num;
char name[20];
float score1;
float score2;
float average;
static float sum1;
static float sum2;
} Student;
float Student::sum1 = 0;
float Student::sum2 = 0;
void calc_average(Student *s) {
s->average = (s->score1 + s->score2) / 2;
}
void calc_sum(Student *s) {
Student::sum1 += s->score1;
Student::sum2 += s->score2;
}
int main() {
Student students[5];
for (int i = 0; i < 5; i++) {
printf("请输入第 %d 位学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].num);
printf("姓名:");
scanf("%s", students[i].name);
printf("英语成绩:");
scanf("%f", &students[i].score1);
printf("计算机成绩:");
scanf("%f", &students[i].score2);
calc_average(&students[i]);
calc_sum(&students[i]);
printf("第 %d 位学生的信息:\n", i + 1);
printf("学号:%d\n", students[i].num);
printf("姓名:%s\n", students[i].name);
printf("英语成绩:%.2f\n", students[i].score1);
printf("计算机成绩:%.2f\n", students[i].score2);
printf("平均成绩:%.2f\n", students[i].average);
printf("\n");
}
printf("所有学生的英语总分为:%.2f\n", Student::sum1);
printf("所有学生的计算机总分为:%.2f\n", Student::sum2);
return 0;
}
```
在上面的代码中,我们首先定义了一个结构体 `Student` 用来表示学生类,包括学号、姓名、两门成绩以及平均成绩等数据成员。在结构体中,我们还定义了两个静态变量 `sum1` 和 `sum2`,用来统计所有学生的英语总分和计算机总分。
然后,我们定义了两个函数 `calc_average` 和 `calc_sum` 分别用来计算每个学生的平均成绩和更新所有学生的总分。在 `main` 函数中,我们使用循环来输入每个学生的信息,并调用上述两个函数来计算平均成绩和更新总分。最后,我们输出所有学生的总分。
需要注意的是,C语言中没有类的概念,我们使用结构体来模拟类的实现。同时,C语言中也没有关键字 `static` 可以用来定义静态变量,我们可以将其作为结构体内的一个成员,然后在外部定义和初始化。
阅读全文