使用C语言设计并实现一个成绩管理系统

使用C语言设计并实现一个成绩管理系统,该系统用于教师管理一门课程的成绩。

系统功能:成绩录入、打印成绩单、修改成绩、统计分数段、统计平均分、统计不及格学生,相关要求:

1) 系统要有主菜单界面,让教师了解系统的功能,以及如何选择系统功能。

2) 系统应该能够让教师自由选择并完成成绩录入、打印成绩单、修改成绩、统计分数段、统计平均分、统计不及格学生等项目中的任何一项或多项工作。

#include <stdio.h>  
  
#define MAX_STUDENTS 100  
#define PASS_MARK 60  
  
struct Student {  
    char name[50];  
    int score;  
};  
  
void printMenu();  
void inputScores(struct Student students[], int *numStudents);  
void printScoreSheet(struct Student students[], int numStudents);  
void modifyScore(struct Student students[], int numStudents);  
void statisticsScoreSegment(struct Student students[], int numStudents);  
void statisticsAverageScore(struct Student students[], int numStudents);  
void statisticsFailedStudents(struct Student students[], int numStudents);  
  
int main() {  
    struct Student students[MAX_STUDENTS];  
    int numStudents = 0;  
    int choice;  
  
    do {  
        printMenu();  
        printf("请输入你的选择(1-6):");  
        scanf("%d", &choice);  
        switch(choice) {  
            case 1:  
                inputScores(students, &numStudents);  
                break;  
            case 2:  
                printScoreSheet(students, numStudents);  
                break;  
            case 3:  
                modifyScore(students, numStudents);  
                break;  
            case 4:  
                statisticsScoreSegment(students, numStudents);  
                break;  
            case 5:  
                statisticsAverageScore(students, numStudents);  
                break;  
            case 6:  
                statisticsFailedStudents(students, numStudents);  
                break;  
            default:  
                printf("无效的选择,请重新选择。\n");  
                break;  
        }  
    } while(choice != 7);  
    return 0;  
}  
  
void printMenu() {  
    printf("\n--------成绩管理系统--------\n");  
    printf("1. 录入成绩\n");  
    printf("2. 打印成绩单\n");  
    printf("3. 修改成绩\n");  
    printf("4. 统计分数段\n");  
    printf("5. 统计平均分\n");  
    printf("6. 统计不及格学生\n");  
    printf("7. 退出\n");  
    printf("请选择一个操作:\n");  
}  
  
void inputScores(struct Student students[], int *numStudents) {  
    char continueInput = 'y';  
    while(continueInput == 'y') {  
        if(*numStudents >= MAX_STUDENTS) {  
            printf("已达到最大学生数量,无法再录入新的学生。\n");  
            return;  
        }  
        printf("请输入学生姓名:");  
        scanf("%s", students[*numStudents].name);  
        printf("请输入学生成绩:");  
        scanf("%d", &students[*numStudents].score);  
        (*numStudents)++;  
        printf("是否继续录入?(y/n):");  
        scanf(" %c", &continueInput); // 注意前面的空格,用于跳过前面可能残留的换行符。  
    }  
}  
  
void printScoreSheet(struct Student students[], int numStudents) {  
    printf("\n成绩单\n");  
    printf("姓名\t成绩\n");  
    for(int i = 0; i < numStudents; i++) {  
        printf("%s\t%d\n", students[i].name, students[i].score);  
    }  
}  
  
void modifyScore(struct Student students[], int numStudents) {  
    char name[50];  
    int newScore;  
    printf("请输入要修改成绩的学生姓名:");  
    scanf("%s", name);  
    for(int i = 0; i < numStudents; i++) {  
        if(strcmp(name, students[i].name) == 0) {  
            printf("请输入新的成绩:");  
            scanf("%d", &newScore);  
            students[i].score = newScore;  
            printf("成绩已成功修改。\n");  
            return;  
        }  
    }  
    printf("未找到该学生。\n");  
}  
  
void statisticsScoreSegment(struct Student students[], int numStudents) {  
    int scoreSegment[11] = {0}; // 存储每个分数段的学生数量,下标代表分数段,例如scoreSegment[10

程序没有使用数据库或文件存储数据,所有的成绩都保存在内存中,因此当程序结束时,所有的数据都会丢失。在实际应用中,你可能需要使用数据库或文件来持久化存储数据。

相关推荐

  1. 使用C语言设计实现一个成绩管理系统

    2023-12-18 17:32:04       59 阅读
  2. c语言教务成绩管理系统1000+

    2023-12-18 17:32:04       41 阅读
  3. matlab实现建立一个学生成绩管理系统

    2023-12-18 17:32:04       25 阅读
  4. python实现建立一个学生成绩管理系统

    2023-12-18 17:32:04       23 阅读
  5. 家谱管理系统设计实现c语言

    2023-12-18 17:32:04       94 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 17:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 17:32:04       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 17:32:04       82 阅读
  4. Python语言-面向对象

    2023-12-18 17:32:04       91 阅读

热门阅读

  1. 长期供应IMX225LQR-C芯片现货

    2023-12-18 17:32:04       39 阅读
  2. Vue 插槽(Slot):打开组件的灵活大门

    2023-12-18 17:32:04       62 阅读
  3. Spring Boot 如何配置 log4j2

    2023-12-18 17:32:04       58 阅读
  4. 多人协作项目代码规范统一约定(完整全面)

    2023-12-18 17:32:04       64 阅读
  5. 嵌套json 数组结构

    2023-12-18 17:32:04       58 阅读
  6. linux shell 使用mv 循环替换文件名

    2023-12-18 17:32:04       62 阅读
  7. C语言 typedef 和 #define 区别

    2023-12-18 17:32:04       68 阅读
  8. leetcode算法题:岛屿数量

    2023-12-18 17:32:04       54 阅读
  9. 经验丰富的王警官

    2023-12-18 17:32:04       64 阅读
  10. HTML面试题

    2023-12-18 17:32:04       55 阅读