C语言实现多班级学生信息管理系统:含增删改查与多样排序功能
// 导入所需的头文件 #include <stdio.h> #include <string.h> // 定义学生结构体 typedef struct { char number[11]; // 学号 char name[20]; // 姓名 char gender[5]; // 性别 char class[20]; // 班级 int data_structure; // 数据结构成绩 int linux_programming; // linux编程基础成绩 int python_programming; // python程序设计成绩 } Student; // 定义函数原型 void readFromFile(Student students[], int *numStudents); void writeToFile(Student students[], int numStudents); void printStudent(Student student); void printStudents(Student students[], int numStudents); void sortByTotalScore(Student students[], int numStudents); void sortByAverageScore(Student students[], int numStudents); int main() { Student students[20]; // 最多存储20个学生信息 int numStudents = 0; // 当前学生数量 int choice; // 从文件中读取学生信息 readFromFile(students, &numStudents); do { // 显示功能菜单 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请输入选择:"); scanf("%d", &choice); switch(choice) { case 1: printf("按班级顺序输出学生信息列表:\n"); printStudents(students, numStudents); break; // 实现插入、删除、修改、查找、排序功能 // ... case 7: printf("退出程序\n"); break; default: printf("无效选择,请重新选择\n"); } } while(choice != 7); // 退出程序前将学生信息写入文件 writeToFile(students, numStudents); return 0; } // 从文件中读取学生信息 void readFromFile(Student students[], int *numStudents) { FILE *file = fopen("students.txt", "r"); if (file) { while (fscanf(file, "%s %s %s %s %d %d %d\n", students[*numStudents].number, students[*numStudents].name, students[*numStudents].gender, students[*numStudents].class, &students[*numStudents].data_structure, &students[*numStudents].linux_programming, &students[*numStudents].python_programming) != EOF) { (*numStudents)++; } fclose(file); } } // 将学生信息写入文件 void writeToFile(Student students[], int numStudents) { FILE *file = fopen("students.txt", "w"); for (int i = 0; i < numStudents; i++) { fprintf(file, "%s %s %s %s %d %d %d\n", students[i].number, students[i].name, students[i].gender, students[i].class, students[i].data_structure, students[i].linux_programming, students[i].python_programming); } fclose(file); } // 输出单个学生信息 void printStudent(Student student) { printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\n", student.number, student.name, student.gender, student.class, student.data_structure, student.linux_programming, student.python_programming); } // 输出所有学生信息 void printStudents(Student students[], int numStudents) { printf("序号\t学号\t姓名\t性别\t班级\t数据结构\tlinux编程基础\tpython程序设计\n"); for (int i = 0; i < numStudents; i++) { printf("%d\t", i + 1); printStudent(students[i]); } } // 按总分排序学生信息 void sortByTotalScore(Student students[], int numStudents) { // 实现排序功能,可选择冒泡排序、快速排序等算法 } // 按平均分排序学生信息 void sortByAverageScore(Student students[], int numStudents) { // 实现排序功能,可选择选择冒泡排序、快速排序等算法 } ######[AI写代码神器 | 2547点数解答 | 2024-12-15 22:08:58]
- Java 实现:定义尊享无忧学生类并打印学生信息(字节豆包 | 264点数解答 | 2024-09-18 16:21:36)282
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)357
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)347
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)414
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)405
- Java程序模拟教学选课:林老师开课,58 位学生选课男女比例大揭秘( | 2653点数解答 | 2024-04-02 11:00:16)468
- Java程序设计课程:模拟教学管理,统计58位选课学生男女比重( | 363点数解答 | 2024-04-05 18:31:39)472
- R语言实战:用配对样本t检验评估课程强化集训对学生成绩的提升效果(GPT | 630点数解答 | 2024-11-26 22:00:01)320
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- C#实现学生类:属性、方法全解析与实例操作( | 1111点数解答 | 2024-04-26 11:45:38)252
- 如何查找家在岳阳同学的姓名、年龄、性别、班级及入学年份信息?(讯飞星火 | 156点数解答 | 2024-06-13 10:06:25)140