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].numberem[n].number 的地址,用于告诉 scanf() 函数将读取的字符串存储到该内存地址中。
  • em 应该是一个结构体数组,em[n] 指向数组中的第 n 个结构体,number 是该结构体中的一个成员变量,用于存储职工编号。

注意:

  • scanf() 函数在读取字符串时,不会检查输入的字符串长度是否超出分配给 em[n].number 的空间。如果输入的字符串过长,可能会导致缓冲区溢出,从而引发安全问题。因此,在使用 scanf() 读取字符串时,需要格外注意输入数据的长度限制。

  • em 结构体数组应该在代码的其他部分定义,以便 add() 函数能够访问。

  • read()write() 函数应该负责从文件中读取和写入数据,以便保存职工信息。

本代码片段只是一个简单的示例,实际的代码可能需要根据具体的需求进行修改。

希望以上解释对您有所帮助!如有其他问题,请随时提出。

C语言职工信息管理系统:添加职工功能代码详解

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

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