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

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

说明:最好不要规定程序的人数限制,扣款率、补贴率从键盘端输入,但不规定具体数字,按职工号排序时按升序排列

# 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);

 }

}

 

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

温馨提示:内容为网友见解,仅供参考
无其他回答

...工资管理程序设计,有悬赏,财富悬赏100!请各位大虾、高手帮帮忙!_百 ...
void everysalary(Staff*stud);int input(Staff *stud)\/\/输入{ Staff *p=stud; unsigned i=0; char ch; printf("请分别输入职工号、姓名、基本工资、岗位工资、补贴、扣款\\n如果停止数据输入,请在输入职工号时直接按回车键\\n"); printf("请输入职工号(直接按回车键退出):"); while(gets(p->...

求一C语言程序设计作业,工资管理系统
printf("%c",217); \/*画右下角*\/ gotoxy(1,1); textcolor(7); \/*设置灰色*\/ for(i=0;i<80;i++) cprintf("%c",219);\/*用符号实现画主菜单的灰色背景区*\/ for(a=3;a<=23;a++) {gotoxy(T,a);cprintf("%c",179);} \/***\/ DingWei(); Selectitem(); \/*调用选项函数*\/ DrawSelect...

C语言程序设计,通讯录管理系统
\/*【用C语言编写具有数据插入、修改、删除、显示和查询功能的电话薄管理程序】1、数据包括:人名、工作单位、电话号码和E-mail地址。2、可对记录中的姓名和电话号码进行修改。3、可增加或删除记录。4、可显示所有保存的记录。5、可按人名或电话号码进行查询。另:采用结构体数组和文件系统实现。结构体包...

C语言,程序设计。用一百元人民币兑换成1元、5元和10元币,共有多少种...
\/\/这类题都是把每一种组合都试过得出的。。\/\/请采纳呦 include<stdio.h> main(){ int x, y, z;int n = 0;for(x=0;x<=100;x++){ for(y=0;y<=20;y++){ for(z=0;z<=10;z++){ if(1*x+5*y+10*z == 100){ printf("%d张一元, %d张五元, %d张十元\\n",x, y, ...

C语言程序设计题目:学生信息管理系统设计
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。\/* 简易学生信息管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*\/ include<stdio.h> include<stdlib.h> include<string.h> define BUFLEN 80 \/* 缓冲区最大字符数 *\/ define LEN 20 \/* 学号和姓名最大字符数,实际请...

单片机入门,急求高手大虾指教!!!
学习单片机首先应该对数电、模电有一定的了解,还有C语言,刚开始入门的话建议用C语言,当然课本也是少不了的,看看单片机的基本的东西。数电:《数字电子技术基础》 主编:阎石模电:《电子技术基础》 主编:康华光C语言:《C程序设计》 编著:谭浩强单片机的书你在网上查查,我们用的是《单片机基础与最小系统实践》——北京航...

急!!![80分]求一C语言程序
在这里删除采用的是把相应的字段置0。*\/ void Delete();\/\/主函数 int main(){ int Choice;while (1){ ShowMessage();scanf("%d", &Choice);switch(Choice){ case 1:Input();break;case 2:Update();break;case 3:Query();break;case 4:Delete();break;case 5:return 0;break;default:...

求谭浩强C语言程序设计电子书 哪一版比较好?本人菜鸟希望各位大虾帮忙...
3.这是视频:http:\/\/www.verycd.com\/topics\/182074\/ 其他 迅雷下载:=== C程序设计题解与上机指导(谭浩强)http:\/\/58.251.57.206\/down?cid=BC8565BA3D140C7E3582C50B5D45B954A061D882&t=3&fmt= === C语言程序设计(第三版)-谭浩强.rar(3.6M) ---有一堆 http:\/\/search.gougo...

谭浩强的C语言程序设计快学完了,接下来该学哪本书。
应该先把C语言学完全学扎实,了解C语言方方面面的知识,C primer plus 就很不错,我买的是中文第5版,里面对C的知识讲解的非常全面,提到了很多编译器的问题,比如在当今最流行的.net平台下编写C程序、LINUX下的C语言程序的编译等,还有许多C语言其他方面的知识。当你全面扎实的掌握了C的知识后,再...

C语言程序设计--班级档案管理系统
C语言程序设计--班级档案管理系统 设计课题二:班级档案管理系统一、问题描述:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。二、功能要求:1、本系统... 设计课题二:班级档案管理系统一、问题描述:对一个有N个学生的班级,通过该系统实现对该班级学生...

相似回答