求问如何修改代码

#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语言)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值