C语言职工信息修改系统代码解析 - 修改姓名、学历、职务、地址等
这段代码是一个职工信息修改系统的函数,具体功能如下:
-
首先定义了一些变量,包括一个整型变量
num用于接收用户输入的操作选项,一个整型变量flag用于标记是否找到需要修改的职工信息,两个整型变量i和j用于循环和存储找到的职工信息的位置,一个字符数组a用于存储用户输入的职工编号,一个字符数组change用于存储用户输入的修改后的信息,一个字符变量c用于接收用户是否继续修改的选择。 -
调用
read()函数读取职工信息。 -
进入一个无限循环,用户可以多次修改职工信息。
-
用户输入需要修改的职工编号,通过循环遍历职工信息数组,找到对应的职工信息位置,并将标记
flag置为1。 -
如果找不到对应的职工信息,输出提示信息并询问用户是否继续修改,如果用户选择不继续修改,则跳出循环。
-
输出可供选择的修改操作选项。
-
用户输入操作选项,并进行判断,如果选项不在1-8的范围内,输出错误提示信息,继续下一次循环。
-
清屏。
-
用户输入修改后的信息。
-
根据用户选择的操作选项,使用
switch语句将修改后的信息更新到对应的职工信息中。 -
输出提示信息,询问用户是否继续修改,如果用户选择不继续修改,则跳出循环。
-
继续下一次循环。
-
调用
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();
}
原文地址: https://www.cveoy.top/t/topic/fxvl 著作权归作者所有。请勿转载和采集!