#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
struct Student {
int id;
char name[50];
char department[50];
char className[20];
};
// 声明全局变量
struct Student students[100]; // 最多可以管理100个学生信息
int studentCount = 0; // 当前学生数量
// 添加学生信息
void addStudent() {
if (studentCount == 100) {
printf("学生信息已满,无法继续添加。\n");
return;
}
struct Student student;
printf("请输入学号: ");
scanf("%d", &student.id);
printf("请输入姓名: ");
scanf("%s", student.name);
printf("请输入所在系: ");
scanf("%s", student.department);
printf("请输入班级: ");
scanf("%s", student.className);
students[studentCount++] = student;
printf("学生信息添加成功。\n");
}
// 删除学生信息
void deleteStudent() {
int id;
printf("请输入要删除的学生学号: ");
scanf("%d", &id);
int index = -1;
int i,j;
for ( i = 0; i < studentCount; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到对应学号的学生信息。\n");
return;
}
for (j = index; j < studentCount - 1; j++) {
students[j] = students[j + 1];
}
studentCount--;
printf("学生信息删除成功。\n");
}
// 修改学生信息
void modifyStudent() {
int id;
printf("请输入要修改的学生学号: ");
scanf("%d", &id);
int index = -1;
int i;
for (i = 0; i < studentCount; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到对应学号的学生信息。\n");
return;
}
struct Student student;
printf("请输入修改后的姓名: ");
scanf("%s", student.name);
printf("请输入修改后的所在系: ");
scanf("%s", student.department);
printf("请输入修改后的班级: ");
scanf("%s", student.className);
students[index] = student;
printf("学生信息修改成功。\n");
}
// 按学号查找学生信息
void findStudentById() {
int id;
printf("请输入要查找的学生学号: ");
scanf("%d", &id);
int index = -1;
int i;
for (i = 0; i < studentCount; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到对应学号的学生信息。\n");
return;
}
struct Student student = students[index];
printf("学号: %d\n", student.id);
printf("姓名: %s\n", student.name);
printf("所在系: %s\n", student.department);
printf("班级: %s\n", student.className);
}
// 按姓名查找学生信息
void findStudentByName() {
char name[50];
printf("请输入要查找的学生姓名: ");
scanf("%s", name);
int found = 0;
int i;
for (i = 0; i < studentCount; i++) {
if (strcmp(students[i].name, name) == 0) {
struct Student student = students[i];
printf("学号: %d\n", student.id);
printf("姓名: %s\n", student.name);
printf("所在系: %s\n", student.department);
printf("班级: %s\n", student.className);
found = 1;
}
}
if (!found) {
printf("找不到对应姓名的学生信息。\n");
}
}
// 显示所有学生信息
void displayStudents() {
if (studentCount == 0) {
printf("没有学生信息需要显示。\n");
return;
}
printf("学生信息如下:\n");
int i;
for (i = 0; i < studentCount; i++) {
struct Student student = students[i];
printf("学号: %d\n", student.id);
printf("姓名: %s\n", student.name);
printf("所在系: %s\n", student.department);
printf("班级: %s\n", student.className);
printf("--------------------\n");
}
}
// 从文件加载学生信息
void loadStudentsFromFile() {
FILE* file = fopen("students.txt", "r");
if (file == NULL) {
printf("无法打开文件 students.txt,加载学生信息失败。\n");
return;
}
char line[200];
while (fgets(line, sizeof(line), file)) {
struct Student student;
sscanf(line, "%d,%[^,],%[^,],%[^\n]", &student.id, student.name, student.department, student.className);
students[studentCount++] = student;
}
fclose(file);
printf("学生信息加载成功。\n");
}
// 保存学生信息到文件
void saveStudentsToFile() {
FILE* file = fopen("students.txt", "w");
if (file == NULL) {
printf("无法打开文件 students.txt,保存学生信息失败。\n");
return;
}
int i;
for (i = 0; i < studentCount; i++) {
fprintf(file, "%d,%s,%s,%s\n", students[i].id, students[i].name, students[i].department, students[i].className);
}
fclose(file);
printf("学生信息已保存到文件 students.txt 中。\n");
}
int main() {
loadStudentsFromFile();
int choice;
while (1) {
printf("学生信息管理系统菜单\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 按学号查找学生信息\n");
printf("5. 按姓名查找学生信息\n");
printf("6. 显示所有学生信息\n");
printf("0. 退出程序\n");
printf("请输入菜单选项: ");
scanf("%d", &choice);
if (choice == 0) {
break;
}
switch (choice) {
case 1:
addStudent();
break;
case 2:
deleteStudent();
break;
case 3:
modifyStudent();
break;
case 4:
findStudentById();
break;
case 5:
findStudentByName();
break;
case 6:
displayStudents();
break;
default:
printf("无效的菜单选项,请重新输入。\n");
break;
}
}
saveStudentsToFile();
return 0;
}
把以上代码改成能在vc2010能运行的(需要是C语言)