C语言实现小型工资管理系统

Faye ·
更新时间:2024-09-21
· 1162 次阅读

本文实例为大家分享了C语言实现小型工资管理系统的具体代码,供大家参考,具体内容如下

课程大作业目的

通过该大作业,考察学生分析、解决复杂问题的能力,考察学生编写较大程序的能力,检验和评价《程序设计基础》课程的学习效果

大作业内容

编写一个小型工资管理系统,用来管理职工的个人基本信息及工资薪酬等数据

基本要求

1、每个职工的数据应包括:工号、姓名、性别、部门、基本工资、绩效工资、奖金、应发工资(应发工资=基本工资+绩效工资+奖金)。职工数据要求采用结构体数据类型。

2、菜单显示:显示系统的一级功能菜单(数据输入、数据修改、数据处理、数据输出、退出)。

3、数据输入:至少输入10个职工的各项数据(应发工资由系统自动计算,不需要输入)。**录入的第一条记录用自已的真实姓名,部门为自己的真实班级。**并将有自己真实姓名、班级的输出结果截屏保存到大作业总结报告中。

4、数据修改:输入工号,修改指定工号的各项数据。输出修改完成后的全部职工数据。

5、数据处理:处理方式包括:排序、查询。可提供子菜单让用户选择。其中:

(1) 排序:按工号排序,显示所有职工的全部数据。

(2) 查询:按工号查询,显示指定工号的全部数据。

6、数据输出:输出全部职工的各项数据。

7、新增 删除职工数据

8、新增 统计职工男女数量

9、退出:退出整个工资管理系统。

代码如下

#include <stdio.h> #include <string.h> struct staff {  char number[20];  char name[20];  char gender[10];  char bumen[20];  double jbgz;  double jxgz;  double bonus;  double yfgz;  }; double jbgz,jxgz,bonus,yfgz; struct staff sta[10]; void inputdata();                  //1.定义数据输入函数 input data void modifydata();       //2.定义数据修改函数 modify data void processdata();       //3.定义数据处理函数 process data void sortdata();       //定义数据处理函数中的按工号排序数据函数  sort data void searchdata();       //定义数据处理函数中的按工号查询数据函数  search data void outputdata();       //4.定义数据输出函数 output data void deldata();        //5.定义数据删除函数 delete data       新增 void countgender();                //6.定义统计男女职工数量函数 count gender    新增  int main() {  int i,choice;   while(1)  {   for(i=1;i<90;i++)    printf("*");   printf("\n");   printf("1.数据输入  2.数据修改  3.数据处理  4.数据输出  5.数据删除  6.统计男女职工数量  7.退出\n");   for(i=1;i<90;i++)    printf("*");   printf("\n");   do   {    printf("请根据菜单输入数字:");    scanf("%d",&choice);   }   while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7);   if(choice==7)    break;   else   {    if(choice==1) inputdata();    else if(choice==2) modifydata();    else if(choice==3) processdata();    else if(choice==4) outputdata();    else if(choice==5) deldata();    else if(choice==6) countgender();    else printf("该数不合法;\n");     //另加   }  }  return 0; } void inputdata() {  int i;  for(i=1;i<=10;i++)  {   printf("请输入第%d位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金:",i);   scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus);   //输入第i位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金   sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;   printf("输入成功\n");  } } void modifydata() {  int i;  char num[20];  printf("请输入您想要修改职工的数据的工号:");  scanf("%s",&num);  for(i=1;i<10;i++)  {   if(strcmp(num,sta[i].number)==0)   {    printf("请输入新工号,姓名,性别,部门,基本工资,绩效工资,奖金\n");    scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus);    sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;   }   printf("修改成功!\n");   printf("修改后的数据为:\n");   printf("    工号          姓名       性别        部门           基本工资           绩效工资            奖金           应发工资\n");   printf("%s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);   break;  } } void processdata() {  int choice,i;  for(i=1;i<30;i++)   printf("*");  printf("\n");  printf("二级菜单:\n");  printf("1.排序 2.查询\n");  for(i=1;i<30;i++)   printf("*");  printf("\n");  printf("请根据菜单输入数字:");  scanf("%d",&choice);  if(choice==1) sortdata();  else searchdata(); } void sortdata() {  int i,j,k;  char n[10];  for(i=1;i<=10;i++)  {   for(j=1;j<=10;j++)   {    if(strcmp(sta[i].number,sta[j].number)>0)    {     strcpy(n,sta[j].number);     strcpy(sta[j].number,sta[i].number);     strcpy(sta[i].number,n);    }   }  }  for(k=1;k<=10;k++)  {   printf("%s     %s    %s     %s     %lf    %lf    %lf\n",sta[k].number,sta[k].name,sta[k].gender,sta[k].bumen,sta[k].jbgz,sta[k].jxgz,sta[k].bonus,sta[k].yfgz);  } } void searchdata() {  int i;  char snum[20];       //snum = searchnumber  printf("请输入您想要查询的职工工号:");  scanf("%s",&snum);  for(i=1;i<10;i++)  {   if(strcmp(snum,sta[i].number)==0)   {    printf("该职工的数据为:\n");    printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n\n");    printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);   }   break;  } } void outputdata() {  int i;  printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n");  for(i=1;i<=10;i++)  {   printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);  } } void deldata() {  int i,j,choi;  //char Y=Y;  //char N=N;  char delnum[20];  printf("请输入您想要删除职工数据的工号:");  scanf("%s",&delnum);  for(i=1;i<10;i++)  {   if(strcmp(delnum,sta[i].number)==0)   {    printf("该职工的数据为:\n");    printf("     工号           姓名           性别           部门          基本工资       绩效工资        奖金          应发工资\n");    printf(" %s       %s           %s         %s      %f   %f    %f     %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);    printf("确认删除该名职工的数据吗?(1.确认  2.取消)\n");    scanf("%d",&choi);    if(choi==1)    {     for(i=1,j=2;j<=10;i++,j++)     {      strcpy(sta[i].number,sta[j].number);      strcpy(sta[i].name,sta[j].name);      strcpy(sta[i].gender,sta[j].gender);      strcpy(sta[i].bumen,sta[j].bumen);      sta[i].jbgz=sta[j].jbgz;      sta[i].jxgz=sta[j].jxgz;      sta[i].bonus=sta[j].bonus;     }     printf("删除成功!!\n");     }    else break;   }  } } void countgender() {  int i,count=0,fecount=0;  char gen[10]="男";  for(i=1;i<=10;i++)  {   if(strcmp(gen,sta[i].gender)==0) count++;  }  fecount=10-count;  printf("该公司有%d名男职工,有%d名女职工\n",count,fecount); }



工资管理系统 系统 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号