BAPPS 2022-06-01 11:18 采纳率: 87%
浏览 94
已结题

用C语言编写员工信息管理系统设计

在写到求平均工资,最低工资和最高工资时,写完前一部分不会了,还有就是怎么输出员工信息浏览功能啊

img

#include <stdio.h>
#include <string.h>
#include <string.h>
struct workers
{
char jobNo[15]; //职工号
char name[15]; //姓名
char sex[15]; //性别
int age; //年龄
int salary; //工资
char addr[15]; //住址
char tel[15]; //电话
}em[50];

void menu();//菜单
void input();//录入
struct workers max(struct workers em[]);
struct workers min(struct workers em[]);
struct workers average(struct workers em[]);
void browse_JobNo();//浏览职工号排序
void browse_Salary();//浏览工资排序
void search_JobNo(); //按职工号查询
void search_Name();//按姓名查询
void search_Salary();//按工资范围查询

int main()
{
int number;
while (1)
{
menu();
printf("请输入菜单编号:");
scanf("%d", &number);
switch (number)
{
case 1:input(); break; //录入员工信息
case 2:browse_JobNo(); break; //按职工号排序员工信息
case 3:browse_Salary(); break; //按工资排序员工信息
case 4:search_name(); break; //按姓名查找员工信息
case 5:search_JobNo(); break; //按职工号查找员工信息
case 6:workers min(); break; //求最低工资
case 7:workers max(); break; //求最高工资
case 8:workers average(); break; //求平均工资
case 9:exit(0); break; //退出
default:printf("输入有误!");
}
}

return 0;  

}

void menu()
{
puts("\t职工信息管理系统\n");
puts("\t1.职工信息录入");
puts("\t2.按职工号排序员工信息");
puts("\t3.按工资排序员工信息");
puts("\t4.按姓名查找员工信息");
puts("\t5.按职工号查找员工信息");
puts("\t6.求最低工资 ");
puts("\t7.求最高工资");
puts("\t8.求平均工资");
puts("\t9.退出");
}

void input()/录入函数/
{
FILE*fp;
int n; /员工的个数/
int i;
printf("请输入员工的总人数:\n");
scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("\n 请输入员工的信息:\n");
printf("请输入工号:");
scanf("%s",em[i].JobNo);
printf("请输入姓名:");
scanf("%s",em[i].name);
printf("请输入性别:");
scanf("%s",em[i].sex);
printf("请输入年龄:");
scanf("%s",&em[i].age);
printf("请输入工资:");
scanf("%s",&em[i].salary);
printf("请输入住址:");
scanf("%s",em[i].addr);
printf("请输入电话:");
scanf("%s",em[i].tel);
printf("\n");
}
printf("\n添加完毕!\n");
for(i=0;i<50;i++)
printf("\n%d\t%s\t%c\t%s\t%s\t%9.2f\t%s\t%d\n",em[i].JobNo,em[i].name,em[i].sex,em[i].age,em[i].salary,em[i].addr,em[i].tel);
}

/函数功能;求全体职工的最高工资/
struct worker max(struct workers em[])
{
int m=0,i;
for(i=0;i<N,i++)
{
if(em[i].salary>em[m].salary)
m=i;
}
{
printf("全体职工的最高工资是:%d\n",em.salary);
}
return em[m];
}
/函数功能:求全体职工的最低工资/
struct worker min(struct workers em[])
{
int m=0,i;
for(i=0;i<N,i++)
{
if(em[i].salary<em[m]salary)
m=i;
}
{
printf("全体职工的最低工资是:%d\n",em.salary);
}
return em[m];
}
/函数功能:求全体职工的平均工资/
struct worker average(struct workers em[])
{
inti,sum,aver;
sum=0;
for(i=o;i<N;i++)
{
sum=sum+em[i].salary;
}
aver=sum/i;
printf("全体职工的平均工资是:%d\n",aver);
}

//按职工号排序函数
void browse_JobNo() //浏览信息时按照职工号由小到大顺序排序
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(em[j].JobNo>em[j+1].JobNo)//排序
{ em1=em[j];
em[j]=em[j+1];
em[j+1]=em1;
}
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
for(i=0;i<n;i++)
printf("\n%d\t%s\t%c\t%s\t%s\t%9.2f\t%s\t%d\n",em[i].JobNo,em[i].name,em[i].sex,em[i].age,em[i].salary,em[i].addr,em[i].tel);
}

//按工资排序函数
void browse_ Salary() //浏览信息时按照工资由小到大顺序排序
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(em[j].Salary>em[j+1].Salary)//排序
{ em1=em[j];
em[j]=em[j+1];
em[j+1]=em1;
}
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
for(i=0;i<n;i++)
printf("\n%d\t%s\t%c\t%s\t%s\t%9.2f\t%s\t%d\n",em[i].JobNo,em[i].name,em[i].sex,em[i].age,em[i].salary,em[i].addr,em[i].tel);
}

//按姓名查找职工信息
void search_name()
{
char name1[20]; //定义一个数组指向字符串
int i,t,n=0;
printf("\n请输入要查找的姓名: ");
scanf("%s",name1);
for(i=0;i<n;i++) //遍历
if(strcmp(name1,em[i].name)==0) //strcmp对两个字符串的大小进行比较
{
if(n==0)
{ printf("\n已找到以下信息:\n");
printf("\n职工号\t姓名\t性别\t出生\t学历\t工资\t住址\t电话 \n");
}
n++;
printf("\n%d\t%s\t%c\t%s\t%s\t%5.2f\t%s\t%d\n",em[i].JobNo,em[i].name,em[i].sex,em[i].age,em[i].salary,em[i].addr,em[i].tel);
}
if(n==0) //没有一个符合条件
{ printf("\n对不起,贵公司没有该员工!\n");
getchar();
getchar();
}
}

//按职工号查找职工信息
void search_JobNo()
{
int num1;
int i,t,n=0;
printf("\n请输入要查找的职工号: ");
scanf("%d",&num1);
for(i=0;i<n;i++) //遍历
if(num1==em[i].JobNo)
{
if(n==0)
{ printf("\n已找到以下信息:\n");
printf("\n职工号\t姓名\t性别\t出生\t学历\t工资\t住址\t电话\n");
}
n++;
printf("\n%d\t%s\t%c\t%s\t%s\t%5.2f\t%s\t%d\n",em[i].JobNo,em[i].name,em[i].sex,em[i].age,em[i].salary,em[i].addr,em[i].tel);
}
if(n==0) //没有一个符合条件
{ printf("\n对不起,贵公司没有该员工!\n");
getchar();
getchar();
}
}

  • 写回答

2条回答 默认 最新

  • sinJack 2022-06-01 11:31
    关注

    你写的代码贴出来看下吧,不要截图。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月10日
  • 已采纳回答 6月2日
  • 修改了问题 6月2日
  • 修改了问题 6月1日
  • 展开全部

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号