C语言职工管理系统:删除职工信息功能实现
这段代码实现了一个职工管理系统中的删除职工信息功能。
Delete()函数
void Delete()
{
char a[10];
int i, j, flag;
char c;
read();
while (1)
{
system("cls"); // 清屏
flag = 0;
printf("\n请输入需要删除的职工编号:");
scanf("%s", &a);
for (i = 0; i < n; i++)
{
if (strcmp(em[i].number, a) == 0)
{
n--;
flag = 1;
for (j = i; j < n; j++)
{
em[j] = em[j + 1];
}
break;
}
}
if (!flag)
printf("\n\n!!!无此员工信息!!!\n\n");
else
printf("\n\n!!!删除成功!!!\n");
printf("\n\n是否继续删除?(Y/N):");
scanf("%c", &c);
if (c == 'N' || c == 'n') break;
continue;
}
write();
}
代码功能:
该函数用于实现删除职工信息的功能。具体流程如下:
- 首先,通过
read()函数读取职工信息。 - 进入一个循环,不断提示用户输入需要删除的职工编号。
- 使用
strcmp()函数比较用户输入的职工编号和存储的职工信息中的编号,如果匹配,则将该职工信息删除。 - 删除操作通过将后面的职工信息往前移动一位来实现,并更新职工总数
n。 - 删除成功后,输出提示信息,并询问用户是否继续删除。
- 如果用户输入
N或n,则退出循环,否则继续循环。 - 最后,调用
write()函数将更新后的职工信息保存到文件。
其他函数:
- show(employee *head): 用于显示所有职工信息。
- exchange(char *p,char *q): 用于交换两个字符串。
- sort(): 用于对职工信息进行排序。
- menu(): 用于显示菜单。
程序逻辑:
该代码通过一个主循环来实现用户交互,根据用户输入的选择执行不同的功能。每个功能由对应的函数实现。
代码细节:
- 代码中使用了
system("cls");命令来清屏。 - 代码中使用了
em数组来存储职工信息,n变量表示职工总数。 - 代码中使用了
strcmp()函数来比较字符串。 - 代码中使用了
scanf()函数来获取用户输入。 - 代码中使用了
printf()函数来输出信息。
注意事项:
- 代码中使用了
read()和write()函数,但没有给出具体的定义,可能需要根据实际情况进行修改。 - 代码中没有对用户输入进行错误处理,需要在实际应用中进行完善。
- 代码中使用了
em数组来存储职工信息,如果职工数量非常多,可能会导致内存溢出。 - 代码中使用了
system("pause");命令来暂停程序,这在某些情况下可能会有问题。
代码优化建议:
- 可以使用动态内存分配来存储职工信息,避免内存溢出。
- 可以使用异常处理机制来处理用户输入错误。
- 可以使用更好的排序算法,例如快速排序或归并排序。
- 可以使用结构体来存储职工信息,提高代码的可读性和可维护性。
- 可以使用文件操作来保存和读取职工信息,提高代码的实用性。
总的来说,这段代码实现了职工管理系统中的删除职工信息功能,但还需要进一步完善和优化才能在实际应用中使用。
原文地址: https://www.cveoy.top/t/topic/fxvD 著作权归作者所有。请勿转载和采集!