#include <stdio.h> #include <stdlib.h> #include <string.h>

#define MAX_STUDENTS 100 //最大学生人数 #define MAX_NAME_LEN 20 //最大姓名长度

//学生结构体 typedef struct { char name[MAX_NAME_LEN]; //姓名 int score; //成绩 } Student;

//全局变量 Student students[MAX_STUDENTS]; //学生数组 int num_students = 0; //学生数量

//函数声明 void add_student(); //添加学生 void delete_student(); //删除学生 void modify_score(); //修改成绩 void print_all_students(); //打印所有学生 void print_student_by_name(); //按姓名查询学生 void print_student_by_score(); //按成绩查询学生 void print_menu(); //打印菜单

int main() { int choice; //用户选择的操作

do {
    print_menu(); //打印菜单
    scanf("%d", &choice);
    switch (choice) {
        case 1:
            add_student();
            break;
        case 2:
            delete_student();
            break;
        case 3:
            modify_score();
            break;
        case 4:
            print_all_students();
            break;
        case 5:
            print_student_by_name();
            break;
        case 6:
            print_student_by_score();
            break;
        case 7:
            printf("退出程序\n");
            break;
        default:
            printf("无效的选择\n");
            break;
    }
} while (choice != 7);

return 0;

}

//添加学生 void add_student() { if (num_students >= MAX_STUDENTS) { printf("已达到最大学生人数\n"); return; }

printf("请输入学生姓名:");
scanf("%s", students[num_students].name);
printf("请输入学生成绩:");
scanf("%d", &students[num_students].score);
num_students++;

printf("添加学生成功\n");

}

//删除学生 void delete_student() { char name[MAX_NAME_LEN]; int i, j;

printf("请输入要删除的学生姓名:");
scanf("%s", name);

for (i = 0; i < num_students; i++) {
    if (strcmp(students[i].name, name) == 0) { //找到要删除的学生
        for (j = i; j < num_students - 1; j++) {
            students[j] = students[j + 1]; //将后面的学生向前移动
        }
        num_students--;
        printf("删除学生成功\n");
        return;
    }
}

printf("未找到要删除的学生\n");

}

//修改成绩 void modify_score() { char name[MAX_NAME_LEN]; int i;

printf("请输入要修改成绩的学生姓名:");
scanf("%s", name);

for (i = 0; i < num_students; i++) {
    if (strcmp(students[i].name, name) == 0) { //找到要修改成绩的学生
        printf("请输入新的成绩:");
        scanf("%d", &students[i].score);
        printf("修改成绩成功\n");
        return;
    }
}

printf("未找到要修改成绩的学生\n");

}

//打印所有学生 void print_all_students() { int i;

if (num_students == 0) {
    printf("没有学生记录\n");
    return;
}

printf("所有学生如下:\n");
for (i = 0; i < num_students; i++) {
    printf("%s\t%d\n", students[i].name, students[i].score);
}

}

//按姓名查询学生 void print_student_by_name() { char name[MAX_NAME_LEN]; int i;

printf("请输入要查询的学生姓名:");
scanf("%s", name);

for (i = 0; i < num_students; i++) {
    if (strcmp(students[i].name, name) == 0) { //找到要查询的学生
        printf("%s\t%d\n", students[i].name, students[i].score);
        return;
    }
}

printf("未找到要查询的学生\n");

}

//按成绩查询学生 void print_student_by_score() { int score, i, count = 0;

printf("请输入要查询的成绩:");
scanf("%d", &score);

for (i = 0; i < num_students; i++) {
    if (students[i].score == score) { //找到成绩匹配的学生
        printf("%s\t%d\n", students[i].name, students[i].score);
        count++;
    }
}

if (count == 0) {
    printf("未找到匹配的学生\n");
}

}

//打印菜单 void print_menu() { printf("\n"); printf("请选择要进行的操作:\n"); printf("1. 添加学生\n"); printf("2. 删除学生\n"); printf("3. 修改成绩\n"); printf("4. 查看所有学生\n"); printf("5. 按姓名查询学生\n"); printf("6. 按成绩查询学生\n"); printf("7. 退出程序\n");

用 C语言设计一个成绩管理软件该软件能够采集输入每个学生的个人信息并对学生的成绩进行管理。

原文地址: http://www.cveoy.top/t/topic/he9y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录