C语言职工信息管理系统:添加职工功能代码详解
C语言职工信息管理系统:添加职工功能代码详解
以下代码片段展示了如何使用C语言实现职工信息管理系统中添加职工的功能,包括输入职工编号、姓名、性别、出生年月、入职年月、学历、职务、住址和电话等信息,并进行重复编号判断。
void add()
{
int i, flag;
char c;
read();
do
{
flag = 0;
printf("\n\n");
printf("请输入职工的编号:");
scanf("%s", &em[n].number);
for (i = 0; i < n; i++)
{
if(strcmp(em[i].number, em[n].number) == 0)
{
flag = 1;
break;
}
}
if(flag)
{
printf("!!!该职工已存在!!!\n\n");
printf("\t\t是否继续输入?(Y/N): ");
scanf("%c", &c);
if(c == 'N' || c == 'n')
break;
continue;
}
printf("请输入职工姓名:");
scanf("%s", &em[n].name);
printf("请输入职工性别:");
scanf("%s", &em[n].sex);
printf("请输入职工出生年月:");
scanf("%s", &em[n].birthday);
printf("请输入职工入职年月:");
scanf("%s", &em[n].date);
printf("请输入职工学历:");
scanf("%s", &em[n].degree);
printf("请输入职工职务:");
scanf("%s", &em[n].position);
printf("请输入职工住址:");
scanf("%s", &em[n].add);
printf("请输入职工电话:");
scanf("%s", &em[n].tel);
printf("是否继续输入?(Y/N): ");
scanf("%*c%c", &c);
n++;
}while (c != 'N' && c != 'n');
write();
printf("\n\n数据已保存!\n\n");
}
源代码中的一句操作数据项的语句是:scanf("%s", &em[n].number);
该语句的功能是读取用户输入的职工编号,并将其存储在em[n].number中。
解释:
scanf()函数用于从标准输入流(通常是键盘)读取数据并存储到指定的内存地址中。"%s"表示读取一个字符串,直到遇到空白字符(如空格、换行符)为止。&em[n].number是em[n].number的地址,用于告诉scanf()函数将读取的字符串存储到该内存地址中。em应该是一个结构体数组,em[n]指向数组中的第n个结构体,number是该结构体中的一个成员变量,用于存储职工编号。
注意:
-
scanf()函数在读取字符串时,不会检查输入的字符串长度是否超出分配给em[n].number的空间。如果输入的字符串过长,可能会导致缓冲区溢出,从而引发安全问题。因此,在使用scanf()读取字符串时,需要格外注意输入数据的长度限制。 -
em结构体数组应该在代码的其他部分定义,以便add()函数能够访问。 -
read()和write()函数应该负责从文件中读取和写入数据,以便保存职工信息。
本代码片段只是一个简单的示例,实际的代码可能需要根据具体的需求进行修改。
希望以上解释对您有所帮助!如有其他问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/fwXK 著作权归作者所有。请勿转载和采集!