benglala0828 2021-12-11 19:14 采纳率: 100%
浏览 124
已结题

C语言:公司员工基本信息管理程序设计 设计结构体数组,结构中包含数据为:员工编号、姓名、性别、年龄、职务、部门、住址。设计各个函数

这个没搞懂怎么改了沉了555

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int n;
struct employee
{
    int num[1000];
    char name[20];
    char sex;
    char post[20];//职位
    char department[30];//部门
    char Addr[50];//住址
    int age;
};struct employee peo[10];
void addmessages(struct employee peo[])
{
    char c[2];
    int n=0;
    do
    {
        printf("员工编号.姓名.性别.年龄.职务.部门.住址\n");
        scanf("%d %s %s %d %s %s %s",&peo[n].num,&peo[n].name,&peo[n].sex,&peo[n].age,&peo[n].post,&peo[n].department,&peo[n].Addr);
        n++;
        printf("\n继续输入下一次请按Y或y:");
        scanf("%s",c);

    }while(!(strcmp(c,"Y"))||!(strcmp(c,"y")));
}
void show( struct employee peo[])
{   int i;
    for(i=0;i<n;i++)
    {
        printf("%d %s %s %d %s %s %s",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
    }

}
void find(struct employee peo[])
{
    printf("输入部门,性别查找员工信息:");
    int n,i;
    char bm[20];
    char sex1;
    scanf("%s%s",bm,&sex1);
    for(i=0;i<n;i++)
    if(!(strcmp(peo[i].department,bm))&&!(strcmp(peo[i].sex,sex1)))
    {
        printf("%d %s %s %d %s %s %s",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
    }
}
main()
{
    int menu ;
    while (1)
    {
        printf ("1. 输入数据 \n");
        printf ("2. 显示所有员工信息 \n");
        printf ("3. 输入部门、性别,显示该部门的员工记录\n");
        printf ("4. 结束.");
        printf("请输入数字1—3:");
        scanf("%d",&menu);
        switch (menu)
        {case 1:
        addmessages(peo);break ;
        case 2:
        show(peo);break;
        case 3:
        find(peo);break;
        case 4:
        exit(0);
        }
    }
}


  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-11 20:26
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int n;
    struct employee
    {
        int  num;  //num[1000];
        char name[20];
        char sex;
        char post[20];//职位
        char department[30];//部门
        char Addr[50];//住址
        int  age;
    };struct employee peo[10];
    void addmessages(struct employee peo[])
    {
        char c[2];
        //int  n=0;
        do
        {
            printf("员工编号.姓名.性别.年龄.职务.部门.住址\n");
            //scanf("%d %s %s %d %s %s %s",&peo[n].num,&peo[n].name,&peo[n].sex,&peo[n].age,&peo[n].post,&peo[n].department,&peo[n].Addr);
            scanf("%d %s %c %d %s %s %s",&peo[n].num,peo[n].name,&peo[n].sex,&peo[n].age,peo[n].post,peo[n].department,peo[n].Addr);
            n++;
            printf("\n继续输入下一次请按Y或y:");
            scanf("%s",c);
        }while(!(strcmp(c,"Y"))||!(strcmp(c,"y")));
    }
    void show( struct employee peo[])
    {   int i;
        for(i=0;i<n;i++)
        {
            //printf("%d %s %s %d %s %s %s",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
            printf("%d %s %c %d %s %s %s\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
        }
    }
    void find(struct employee peo[])
    {
        printf("输入部门,性别查找员工信息:");
        int i;    //n,
        char bm[20];
        char sex1;
        //scanf("%s%s",bm,&sex1);
        scanf("%s %c",bm,&sex1);
        for(i=0;i<n;i++){
           //if(!(strcmp(peo[i].department,bm))&&!(strcmp(peo[i].sex,sex1)))
           if((strcmp(peo[i].department,bm)==0)&&(peo[i].sex == sex1))
           {
              //printf("%d %s %s %d %s %s %s",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
              printf("%d %s %c %d %s %s %s\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
              break;
           }
        }
        if(i >= n)
           printf("not found!\n");
    }
    main()
    {
        int menu ;
        while (1)
        {
            printf ("1. 输入数据 \n");
            printf ("2. 显示所有员工信息 \n");
            printf ("3. 输入部门、性别,显示该部门的员工记录\n");
            printf ("4. 结束.");
            printf("请输入数字1—3:");
            scanf("%d",&menu);
            switch (menu)
            {
            case 1:
                   addmessages(peo);break ;
            case 2:
                   show(peo);break;
            case 3:
                   find(peo);break;
            case 4:
                   exit(0);
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月11日
  • 已采纳回答 12月11日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。