iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎么用C语言实现职工工资管理系统
  • 792
分享到

怎么用C语言实现职工工资管理系统

2023-06-29 07:06:44 792人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“怎么用C语言实现职工工资管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C语言实现职工工资管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。设计要求:模拟并设计一个企业的

本文小编为大家详细介绍“怎么用C语言实现职工工资管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C语言实现职工工资管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

设计要求:

模拟并设计一个企业的职工工资管理系统,职工信息包括工号、姓名、基本工资、津贴,设职工人数不超过500人,以菜单选项的方式完成相应的功能,主要功能需求如下:

建立工资表;

职工扣税和实发工资;

按实发工资从高到低的顺序显示工资明细表;

修改职工的工资信息;

按工号查询职工工资信息;

职工工资统计分析;

退出系统。

基本思路:

将职工工资管理系统的职工信息录入功能、数据处理并存入文件功能、按照职工工号查找职工工资信息功能、修改职工信息功能分成多个模块,为了使程序的可读性更强,程序的编写将以函数形式编写封装各个功能,然后在主函数中以循环形式读取用户输入的指令,根据用户的指令选择不同的函数入口地址,从而执行不同的操作,实现设计要求的职工工资管理系统的各项功能。

全部代码:

#include <stdio.h> #include <stdlib.h>#include <math.h>#include <windows.h>#define Q 15               //最大字符串长度 #define N 500              //最大员工数量 typedef struct workers{    int workersID;            //职工工号    char name[Q];             //职工姓名    double basicsalary;       //基本工资    double allowance;         //津贴    double taxsalary;         //扣税    double truesalary;        //实发工资}WORKERS;                     //职工信息void Menu(int *n);                               //主菜单 void Payroll(WORKERS work[],int *p);             //建立工资表 void Taxsalary(WORKERS work[],int num);          //计算职工扣税和实发工资void Sort(WORKERS work[],int num ) ;             //将工资从高到低排序void Change(WORKERS work[],int num);             //修改职工的工资信息int Find(WORKERS work[],int num);                //按工号查询职工工资信息void Analyse(WORKERS work[],int num);            //职工工资统计分析 void Printworkroll(WORKERS work[],int num);      //显示工资明细表void Writefile(WORKERS work[],int num);          //输出数据并写入 data.txt 文件     int main(){       WORKERS work[N];                             //定义一个结构体数组来存储员工信息     char ch;                                     //ch为检测是否返回主菜单     int n,num=0,ret;                             //n为操作数,num为总人数,ret判断数     while(1){        system("cls");        Menu(&n);                                //主菜单                 switch(n){            case 0:                system("cls");                   //退出程序                 printf("退出成功!\n");                exit(0);            case 1:                Payroll(work,&num);              //建立工资表                break;            case 2:                Taxsalary(work,num);             //职工扣税和实发工资                Writefile(work,num);             //输出数据并写入 data.txt 文件                 printf("计算完成,并输出数据至txt文件!\n");                Sleep(2000);                system("cls");                break;            case 3:                Sort(work,num);                  //将工资从高到低排序                Printworkroll(work,num);         //显示工资明细表                printf("\n是否返回主菜单?Y or N\n");                fflush(stdin);                ch=getchar();                if(ch=='N'){                    exit(0);                }                break;            case 4:                Change(work,num);                //修改职工的工资信息                printf("\n是否返回主菜单?Y or N\n");                fflush(stdin);                ch=getchar();                if(ch=='N'){                    exit(0);                }                break;            case 5:                ret=Find(work,num);              //按工号查询职工工资信息                if(ret==0){                    printf("查无此人!");        //反馈查询不到信息                 }                printf("\n是否返回主菜单?Y or N\n");                fflush(stdin);                ch=getchar();                if(ch=='N'){                    exit(0);                }                break;            case 6:                Analyse(work,num);               //职工工资统计分析                printf("\n是否返回主菜单?Y or N\n");                fflush(stdin);                ch=getchar();                if(ch=='N'){                    exit(0);                }                break;        }    }    return 0;}void Menu(int *n)                                 //主菜单   *n为返回操作数 {    int a;    printf(" ——————职工工资管理系统——————\n");    printf("|       1.建立职工工资表                 |\n");    printf("|       2.职工扣税和实发工资             |\n");    printf("|       3.实发工资从高到低排序           |\n");    printf("|       4.修改职工工资信息               |\n");    printf("|       5.查询职工工资信息               |\n");    printf("|       6.职工工资统计分析               |\n");    printf("|       0.退出系统                       |\n");    printf(" ————————————————————\n");    printf("提示:请输入数字序号选择对应的操作!\n");    scanf("%d",&a);    *n=a;    system("cls");}void Payroll(WORKERS work[],int *p)               //建立工资表 {    int num=*p;    char ch;    do{        system("cls");        printf("员工(%d)的信息\n",num+1);        printf("工号:");        scanf("%d",&work[num].workersID);        printf("姓名:");        scanf("%s",&work[num].name);        printf("基本工资:");        scanf("%lf",&work[num].basicsalary);        printf("津贴:");        scanf("%lf",&work[num].allowance);        printf("是否继续录入?Y or N\n");         fflush(stdin);        scanf("%c",&ch);        num++;    }while(ch=='Y');        *p=num;      //返回总人数     system("cls");}void Taxsalary(WORKERS work[],int num)            //职工扣税和实发工资{        int i;    double money;    for(i=0;i<num;i++)    {        money=work[i].basicsalary+work[i].allowance;        if( money<3000)        {              work[i].taxsalary=0;             work[i].truesalary= money-work[i].taxsalary;           }        else if((money<4000)&&(money>=3000))        {            work[i].taxsalary=(money-3000)*0.05;            work[i].truesalary= money-work[i].taxsalary;         }        else        {             work[i].taxsalary=(money-3000)*0.05+(money-4000)*0.1;            work[i].truesalary= money-work[i].taxsalary;         }     }}void Sort(WORKERS work[],int num)                 //将工资从高到低排序{    int i,j;    WORKERS temp;    for (i=0;i<num-1;i++)    {        for(j=i+1;j<num;j++)            {            if (work[i].truesalary<work[j].truesalary)            {                temp=work[j];                work[j]=work[i];                work[i]=temp;            }         }        }} void Change(WORKERS work[],int num)               //修改职工的工资信息{    int n,sum;    char ch;    printf("修改职工的工资信息\n\n");    printf("请输入你的工号:");    scanf("%d",&n);    putchar('\n');    for(int i=0;i<num;i++){        if(work[i].workersID==n){            printf("工号:%-10d\n",work[i].workersID);            printf("姓名:%s\n",work[i].name);             printf("基本工资:%6.2lf\n",work[i].basicsalary);             printf("津贴:%6.2lf\n",work[i].allowance);             printf("扣税:%6.2lf\n",work[i].taxsalary);             printf("实发工资:%6.2lf\n",work[i].truesalary);             printf("\n是否需要修改信息?Y or N\n");            fflush(stdin);            scanf("%c",&ch);            if(ch=='Y'){                printf("\n基本工资:");                scanf("%lf",&work[i].basicsalary);                printf("津贴:");                scanf("%lf",&work[i].allowance);                sum=work[i].basicsalary+work[i].allowance;                if(sum<=3000){                      work[i].taxsalary=0;                    work[i].truesalary=sum;                }                else if((sum<=4000)&&(sum>3000)){                    work[i].taxsalary=(sum-3000)*0.05;                    work[i].truesalary=3000+((sum-3000)*0.95);                }                   else{                    work[i].taxsalary=50+(sum-4000)*0.10;                    work[i].truesalary=3950+((sum-4000)*0.9);                }                system("cls");                                printf("员工信息修改成功!\n\n");                printf("扣税:%6.2lf\n",work[i].taxsalary);                 printf("实发工资:%6.2lf\n",work[i].truesalary);                                 break;                }            else{                break;            }            }    }} int Find(WORKERS work[],int num)                  //按工号查询职工工资信息{    int s,i,flag=0;    printf("查询职工工资信息\n\n");    printf("请输入您的工号:");    scanf("%d",&s);    putchar('\n');    for(i=0;i<num;i++)    {        if(work[i].workersID==s)                 //查询输入的工号并调用信息;         {            flag=1;             printf("工号:%d\n",work[i].workersID);            printf("姓名:%s\n",work[i].name);             printf("基本工资:%.2lf\n",work[i].basicsalary);             printf("津贴:%.2lf\n",work[i].allowance);             printf("扣税:%.2lf\n",work[i].taxsalary);             printf("实发工资:%.2lf\n",work[i].truesalary);             break;        }    }    return flag;}void Analyse(WORKERS work[],int num)              //职工工资统计分析{    int i,s=0,m=0,l=0;      //s表示工资小于3000的人数;m表示工资在3000到4000的人数;l表示工资大于4000的人数。     double x,y,z;    for(i=0;i<num;i++)    {        if(work[i].truesalary<3000)            {            s++;        }            else if((work[i].truesalary<=4000)&&(work[i].truesalary>=3000))        {            m++;        }                else        {            l++;        }    }    x=(double)s/num*100;    y=(double)m/num*100;    z=(double)l/num*100;    printf("实发工资\n");    printf("(3000元以下)        人数:%d\t比例:%.2lf%%\n",s,x);                  printf("(3000以上4000以下)  人数:%d\t比例:%.2lf%%\n",m,y);         printf("(4000以上)          人数:%d\t比例:%.2lf%%\n",l,z);         }void Printworkroll(WORKERS work[],int num)        //显示工资明细表{    printf("工号\t姓名\t基本工资\t津贴\t扣税\t实发工资\n");    for(int i=0;i<num;i++){        printf("%d\t",work[i].workersID);        printf("%s\t",work[i].name);         printf("   %.2lf\t",work[i].basicsalary);         printf("%.2lf\t",work[i].allowance);         printf("%.2lf\t",work[i].taxsalary);         printf("%.2lf\n",work[i].truesalary);     }}void Writefile(WORKERS work[],int num)            //输出数据并写入 data.txt 文件{     WORKERS temp;    for(int i=0;i<num-1;i++)    {        for(int j=i+1;j<num;j++)        {            if(work[i].workersID>work[j].workersID)            {                temp=work[i];                work[i]=work[j];                work[j]=temp;            }        }    }        FILE *fp;    if((fp=fopen("data.txt","w"))==0){        printf("错误!\n");        exit(0);    }    fprintf(fp,"职工工资管理系统\n成功录入%d人\n详表如下:\n\n",num);    fprintf(fp,"工号\t姓名\t基本工资\t津贴\t扣税\t实发工资\n");    for(int i=0;i<num;i++){        fprintf(fp,"%-10d\t",work[i].workersID);        fprintf(fp,"%s\t",work[i].name);         fprintf(fp,"%.2lf\t",work[i].basicsalary);         fprintf(fp,"%.2lf\t",work[i].allowance);         fprintf(fp,"%.2lf\t",work[i].taxsalary);         fprintf(fp,"%.2lf\n",work[i].truesalary);     }    fclose(fp);}

