千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"怎么用C语言实现职工工资管理系统",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么用C语言实现职工工资管理系统"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2026年11月01日怎么用C语言实现职工工资管理系统

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

设计要求:

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

1、建立工资表;

2、职工扣税和实发工资;

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

4、修改职工的工资信息;

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

6、职工工资统计分析;

7、退出系统。

基本思路:

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

全部代码:

#include  #include #include #include #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=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;i3000)){                    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=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;iwork[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

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

工资 职工 信息 工号 实发 系统 人数 菜单 管理系统 管理 基本工资 功能 津贴 查询 姓名 数据 文件 统计分析 分析 统计 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网络科技 互联网科技官网 互联网扶贫科技 上海互联网科技有限公司 深圳互联网络科技有限公司 九亚互联网科技 华中科技大学互联网 左右互联网络科技 中国互联网金融科技基金 滨湖区互联网智能科技产品供应 剑昆互联网络科技有限公司临桂 福州新华互联网科技学校 知乎 金融科技与互联网金融相同和不同 成都铂石互联网科技做什么的 未来五年的互联网科技 科技类公司包括互联网吗 企晟互联网信息科技有限公司 兰石爱特工业互联网科技分公司 科技互联网企业在行动 互联网科技企业 互联网科技巨头监管 美国互联网科技巨头监管 上海挚品互联网科技 互联网科技公司有哪些 重庆互联网医院沙龙医盟信息科技 青岛科技大学互联网大赛研究生 山东有哪些互联网科技公司 广州梦谷互联网科技有限公司领导 科技互联网专业工作会议发言稿
0