c语言学生成绩录入系统包括成绩输入,数据计算,数据查找,输出成绩的功能,其中数据计算包括计算学生平均和课程平均
时间: 2024-02-28 21:55:44 浏览: 18
下面是一个简单的 C 语言学生成绩录入系统,包括成绩输入、数据计算、数据查找和输出成绩等功能。其中,数据计算包括计算学生平均和课程平均。
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_SUBJECTS 10
int main() {
int scores[MAX_STUDENTS][MAX_SUBJECTS];
int num_students, num_subjects;
int option, i, j, student_id, subject_id;
double student_avg, subject_avg;
printf("请输入学生人数和科目数:");
scanf("%d %d", &num_students, &num_subjects);
printf("请输入每个学生的成绩:\n");
for (i = 0; i < num_students; i++) {
printf("学生 %d:", i+1);
for (j = 0; j < num_subjects; j++) {
scanf("%d", &scores[i][j]);
}
}
while (1) {
printf("\n请选择要进行的操作:\n");
printf("1. 查询学生平均成绩\n");
printf("2. 查询课程平均成绩\n");
printf("3. 输出所有学生的成绩\n");
printf("4. 退出程序\n");
printf("请输入选项:");
scanf("%d", &option);
switch (option) {
case 1:
printf("请输入要查询的学生学号:");
scanf("%d", &student_id);
if (student_id < 1 || student_id > num_students) {
printf("学生学号无效!\n");
break;
}
student_avg = 0.0;
for (j = 0; j < num_subjects; j++) {
student_avg += scores[student_id-1][j];
}
student_avg /= num_subjects;
printf("学生 %d 的平均成绩为 %.2f\n", student_id, student_avg);
break;
case 2:
printf("请输入要查询的课程编号:");
scanf("%d", &subject_id);
if (subject_id < 1 || subject_id > num_subjects) {
printf("课程编号无效!\n");
break;
}
subject_avg = 0.0;
for (i = 0; i < num_students; i++) {
subject_avg += scores[i][subject_id-1];
}
subject_avg /= num_students;
printf("课程 %d 的平均成绩为 %.2f\n", subject_id, subject_avg);
break;
case 3:
printf("所有学生的成绩如下:\n");
for (i = 0; i < num_students; i++) {
printf("学生 %d:", i+1);
for (j = 0; j < num_subjects; j++) {
printf("%d ", scores[i][j]);
}
printf("\n");
}
break;
case 4:
printf("程序已退出!\n");
return 0;
default:
printf("选项无效!\n");
break;
}
}
return 0;
}
```
在这个示例代码中,我们使用一个二维数组 `scores` 来存储多个学生的成绩,其中第一维表示学生的编号(下标从0开始),第二维表示科目的编号(下标也从0开始)。然后,我们通过循环输入每个学生的成绩,并且提供了三个操作选项以供用户选择。
- 查询学生平均成绩:根据用户输入的学生学号来计算该学生的平均分。注意,用户输入的学号需要减去1才能对应到数组中的下标。
- 查询课程平均成绩:根据用户输入的课程编号来计算该课程的平均分。注意,用户输入的编号需要减去1才能对应到数组中的下标。
- 输出所有学生的成绩:循环遍历数组,输出所有学生的成绩。
当用户选择退出程序时,程序会结束运行。