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");
}
       
//输出函数
  
void output(int t)
{
    printf("+--------+----+----+--------+--------+----+--------+----+------------+\n");
	printf("|职工编号|姓名|性别|出生年月|入职年月|学历|  职务  |地址|    电话    |\n");
	printf("+--------+----+----+--------+--------+----+--------+----+------------+\n");
    {
	printf("|%4s    |%3s|%3s |%7s |%7s |%4s|%6s  |%4s|%11s |\n", em[t].number, em[t].name,
			em[t].sex, em[t].birthday, em[t].date, em[t].degree, em[t].position, em[t].add, em[t].tel);
	}
}

//显示

void show()
{
	int i;
    read();
    if (n == 0)
	    printf("无记录!\n\n");
    else
        for (i = 0; i < n; i++)
        {
            output(i);
        }
}

// 查询

void search()
{
    int num, flag, i;
    char a[10], name[10], degree[10], position[10], sex[10], birthday[10], date[10], add[10], tel[20];     
    char c;
    read();
    while (1)
    {
        printf("\n");
        printf("+---------------------------------+\n");
        printf("|    职 工 信 息 查 询 系 统      |\n"); 
        printf("|          1.按编号查询           |\n");  
        printf("|          2.按姓名查询           |\n"); 
        printf("|          3.按学历查询           |\n"); 
        printf("|          4.按职务查询           |\n"); 
		printf("|          5.按性别查询           |\n");
        printf("|          6.按出生年月查询       |\n");
        printf("|          7.按入职年月查询       |\n");
        printf("|          8.按地址查询           |\n");
        printf("|          9.按电话查询           |\n");
        printf("|      输入其他任意键退出本模块   |\n"); 
        printf("+---------------------------------+\n"); 
        printf("请选择操作:");
        scanf("%d", &num);
        if (num < 1 || num > 9)
        {
            printf("!!!输入错误!!!\n\n");
        	system("cls");    // 清屏
        }          
        if (num == 1)
        {
            printf("\n请输入您要查询的职工的编号:");
            scanf("%s", &a);
            for (i = 0; i < n; i++)
            {
                if (strcmp(em[i].number, a) == 0)
                {
                    output(i);
                    flag = 1;
                }
            }
        }
        else if (num == 2)       
        {
            printf("\n请输入您要查询的职工的姓名:"); 
            scanf("%s", &name); 
            for (i = 0; i < n; i++) 
            {
                if (strcmp(em[i].name, name) == 0) 
                {
                    output(i);
                    flag = 1;   
                } 
            }
        }
        else if (num == 3)         
        {
            printf("\n请输入您要查询的职工的学历:");
            scanf("%s", &degree);
            for (i = 0; i < n; i++)
            {
                if (strcmp(em[i].degree, degree) == 0)
                {
                    output(i);
                    flag = 1;
                } 
            }
        }
        else if (num == 4)
        {
            printf("\n请输入您要查询的职工的职务:");
            scanf("%s", &position);
            for (i = 0; i < n; i++)
            {
                if (strcmp(em[i].position, position) == 0) 
                {
                    output(i); 
                    flag = 1;    
                }
            }
        }
        else if (num == 5)         
        {
            printf("\n请输入您要查询的职工的性别:"); 
            scanf("%s", &sex);
            for (i = 0; i < n; i++)
            {
                if (strcmp(em[i].sex, sex) == 0) 
                {
                    output(i); 
                    flag = 1;    
                }
            }
        }
        else if (num == 6)
        {
            printf("\n请输入您要查询的职工的出生年月:"); 
            scanf("%s", &birthday); 
            for (i = 0; i < n; i++)
            {
                if (strcmp(em[i].birthday, birthday) == 0)
                {
                    output(i);
                    flag = 1; 
                }
            }
        }
        else if (num == 7)         
        {
            printf("\n请输入您要查询的职工的入职年月:");
            scanf("%s", &date); 
            for (i = 0; i < n; i++) 
            {
                if (strcmp(em[i].date, date) == 0) 
                {
                    output(i); 
                    flag = 1;    
                }
            }
        }
        else if (num == 8)         
        {
            printf("\n请输入您要查询的职工的地址:");
            scanf("%s", &add); 
            for (i = 0; i < n; i++) 
            {
                if (strcmp(em[i].add, add) == 0) 
                {
                    output(i); 
                    flag = 1;    
                }
            }
        }
        else if (num == 9)
        {
            printf("\n请输入您要查询的职工的电话:");
            scanf("%s", &tel); 
            for (i = 0; i < n; i++) 
            {
                if (strcmp(em[i].tel, tel) == 0) 
                {
                    output(i); 
                    flag = 1;    
                }
            }
        }
        if(!flag)       
        {
            printf("\n\n!!!无该职工信息!!!\n\n");
        }
        
        printf("\n\n是否继续查询?(Y/N):");
        scanf("%*c%c", &c);
        if(c == 'N' || c == 'n')
			break;
    }
}
数据结构定义的结构体

```c
typedef struct
{
    char number[10];    // 职工编号
    char name[10];      // 姓名
    char sex[10];       // 性别
    char birthday[10];  // 出生年月
    char date[10];      // 入职年月
    char degree[10];    // 学历
    char position[10];  // 职务
    char add[10];       // 住址
    char tel[20];       // 电话
} Employee;

Employee em[100];   // 职工信息数组
int n = 0;          // 职工数量
C语言员工信息管理系统:添加、显示、查询功能实现

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

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