请问如何通过自定义函数设计实现对某班C语言、计算机网络、数据库三门课程的成绩做统计处理,主要包括:显示每个学生的总分、平均分和每门课程的平均分。

包括学生的总分 平均分和每门课程的总分 利用数组 模块化程序设计思想 最好保证每个模块的独立性

以下是一个基于C语言的模块化程序设计,可以实现对某班C语言、计算机网络、数据库三门课程成绩的统计处理。该程序通过自定义函数实现对学生的总分、平均分和每门课程的平均分的计算,利用数组来存储学生的成绩信息,保证每个模块的独立性。


#include <stdio.h>

#define STUDENT_NUM 5   // 学生数
#define COURSE_NUM 3    // 课程数

// 计算每个学生的总分和平均分
void calc_student_score(float score[][COURSE_NUM], float total[], float average[]) {
    for (int i = 0; i < STUDENT_NUM; i++) {
        total[i] = 0;
        for (int j = 0; j < COURSE_NUM; j++) {
            total[i] += score[i][j];
        }
        average[i] = total[i] / COURSE_NUM;
    }
}

// 计算每门课程的总分和平均分
void calc_course_score(float score[][COURSE_NUM], float total[], float average[]) {
    for (int j = 0; j < COURSE_NUM; j++) {
        total[j] = 0;
        for (int i = 0; i < STUDENT_NUM; i++) {
            total[j] += score[i][j];
        }
        average[j] = total[j] / STUDENT_NUM;
    }
}

int main() {
    float score[STUDENT_NUM][COURSE_NUM] = { // 存储学生的成绩信息
        {89.5, 85.0, 92.5},
        {78.0, 91.5, 83.5},
        {92.0, 87.5, 91.0},
        {85.5, 92.0, 79.5},
        {90.0, 86.5, 88.0}
    };
    float student_total[STUDENT_NUM], student_average[STUDENT_NUM]; // 每个学生的总分和平均分
    float course_total[COURSE_NUM], course_average[COURSE_NUM]; // 每门课程的总分和平均分

    // 计算每个学生的总分和平均分
    calc_student_score(score, student_total, student_average);

    // 计算每门课程的总分和平均分
    calc_course_score(score, course_total, course_average);

    // 显示每个学生的总分、平均分和每门课程的平均分
    printf("学生号\t总分\t平均分\tC语言\t计算机网络\t数据库\n");
    for (int i = 0; i < STUDENT_NUM; i++) {
        printf("%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", i + 1, student_total[i], student_average[i], score[i][0], score[i][1], score[i][2]);
    }
    printf("课程总分\t\t\t%.2f\t%.2f\t%.2f\n", course_total[0], course_total[1], course_total[2]);
    printf