#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 100
#define FILE_NAME "students.txt"
struct Student {
char name[20];
int id;
int english_score;
int math_score;
int computer_score;
};
int num_students = 0;
// 添加学生信息
void add_student() {
struct Student student;
printf("添加学生信息\n");
printf("姓名:");
scanf("%s", student.name);
printf("学号:");
scanf("%d", &student.id);
printf("英语成绩:");
scanf("%d", &student.english_score);
printf("数学成绩:");
scanf("%d", &student.math_score);
printf("计算机成绩:");
scanf("%d", &student.computer_score);
FILE* fp = fopen(FILE_NAME, "a"); // 以追加模式打开文件
fprintf(fp, "%s %d %d %d %d\n", student.name, student.id, student.english_score, student.math_score, student.computer_score); // 写入数据
fclose(fp);
num_students++; // 学生数量加一
printf("学生信息已添加\n");
}
void modify_student() {
int target_id;
printf("修改学生信息\n");
printf("请输入要修改的学生学号:");
scanf("%d", &target_id);
FILE* fp = fopen(FILE_NAME, "r"); // 以只读模式打开文件
FILE* tmp_fp = fopen("tmp.txt", "w"); // 以写模式打开临时文件
struct Student student;
int found = 0; // 标记是否找到目标学生
while (fscanf(fp, "%s %d %d %d %d", student.name, &student.id, &student.english_score,