读到这里,这篇“怎么用C语言实现职工工资管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: 怎么用C语言实现职工工资管理系统

本文链接: https://www.lsjlt.com/news/323572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现职工工资管理系统
    本文实例为大家分享了C语言实现职工工资管理系统的具体代码,供大家参考,具体内容如下 设计要求: 模拟并设计一个企业的职工工资管理系统,职工信息包括工号、姓名、基本工资、津贴,设职工人...
    99+
    2024-04-02
  • 怎么用C语言实现职工工资管理系统
    本文小编为大家详细介绍“怎么用C语言实现职工工资管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C语言实现职工工资管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。设计要求:模拟并设计一个企业的...
    99+
    2023-06-29
  • C++实现职工工资管理系统
    本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下 main.cpp #include <iostream> #include <v...
    99+
    2024-04-02
  • C++如何实现职工工资管理系统
    本篇内容主要讲解“C++如何实现职工工资管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++如何实现职工工资管理系统”吧!题目 职工工资管理系统功能设计要求 输入记录:将每一个职工的姓名...
    99+
    2023-06-29
  • C语言实现职工工资管理系统的示例代码
    目录一、需求分析二、项目环境2.1、项目创建过程2.2、向项目添加头文件与源文件三、职工工资管理系统模块功能3.1、系统总体设计框图3.2、系统模块总体设计3.3、设计系统菜单功能3...
    99+
    2024-04-02
  • C语言怎么实现员工工资管理系统
    这篇文章主要为大家展示了“C语言怎么实现员工工资管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言怎么实现员工工资管理系统”这篇文章吧。具体内容如下看点:1. 枚举类型的使用(录入与输...
    99+
    2023-06-29
  • C语言实现员工工资管理系统
    本文实例为大家分享了C语言实现员工工资管理系统的具体代码,供大家参考,具体内容如下 看点: 1. 枚举类型的使用(录入与输出) 2. 文件的使用:用文件来存储员工信息,开始运行程序时...
    99+
    2024-04-02
  • C++实现职工工资管理系统课程设计
    本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下 现在的大学里经常有一些课程设计 ,这不,我就遇到了 。 我们的c++老师 ,给了我们许 多的题目要...
    99+
    2024-04-02
  • C语言实现简单员工工资管理系统
    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1、公司主要有经理、技术员、销售员、销售经理4类岗位人员,他们都有基本信息...
    99+
    2024-04-02
  • C++实现职工管理系统
    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 workermanager.h #pragma once//防止头文件重复包含 #include...
    99+
    2024-04-02
  • C语言链表实现工资管理系统
    本文实例为大家分享了C语言链表实现工资管理系统的具体代码,供大家参考,具体内容如下 自己的作业,分享一下,自己为了调试方便,又多加入了一些功能 题目:建立工资管理系统,对职工工资的相...
    99+
    2024-04-02
  • C语言实现小型工资管理系统
    本文实例为大家分享了C语言实现小型工资管理系统的具体代码,供大家参考,具体内容如下 课程大作业目的 通过该大作业,考察学生分析、解决复杂问题的能力,考察学生编写较大程序的能力,检验和...
    99+
    2024-04-02
  • C语言实现简单职工信息管理系统
    本文实例为大家分享了C语言实现职工信息管理系统的具体代码,供大家参考,具体内容如下 代码实现如下: #include <stdio.h>//输入、输出指令 #includ...
    99+
    2024-04-02
  • C++实现职工信息管理系统
    本文实例为大家分享了c++实现职工信息管理系统的具体代码,供大家参考,具体内容如下 1、项目需求 2、功能实现的具体思路为: (1) 经行职工信息的读入,用while循环进行读入,...
    99+
    2024-04-02
  • 如何使用C语言实现简单员工工资管理系统
    小编给大家分享一下如何使用C语言实现简单员工工资管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下(一)公司现状分析公司主要有经理、技术员、销售员、销售经理4类岗位人员,他们都有基本信息:职工号、姓名、性别...
    99+
    2023-06-29
  • 如何用C语言链表实现工资管理系统
    本篇内容介绍了“如何用C语言链表实现工资管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目:建立工资管理系统,对职工工资的相关信息进...
    99+
    2023-06-29
  • 基于C++实现职工管理系统
    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 利用C++来实现一个基于多态的职工管理...
    99+
    2024-04-02
  • C++实现教职工信息管理系统
    本文实例为大家分享了C++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法...
    99+
    2024-04-02
  • C++如何实现教职工管理系统
    这篇文章主要介绍“C++如何实现教职工管理系统”,在日常操作中,相信很多人在C++如何实现教职工管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++如何实现教职工管理系统”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • 基于C++如何实现职工管理系统
    这篇文章主要介绍了基于C++如何实现职工管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C++如何实现职工管理系统文章都会有所收获,下面我们一起来看看吧。1、管理系统需求职工管理系统可以用来管理公司内...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作