这段代码是一个职工信息修改系统的函数,具体功能如下:

  1. 首先定义了一些变量,包括一个整型变量num用于接收用户输入的操作选项,一个整型变量flag用于标记是否找到需要修改的职工信息,两个整型变量ij用于循环和存储找到的职工信息的位置,一个字符数组a用于存储用户输入的职工编号,一个字符数组change用于存储用户输入的修改后的信息,一个字符变量c用于接收用户是否继续修改的选择。

  2. 调用read()函数读取职工信息。

  3. 进入一个无限循环,用户可以多次修改职工信息。

  4. 用户输入需要修改的职工编号,通过循环遍历职工信息数组,找到对应的职工信息位置,并将标记flag置为1。

  5. 如果找不到对应的职工信息,输出提示信息并询问用户是否继续修改,如果用户选择不继续修改,则跳出循环。

  6. 输出可供选择的修改操作选项。

  7. 用户输入操作选项,并进行判断,如果选项不在1-8的范围内,输出错误提示信息,继续下一次循环。

  8. 清屏。

  9. 用户输入修改后的信息。

  10. 根据用户选择的操作选项,使用switch语句将修改后的信息更新到对应的职工信息中。

  11. 输出提示信息,询问用户是否继续修改,如果用户选择不继续修改,则跳出循环。

  12. 继续下一次循环。

  13. 调用write()函数将修改后的职工信息写入文件。

void modify() {
    int num, flag, i, j;
    char a[10];
    char change[20];
    char c;
    read();
    while (1) {
        flag = 0;
        printf("\n请输入需要修改的职工编号:");
        scanf("%s", &a);
        for (i = 0; i < n; i++) {
            if (strcmp(em[i].number, a) == 0) {
                j = i;
                flag = 1;
            }
        }
        if (!flag) {
            printf("\n\n!!!无此员工的信息!!!\n\n");
            printf("\n\n是否继续修改(Y/N):");
            scanf("%c", &c);
            if (c == 'N' || c == 'n') break;
        }
        printf("\n");
        printf("+-------------------------------+\
");
        printf("|    职 工 信 息 修 改 系 统    |\
");
        printf("|           1.修改姓名          |\
");
        printf("|           2.修改学历          |\
");
        printf("|           3.修改职务          |\
");
        printf("|           4.修改地址          |\
");
        printf("|           5.修改出生年月      |\
");
        printf("|           6.修改入职年月      |\
");
        printf("|           7.修改电话          |\
");
        printf("|           8.修改职工编号      |\
");
        printf("|    输入其他任意键退出本模块   |\
");
        printf("+-------------------------------+\
");
        printf("请选择操作:");
        scanf("%d", &num);
        if (num < 1 || num > 8) {
            printf("!!!操作错误!!!\n\n");
            continue;
        }
        system("cls");    // 清屏
        printf("\n请输入修改后的信息:");
        scanf("%s", &change);
        switch (num) {
            case 1: strcpy(em[j].name, change);
                    break;
            case 2: strcpy(em[j].degree, change);
                    break;
            case 3: strcpy(em[j].position, change);
                    break;
            case 4: strcpy(em[j].add, change);
                    break;
            case 5: strcpy(em[j].birthday, change);
                    break;
            case 6: strcpy(em[j].date, change);
                    break;
            case 7: strcpy(em[j].tel, change);
                    break;
            case 8: strcpy(em[j].number, change);
                    break;
        }
        printf("\n\n是否继续修改?(Y/N):");
        scanf("%*c%c", &c);
        if (c == 'N' || c == 'n')
            break;
        continue;
    }
    write();
}
C语言职工信息修改系统代码解析 - 修改姓名、学历、职务、地址等

原文地址: https://www.cveoy.top/t/topic/fxvl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录