最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言工资管理系统

来源:动视网 责编:小OO 时间:2025-10-04 13:55:04
文档

C语言工资管理系统

C语言课程设计-工资管理系统题目要求做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息#include#include#defineN100structmygz{ intyuefen; floatyfgz; floatsf; floatdf; floatsj; floatsfgz;};structworker{ intkahao; charxingming[20]; structm
推荐度:
导读C语言课程设计-工资管理系统题目要求做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息#include#include#defineN100structmygz{ intyuefen; floatyfgz; floatsf; floatdf; floatsj; floatsfgz;};structworker{ intkahao; charxingming[20]; structm
        C语言课程设计-工资管理系统

题目要求  做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息

#include

#include

#define N 100

struct mygz 

{

  int yuefen;

  float yfgz;

  float sf;

  float df;

  float sj;

  float sfgz;

};

struct worker

{

  int kahao;

  char xingming[20];

  struct mygz m[12];

  float zsfgz;

};

int ygsm;

struct worker a[N];

float shuijin(float m)

{

float shui1,shui2;

float tmp;

shui1=0;shui2=0;

if(m>=1400)

{

  shui1=(m-1400)*0.1;

  shui2=30;

}

else 

{  

  if(m>=800 && m<1400)

  {

    shui2=(m-800)*0.05;

  }

}

tmp=shui1+shui2;

return(tmp);

}float shifagongzi(float a,float b,float c,float d)

{

  float e=a-b-c-d;

  return(e);

}

void duqu()

{

  FILE *fp;

  if((fp=fopen("D:工资信息.txt"))==NULL)

  {

    printf("无法读取文件"); 

    ;return;

  }

  while(!feof(fp))

  {

    fread(&a[ygsm],sizeof(struct worker),1,fp); 

    ygsm++;

  }

}

void chaxun()

  int b;

  int i;

  int j;

  label_3:

  b=0;

  while(b!=1&&b!=2)

  {

    printf("1,选择姓名查询.\\n2,选择卡号查询.\\n");

    scanf("%d",&b);

  }

  if(b==1)

  { 

    char c[20];

    printf("请输入您的姓名:\\n");

    scanf("%s",c);

    i=0;

    while(!(strcmp(a[i].xingming,c)==0)&&i    {

      i++;

    }

    if(i==ygsm)

    {

      printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\\n");

      return;  

    }

    printf("%-10d %-20s \n",a[i].kahao,a[i].xingming);

    for(j=0;a[i].m[j].yuefen!=NULL;j++)

    {

      printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz); 

    }

    printf("总实发工资:%10f\\n",a[i].zsfgz);    

    b=0;

    while(b!=1&&b!=2)

    {

      printf("1,继续查询.\\n2,返回主菜单.\\n");

      scanf("%d",&b);

    }

    if(b==1)

    {

      goto label_3;

    }

    else

    {

      ;return;

    }

  }  

  else

  { 

    int d=0;

    while(!(d>=10001&&d<=32767))

    {

      printf("请输入您的卡号(五位数字),例如:10001\\n");

      scanf("%d",&d);

    }

    i=0;

    while(a[i].kahao!=d&&i    {

      i++;

    }

    if(i==ygsm)

    {

      printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\\n");

      return;  

    }

    printf("%-10d %-20s \n",d,a[i].xingming);

    for(j=0;a[i].m[j].yuefen!=NULL;j++)

    {

      printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);

    }

    printf("总实发工资:%10f\\n",a[i].zsfgz);

    b=0;

    while(b!=1&&b!=2)

    {

      printf("1,继续查询.\\n2,返回主菜单.\\n");

      scanf("%d",&b);

    }

    if(b==1)

    {

      goto label_3;

    }

    else

    {

      ;return;

    }    

  }

}

void liulan()

