c语言设计实现一个学生信息系统管理,提供学生信息的输入 显示 查询 修改 删除 保存等功能
时间: 2024-09-20 20:05:29 浏览: 37
在C语言中,设计一个简单的学生信息系统管理模块通常会涉及结构体、文件操作以及控制结构。首先,我们可以创建一个名为`Student`的结构体,包含学生的属性如姓名、学号和成绩等。下面是一个基础框架的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float score;
} Student;
// 存储函数
void save(Student* student, FILE* file) {
fprintf(file, "%s %d %.2f\n", student->name, student->id, student->score);
}
// 加载函数
int load(Student* students[], int* count, FILE* file) {
*count = 0;
while (fgets(students[*count++]->name, sizeof(students[*count]->name), file)) {
// 分割并转换数据
if (sscanf(students[*count - 1].name, "%[^ ]%d%.2f", students[*count - 1].name, &students[*count - 1].id, &students[*count - 1].score) != 3) break; // 如果解析失败则停止
}
return *count;
}
// 主菜单函数
void mainMenu() {
int choice, action, numStudents = 0;
FILE* file = fopen("student_info.txt", "a+"); // 假设文件名
while (1) {
printf("\n1. 添加学生\n2. 查看所有学生\n3. 修改学生信息\n4. 删除学生\n5. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
// 输入新学生信息并保存
Student newStudent;
printf("请输入学生信息(姓名,学号,成绩): ");
fgets(newStudent.name, sizeof(newStudent.name), stdin);
scanf("%d%f", &newStudent.id, &newStudent.score); // 清除多余的换行符
save(&newStudent, file);
numStudents++;
break;
// 其他选项添加相应处理...
default:
fclose(file);
return;
}
if (choice == 5 || !file) { // 文件关闭条件
break;
}
}
fclose(file);
}
阅读全文