文章目录
- C语言编程:学生成绩管理系统
- 一、程序概述
- 二、代码实现
- 三、程序解释
C语言编程:学生成绩管理系统
在这篇文章中,我们将一起探讨如何使用C语言来创建一个简单的学生成绩管理系统。这个系统将允许用户输入学生数量、学号和成绩,然后对学生的成绩进行排序,并输出平均分、平均分以下的学生学号以及60分以上的学生的学号和成绩。
一、程序概述
这个程序分为几个主要部分:
- 输入学生数量和对应的学号与成绩。
- 使用冒泡排序算法对学生成绩进行排序。
- 计算并输出平均分。
- 输出排序后的学生学号和成绩。
- 输出平均分以下的学生学号。
- 输出60分以上的学生的学号和成绩。
二、代码实现
以下是实现这个系统的C语言代码:
#include <stdio.h>
int main() {
int n;
printf("请输入学生数量 n:\n");
scanf("%d", &n);
int scores[n];
int numbers[n];
for (int i = 0; i < n; i++) {
printf("输入学号和成绩:\n");
scanf("%d", &numbers[i]);
scanf("%d", &scores[i]);
}
// 使用冒泡排序算法对学生成绩进行排序
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - 1; j++) {
if (scores[j] > scores[j + 1]) {
// 成绩交换
int temp_score = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp_score;
// 学号交换
int temp_number = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp_number;
}
}
}
// 计算平均分
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
float average = sum * 1.0 / n;
printf("平均分是:%.2f\n", average);
// 输出排序后的学生学号和成绩
printf("按成绩排序后的学生学号和成绩:\n");
for (int i = 0; i < n; i++) {
printf("学号:%d 成绩:%d\n", numbers[i], scores[i]);
}
// 输出平均分以下学生的学号
printf("平均分以下的学生学号:\n");
for (int i = 0; i < n; i++) {
if (scores[i] < average) {
printf("%d ", numbers[i]);
}
}
printf("\n");
// 输出60分以上的学生的学号和成绩
printf("60分以上的学生的学号和成绩:\n");
for (int i = 0; i < n; i++) {
if (scores[i] > 60) {
printf("学号:%d 成绩:%d\n", numbers[i], scores[i]);
}
}
return 0;
}
三、程序解释
-
输入学生信息:首先,程序提示用户输入学生的数量,然后循环接收每个学生的学号和成绩。
-
排序算法:使用冒泡排序算法对成绩进行排序。冒泡排序的基本思想是重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
-
计算平均分:通过累加所有学生的成绩并除以学生数量来计算平均分。
-
输出结果:程序输出排序后的学生学号和成绩,平均分以下的学生学号,以及60分以上的学生的学号和成绩。