C语言 采用数组的结构(一维数组或二维数组)和子函数调用的方式实现一个具有如下功能要求的小系统: 1、系统具有欢迎界面,并能为用户提供简单菜单显示,让用户可以根据需要选择相应的功能。 2、录入一个班所有学生某门课的成绩(学生人数自定)。 3、输出显示一个班所有学生某门课的成绩。 4、统计成绩各个分数段的人数及比例。(100~90为优秀,89~80为良好,79~70为中等,69~60为及格,59~0为不及格。) 5、计算并输出平均成绩。 6、统计并输出及格率。 7、输出最高成绩。 8、输出最低成绩。
时间: 2023-07-16 18:13:11 浏览: 80
juzhenchengfa.rar.rar_C语言二维数组_QT 矩阵_qt二维数组_二维数组
以下是一个实现上述功能的 C 代码示例:
```c
#include <stdio.h>
#define MAX_STUDENT_NUM 100
#define SCORE_RANGE_NUM 5
int main() {
int student_num, i, j;
float score[MAX_STUDENT_NUM], sum = 0, ave, pass_rate;
int score_range[SCORE_RANGE_NUM] = {0}, max_score = 0, min_score = 100;
// 欢迎界面
printf("欢迎使用成绩管理系统!\n");
// 录入学生人数和成绩
printf("请输入学生人数:");
scanf("%d", &student_num);
printf("请输入%d个学生的成绩:\n", student_num);
for (i = 0; i < student_num; i++) {
printf("学生%d的成绩:", i + 1);
scanf("%f", &score[i]);
}
// 输出所有学生的成绩
printf("\n所有学生的成绩为:\n");
for (i = 0; i < student_num; i++) {
printf("学生%d的成绩为:%.1f\n", i + 1, score[i]);
}
// 统计各个分数段的人数和比例
for (i = 0; i < student_num; i++) {
if (score[i] >= 90) {
score_range[0]++;
} else if (score[i] >= 80) {
score_range[1]++;
} else if (score[i] >= 70) {
score_range[2]++;
} else if (score[i] >= 60) {
score_range[3]++;
} else {
score_range[4]++;
}
}
printf("\n各个分数段的人数及比例为:\n");
for (i = 0; i < SCORE_RANGE_NUM; i++) {
printf("%d~%d分的人数为:%d,比例为:%.2f%%\n",
(100 - i * 10), (90 - i * 10), score_range[i],
(float)score_range[i] * 100 / student_num);
}
// 计算平均成绩和及格率
for (i = 0; i < student_num; i++) {
sum += score[i];
if (score[i] >= 60) {
pass_rate++;
}
if (score[i] > max_score) {
max_score = score[i];
}
if (score[i] < min_score) {
min_score = score[i];
}
}
ave = sum / student_num;
pass_rate = pass_rate / student_num * 100;
printf("\n平均成绩为:%.1f,及格率为:%.2f%%\n", ave, pass_rate);
// 输出最高成绩和最低成绩
printf("\n最高成绩为:%d,最低成绩为:%d\n", max_score, min_score);
return 0;
}
```
这个代码通过一个 `score` 数组来存储所有学生某门课的成绩,通过 `for` 循环来处理各种统计和输出操作。其中,分数段的人数和比例使用了另一个 `score_range` 数组来统计,平均成绩、及格率、最高成绩和最低成绩使用了一些变量来计算和存储。这个代码可以根据实际需求进行修改和扩展。
阅读全文