{

  struct worker x;

  int c;

  float d;

  int i;

  int j;

  int k;

  for(i=0;i  {

    c=a[i].kahao;

    k=i;

    for(j=i+1;j    {

      if(c>a[j].kahao)

      {

       c=a[j].kahao;

       k=j;

      }

    }

    x=a[i];

    a[i]=a[k];

    a[k]=x;

  }

  for(i=0;i  {

    printf("%-10d %-20s \n",a[i].kahao,a[i].xingming);

    for(j=0;a[i].m[j].yuefen!=NULL;j++)

    {

      printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);

    }

    printf("总实发工资:%10f\\n",a[i].zsfgz);

  }

  for(i=0;i<40;i++)

  {

    printf("\\n");

  }

  for(i=0;i  {

    d=a[i].zsfgz;

    k=i;

    for(j=i+1;j    {

      if(d      {

       d=a[j].zsfgz;

       k=j;

      }

    }

    x=a[i];

    a[i]=a[k];

    a[k]=x;

  }

  for(i=0;i  {

    printf("%-20s %-10d \n",a[i].xingming,a[i].kahao);

    for(j=0;a[i].m[j].yuefen!=NULL;j++)

    {

      printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);

    }

    printf("总实发工资:%10f\\n",a[i].zsfgz);

  }

}

void shanchu()

{

  FILE *fp;

  int b;

  int c;

  int i;

  int j;

  label_4:

  printf("请输入要删除信息的卡号:\\n");

  scanf("%d",&b);

  for(i=0;i  {

    if(a[i].kahao==b)

    {

      j=i;

    }

  }

  for(i=j+1;i  {

    a[i-1]=a[i];

  }

  ygsm--;

  fp=fopen("D:工资信息.txt");

  for(i=0;i  { 

    fwrite(&a[i],sizeof(struct worker),1,fp);  

  } 

  fclose(fp);

  c=0;

  while(c!=1&&c!=2)

  {  

    printf("1.继续删除\\n2 返回主菜单\\n");

    scanf("%d",&c);

  }

  if(c==1)

  {

    goto label_4;

  }

  else

  {

    return;

  }

}

void luru()

  FILE *fp;

  int k;

  int i;

  int j;

  int b;

  int c;

  int d;

  if((fp=fopen("D:工资信息.txt"))==NULL)

  {

    printf("无法找到目标文件\\n"); 

    return;

  }

  label_1:

  b=0;

  while(!(b>=1&&b<=12))

  {

    printf("请您输入您要建立的月份\\n");

    scanf("%d",&b);

  }

  b=b-1;

  d=0;

  while(!(d>=10001&&d<=32767))

  {

    printf("请输入您要录入工资的卡号(五位数字),例如:10001\\n");

    scanf("%d",&d);

  }

  for(i=0;i  if(a[i].kahao!=d)

  {

    c=0;

    while(c!=1&&c!=2)

    {  

      printf("没有该卡号记录.\\n1 新建\\n2 返回上一级\\n");

      scanf("%d",&c);

    }

    if(c==2)

    {

      goto label_1;

    }

    if(c==1)

    {

      a[i].kahao=d;

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

      scanf("%s",a[i].xingming);

      a[i].m[b].yuefen=b+1;

      printf("请输入此人该月的应发工资:\\n");

      scanf("%f",&a[i].m[b].yfgz);

      printf("请输入此人该月所用水费:\\n");

      scanf("%f",&a[i].m[b].sf);

      printf("请输入此人该月所用电费\\n");

      scanf("%f",&a[i].m[b].df);

      a[i].m[b].sj=shuijin(a[i].m[b].yfgz);

      a[i].m[b].sfgz=shifagongzi(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);

      a[i].zsfgz=0;

      for(k=0;k<12;k++)

      {

        a[i].zsfgz+=a[i].m[k].sfgz;

      }

      ygsm++;

      c=0;

      while(c!=1 && c!=2)

      {

        printf("1 继续\\n2 返回主菜单\\n");

        scanf("%d",&c);

      }

      if(c==1)

      {

        goto label_1;

      }

      if(c==2)

      {

        goto label_2;

      }

    }

  }

  else 

  {

    if(a[i].m[b].yuefen==b+1)

    {

      c=0;

      while(c!=1 && c!=2)

      {

        printf("已有该月记录\\n1 覆盖原有记录\\n2 返回上级\\n");

        scanf("%d",&c);

      }

      if(c==1)

      {

        printf("请输入此人该月的应发工资:\\n");

        scanf("%d",&a[i].m[b].yfgz);

        printf("请输入此人该月所用水费:\\n");

        scanf("%d",&a[i].m[b].sf);

        printf("请输入此人该月所用电费\\n");

        scanf("%d",&a[i].m[b].df);

        a[i].m[b].sj=shuijin(a[i].m[b].yfgz);

        a[i].m[b].sfgz=shifagongzi(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);

        a[i].zsfgz=0;

        for(k=0;k<12;k++)

        {

          a[i].zsfgz+=a[i].m[k].sfgz;

        }

        while(c!=1 && c!=2)

        {

          printf("1 继续\\n2 返回主菜单\\n");

          scanf("%d",&c);

        }

        if(c==1)

        {

          goto label_1;

        }

        if(c==2)

        {

          goto label_2;

        }

      }

      else

      {

        goto label_1;

      } 

    }

    if(a[i].m[b].yuefen==NULL)

    {

      a[i].m[b].yuefen=b+1;

      printf("请输入此人该月的应发工资:\\n");

      scanf("%f",&a[i].m[b].yfgz);

      printf("请输入此人该月所用水费:\\n");

      scanf("%f",&a[i].m[b].sf);

      printf("请输入此人该月所用电费\\n");

      scanf("%f",&a[i].m[b].df);

      a[i].m[b].sj=shuijin(a[i].m[b].yfgz);

      a[i].m[b].sfgz=shifagongzi(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);

      a[i].zsfgz=0;

      for(k=0;k<12;k++)

      {

        a[i].zsfgz+=a[i].m[k].sfgz;

      }

      c=0;

      while(c!=1 && c!=2)

      {

        printf("1 继续\\n2 返主主菜单\\n");

        scanf("%d",&c);

      }

      if(c==1)

      {

        goto label_1;

      }

      if(c==2)

      {

        goto label_2;

      }

    } 

    c=0;

    while(c!=1 && c!=2)

    {

      printf("1 继续\\n2返回主菜单\\n");

      scanf("%d",&c);

    }

    if(c==1)

    {

      goto label_1;

    }

    if(c==2)

    {

      goto label_2;

    }

  }

  label_2:

  fp=fopen("D:工资信息.txt+");

  for(j=0;j  { 

    fwrite(&a[i],sizeof(struct worker),1,fp); 

  }

  fclose(fp);            

}    

void main()

{

  int a=0;

  duqu();

  while(a!=5)

  {

    printf("/*******************欢迎使用*********************/\\n");

    printf("/************* 请按菜单选项进行选择 *************/\\n");

    printf("/************* 1.查询个人工资情况   *************/\\n");

    printf("/************* 2.录入工资信息       *************/\\n");

    printf("/************* 3.删除个人工资信息   *************/\\n");

    printf("/************* 4.浏览员工工资信息   *************/\\n");

    printf("/************* 5.退出工资管理系统   *************/\\n");

    printf("/******************^_^ ^_^ ^_^*******************/\\n");

    scanf("%d",&a);

    switch(a)

    {

      case 1:chaxun();break;

      case 2:luru();break;

      case 3:shanchu();break;

      case 4:liulan();break;

      default :break;

    }

  } 

}

文档

C语言工资管理系统

C语言课程设计-工资管理系统题目要求做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息#include#include#defineN100structmygz{ intyuefen; floatyfgz; floatsf; floatdf; floatsj; floatsfgz;};structworker{ intkahao; charxingming[20]; structm
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top