
针对学生成绩管理系统,利用二维数组实现多门课程管理功能模块的设计
引自讯飞星火
解析:首先需要定义一个二维数组score,用于存放学生的成绩。然后实现输入成绩的函数inputScore,输出成绩的函数outputScore,获取学生总成绩的函数getStuScore,获取课程总成绩的函数getCouScore,输出学生平均成绩的函数outputStuAve和输出课程平均成绩的函数outputCouAve。
代码如下:
#include <stdio.h>
#define M 30
#define N 5
void inputScore(int score[M][N], int len);
void outputScore(int score[M][N], int len);
void getStuScore(int score[M][N], int len);
void getCouScore(int score[M][N], int len);
void outputStuAve(int score[M][N], int len);
void outputCouAve(int score[M][N], int len);
int main() {
int score[M][N];
inputScore(score, M * N);
outputScore(score, M * N);
getStuScore(score, M * N);
getCouScore(score, M * N);
outputStuAve(score, M * N);
outputCouAve(score, M * N);
return 0;
}
void inputScore(int score[M][N], int len) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &score[i][j]);
}
}
}
void outputScore(int score[M][N], int len) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", score[i][j]);
}
printf("
");
}
}
void getStuScore(int score[M][N], int len) {
for (int i = 0; i < M; i++) {
int sum = 0;
for (int j = 0; j < N; j++) {
sum += score[i][j];
}
score[i][N] = sum;
}
}
void getCouScore(int score[M][N], int len) {
for (int j = 0; j < N; j++) {
int sum = 0;
for (int i = 0; i < M; i++) {
sum += score[i][j];
}
score[M][j] = sum;
}
}
void outputStuAve(int score[M][N], int len) {
for (int i = 0; i < M; i++) {
printf("%d ", score[i][N] / N);
}
printf("
");
}
void outputCouAve(int score[M][N], int len) {
for (int j = 0; j < N; j++) {
printf("%d ", score[M][j] / M);
}
printf("
");
}