用C语言程序设计编写 工资管理程序设计,有悬赏,财富悬赏100!请各位大虾、高手帮帮忙!

工资管理程序设计(1)选项菜单集成各功能函数模块(2)录入工资数据(职工号、姓名、基本工资、岗位工资、补贴、扣款,计算实发工资)(3)按职工号排序(4)按姓名查找(5)汇... 工资管理程序设计
(1)选项菜单集成各功能函数模块
(2)录入工资数据(职工号、姓名、基本工资、岗位工资、补贴、扣款,计算实发工资)
(3)按职工号排序
(4)按姓名查找
(5)汇总统计各部门的各项工资数据
(6)打印工资表

说明:最好不要规定程序的人数限制,扣款率、补贴率从键盘端输入,但不规定具体数字,按职工号排序时按升序排列
展开
 我来答
百度网友d585d01
2013-06-01 · TA获得超过670个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:507万
展开全部
# include<stdio.h>

# include<string.h>

# define NUM 30

typedef struct{

 char Id[20];

 char Name[20];

 float BasicSalary;

 float JobSalary;

 float Subsidy;

 float Cut;

 float RealWage;

}Staff;

int input(Staff*stud);

void search(Staff *stud);

void rank(Staff *stud);

int displaymenu();

void printall(Staff*stud);

void everysalary(Staff*stud);

int input(Staff *stud)//输入

{

 Staff *p=stud;

 unsigned i=0;

 char ch;

 printf("请分别输入职工号、姓名、基本工资、岗位工资、补贴、扣款\n如果停止数据输入,请在输入职工号时直接按回车键\n");

 printf("请输入职工号(直接按回车键退出):");

 while(gets(p->Id)&&p->Id[0]!='\0') 

 {

  printf("请输入姓名:");

  gets(p->Name);

  printf("请输入基本工资数据:");

  while(scanf("%f",&(p->BasicSalary))!=1)

  {

   printf("请输入正确的基本工资数据:");

   while(ch=getchar()!='\n')

   {

    continue;

   }

  }

  getchar();

  printf("请输入岗位工资数据:");

  while(scanf("%f",&(p->JobSalary))!=1)

  {

   printf("请输入正确的岗位工资数据:");

   while(ch=getchar()!='\n')

   {

    continue;

   }

  }

  getchar();

  printf("请输入补贴数据:");

  while(scanf("%f",&(p->Subsidy))!=1)

  {

   printf("请输入正确的补贴数据:");

   while(ch=getchar()!='\n')

   {

    continue;

   }

  }

  getchar();

  printf("请输入扣款数据:");

  while(scanf("%f",&(p->Cut))!=1)

  {

   printf("请输入正确的扣款数据:");

   while(ch=getchar()!='\n')

   {

    continue;

   }

  }

  getchar();

  p->RealWage=p->BasicSalary+p->JobSalary+p->Subsidy-p->Cut;

  p++;

  printf("请输入职工号(直接按回车键退出):");

 }

 printf("各职工信息录入成功!\n");

 return p-stud;

}

void search(Staff *stud)//按姓名搜索

{

 Staff *p;

 char searchname[20];

 printf("请输入要查找职工的姓名:");

 gets(searchname);

 for(p=stud;p->Id[0]!='\0';p++)

 {

  if(!strcmp(p->Name,searchname))

  {

   printf("该职工职工号%s,姓名%s,基本工资%.3f,岗位工资%.3f,补贴%.3f,扣款%.3f,实发工资%.3f\n",p->Id,p->Name,p->BasicSalary,p->JobSalary,p->Subsidy,p->Cut,p->RealWage);

   break;

  }

 }

 if(p->Id[0]=='\0')

 {

  printf("您输入的姓名不存在!!!\n");

 }

}

void rank(Staff *stud)//按职工号排序

{

 Staff *p,*q,*k,temp;

 for(p=stud;p->Id[0]!='\0';p++)

 {

  k=p;

  for(q=p+1;q->Id[0]!='\0';q++)

  {

   if(strcmp(q->Id,k->Id)<0)

   {

    temp=*q;

    *q=*k;

    *k=temp;

   }

  }

 }

 printall(stud);

}

int displaymenu()

{

 int item;

 char ch;

 printf("                  *********************工资管理程序*********************\n");

 printf("                        1.录入工资数据          2.按职工号排序\n");

 printf("                        3.按姓名查找职工        4.汇总各部门的各项工资数据\n");

 printf("                        5.打印工资表\n");

 while((scanf("%d",&item)!=1)||(item<1)||(item>5))

 {

  printf("请输入正确的选项(1~5):");

  while(ch=getchar()!='\n')

  {

   continue;

  }

 }

 getchar();

 return item;

}

void printall(Staff *stud)

{

 Staff *p;

 for(p=stud;p->Id[0]!='\0';p++)

 {

  printf("职工号%s,姓名%s,基本工资%.3f,岗位工资%.3f,补贴%.3f,扣款%.3f,实发工资%.3f\n",p->Id,p->Name,p->BasicSalary,p->JobSalary,p->Subsidy,p->Cut,p->RealWage);  

 }

}

void everysalary(Staff *stud)

{

 Staff *p;

 for(p=stud;p->Id[0]!='\0';p++)

 {

  printf("职工号%s,姓名%s,基本工资%.3f,岗位工资%.3f,实发工资%.3f\n",p->Id,p->Name,p->BasicSalary,p->JobSalary,p->RealWage);

 }

}

void main()

{

 Staff stud[NUM]={0};

 int item,StaffNum;

 char str[10];

 str[0]='y';

 while((str[0]!='q')&&(str[0]!='Q')&&(item=displaymenu()))

 {

  switch(item)

  {

  case 1:StaffNum=input(stud);

   break;

  case 2:rank(stud);

   break;

  case 3:search(stud);

   break;

  case 4:everysalary(stud);

   break;

  case 5:printall(stud);

   break;

  default:break;

  }

  printf("是否退出,退出请键入q,不退出键入其他键:");

  gets(str);

 }

}

 

不知道是不是满足楼主的意思。。。。。。。。。。。。。。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式