修改学生信息模块c语言
时间: 2023-08-10 09:03:09 浏览: 148
c语言添加、删除、更新学生信息
5星 · 资源好评率100%
这个问题比较广泛,需要更具体的信息才能给出详细的回答。一般来说,修改学生信息模块需要以下步骤:
1. 从文件或数据库中读取学生信息;
2. 显示学生信息列表供用户选择;
3. 用户输入要修改的学生信息;
4. 更新学生信息到文件或数据库中。
下面是一个简单的示例代码,用于修改学生信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[20];
int age;
float score;
} Student;
Student students[MAX_STUDENTS];
int num_students = 0;
void read_students() {
FILE* fp = fopen("students.dat", "rb");
if (fp == NULL) {
printf("Error: cannot open file.\n");
exit(1);
}
fread(&num_students, sizeof(int), 1, fp);
fread(students, sizeof(Student), num_students, fp);
fclose(fp);
}
void write_students() {
FILE* fp = fopen("students.dat", "wb");
if (fp == NULL) {
printf("Error: cannot open file.\n");
exit(1);
}
fwrite(&num_students, sizeof(int), 1, fp);
fwrite(students, sizeof(Student), num_students, fp);
fclose(fp);
}
void display_students() {
printf("Name\tAge\tScore\n");
for (int i = 0; i < num_students; i++) {
printf("%s\t%d\t%.2f\n", students[i].name, students[i].age, students[i].score);
}
}
void modify_student() {
char name[20];
printf("Enter student name to modify: ");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("Enter new age: ");
scanf("%d", &students[i].age);
printf("Enter new score: ");
scanf("%f", &students[i].score);
printf("Student information updated.\n");
return;
}
}
printf("Error: student not found.\n");
}
int main() {
read_students();
display_students();
modify_student();
display_students();
write_students();
return 0;
}
```
这个示例代码使用了结构体来保存学生信息,读写文件使用了二进制格式,可以根据实际情况进行修改。
阅读全文