C语言-用函数实现社保工资查询系统

需求:

  1、有登陆操作,超过三次需重新打开登录

  2、查询五险一金、税前税后工资计算,个人与单位应缴明细

  3、输入税后工资和税前工资都可查询

  4、退出有询问确认操作

代码如下;

#include<stdio.h>
#include<stdlib.h>
double PEI;        //个人应缴养老保险金额
double PMI;        //个人应缴医疗保险金额
double PUI;        //个人应缴失业保险金额
double PEII;    //个人应缴工伤保险金额
double PMTI;    //个人应缴生育保险金额
double PHF;        //个人应缴住房公积金金额

double CEI;        //单位应缴养老保险金额
double CMI;        //单位应缴医疗保险金额
double CUI;        //单位应缴失业保险金额
double CEII;    //单位应缴工伤保险金额
double CMTI;    //单位应缴生育保险金额
double CHF;        //单位应缴住房公积金金额    

double Pt;        //税前工资
double T;        //税金
double At;        //税后工资
double Tt=3500.0;    //起征点
double Tr;        //税率
double Q;        //速算扣除数
double SH;        //个人应缴社保和住房公积金总额
double Qt;        //全月应纳税所得额
void InputPreTaxWages()
{
    printf("请输入税前工资:");
    scanf("%lf",&Pt);
}
//计算税前工资
double PreTaxWages()
{
    printf("请输入税后工资:");
    scanf("%lf",&At);
    //不同的税后工资税率不同
    if (0<=At&&At<=3500){T=((At-3500)*0-0)/(1-0);}
    else if (3500<At&&At<=4955){T=((At-3500)*0.03-0)/(1-0.03);}
    else if (4955<At&&At<=7655){T=((At-3500)*0.1-105)/(1-0.1);}
    else if (7555<At&&At<=11255){T=((At-3500)*0.2-555)/(1-0.2);}
    else if (11255<At&&At<=30755){T=((At-3500)*0.25-1005)/(1-0.25);}
    else if (30755<At&&At<=44755){T=((At-3500)*0.3-2755)/(1-0.3);}
    else if (44755<At&&At<=61005){T=((At-3500)*0.35-5505)/(1-0.35);}
    else if (61005<At){T=((At-3500)*0.45-13505)/(1-0.45);}
    Pt = (At + T + 3)/(0.778);    //税后反推税前工资公式:税前工资=(税后工资+个人所得税+3)/0.778
}

//计算税后工资
double AfterTaxWages()
{
    printf("请输入税前工资:");
    scanf("%lf",&Pt);
    SH = (Pt*0.222)+3;                                                        //计算个人应缴社保住房公积金总额公式:(税前工资*0.222)+3
    Qt = Pt-SH-Tt;                                                            //计算个人全月应纳税所得额公式:(税前工资-个人应缴社保和住房公积金-起征点)
    //计算应缴个人所得税公式:(个人全月应纳税所得额*税率-速算扣除数)
    //不同的税前工资税率不同
    if (Qt<=0){T=0;}
    else if (0<Qt&&Qt<=1500){T=Qt*0.03-0;}
    else if (1500<Qt&&Qt<=4500){T=Qt*0.1-105;}
    else if (4500<Qt&&Qt<=9000){T=Qt*0.2-555;}
    else if (9000<Qt&&Qt<=35000){T=Qt*0.25-1005;}
    else if (35000<Qt&&Qt<=55000){T=Qt*0.3-2755;}
    else if (55000<Qt&&Qt<=80000){T=Qt*0.35-5505;}
    else if (Qt>80000){T=Qt*0.45-13505;}
    At = Pt-SH-T;                                                            //税后工资计算公式:税前工资-个人应缴社保公积金-个人所得税
    printf("税后工资为%.2lf\n",At);                                        //输出税后工资
    printf("=================================\n");
}
//计算养老保险
void CalculateEndowmentInsurance(double Pt)
{
    PEI=Pt*0.08;                                                //计算个人应缴养老保险金额
    CEI=Pt*0.19;                                                //计算单位应缴养老保险金额
    printf("个人应缴养老保险金额:%.2lf\n",PEI);                //输出个人应缴养老保险金额
    printf("单位应缴养老保险金额:%.2lf\n",CEI);                //输出单位应缴养老保险金额
    printf("应缴养老保险合计是:%.2lf\n",CEI+PEI);
    printf("=================================\n");
}

//养老保险
void EndowmentInsurance()
{
    int b = 1;
    void CalculateEndowmentInsurance(double Pt);
    while(b)
    {
        int a;
        printf("1:输入税前工资计算养老保险\n""2:输入税后工资计算养老保险\n""0:返回上一级菜单\n");
        printf("请输入查询编号:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                InputPreTaxWages();
                CalculateEndowmentInsurance(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateEndowmentInsurance(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//计算医疗保险
void CalculateMedicalInsurance(double Pt)
{
    PMI=Pt*0.02+3;                                                //计算个人应缴医疗保险金额
    CMI=Pt*0.1;                                                    //计算单位应缴医疗保险金额
    printf("个人应缴医疗保险金额:%.2lf\n",PMI);                //输出个人应缴医疗保险金额
    printf("单位应缴医疗保险金额:%.2lf\n",CMI);                //输出单位应缴医疗保险金额
    printf("应缴医疗保险合计是:%.2lf\n",PMI+CMI);
    printf("=================================\n");
}
//医疗保险
void MedicalInsurance()
{
    int b = 1;
    void CalculateMedicalInsurance(double Pt);
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算医疗保险\n""2:输入税后工资计算医疗保险\n""0:返回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);                                            //输入税前工资
                CalculateMedicalInsurance(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateMedicalInsurance(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//计算失业保险
void CalculateUnInsurance(double Pt)
{
    PUI=Pt*0.002;                                                //计算个人应缴失业保险金额
    CUI=Pt*0.008;                                                //计算单位应缴失业保险金额
    printf("个人应缴失业保险金额:%.2lf\n",PUI);                //输出个人应缴失业保险金额
    printf("单位应缴失业保险金额:%.2lf\n",CUI);                //输出单位应缴失业保险金额
    printf("应缴失业保险合计是:%.2lf\n",PUI+CUI);
    printf("=================================\n");
}
//失业保险
void UnemploymentInsurance()
{
    int b = 1;
    void CalculateUnInsurance(double Pt);
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算失业保险\n""2:输入税后工资计算失业保险\n""0:返回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);                                            //输入税前工资
                CalculateUnInsurance(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateUnInsurance(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//计算工伤保险
void CalculateInjuryInsurance(double Pt)
{
    PEII=0;                                                        //个人应缴工伤保险为零
    CEII=Pt*0.005;                                                //计算单位应缴失业保险金额
    printf("个人应缴工伤保险金额:%.2lf\n",PEII);                //输出个人应缴工伤保险金额
    printf("单位应缴工伤保险金额:%.2lf\n",CEII);                //输出单位应缴工伤保险金额
    printf("应缴工伤保险合计是:%.2lf\n",PEII+CEII);
    printf("=================================\n");
}
//工伤保险
void InjuryInsurance()
{
    int b = 1;
    void CalculateInjuryInsurance(double Pt);
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算工伤保险\n""2:输入税后工资计算工伤保险\n""0:返回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);                                            //输入税前工资
                CalculateInjuryInsurance(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateInjuryInsurance(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//计算生育保险
void CalculateMaternityInsurance(double Pt)
{
    PMTI=0;                                                            //个人应缴生育保险为零
    CMTI=Pt*0.008;                                                    //计算单位应缴生育保险金额
    printf("个人应缴生育保险金额:%.2lf\n",PMTI);                    //输出个人应缴生育保险金额
    printf("单位应缴生育保险金额:%.2lf\n",CMTI);                    //输出单位应缴生育保险金额
    printf("应缴生育保险合计是:%.2lf\n",PMTI+CMTI);
    printf("=================================\n");
}
//生育保险
void MaternityInsurance()
{
    int b = 1;
    void CalculateMaternityInsurance(double Pt);
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算生育保险\n""2:输入税后工资计算生育保险\n""0:返回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);                                            //输入税前工资
                CalculateMaternityInsurance(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateMaternityInsurance(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//计算住房公积金
void CalculateHousingFund(double Pt)
{
    PHF=Pt*12/100;                                                        //计算个人应缴住房公积金金额
    CHF=Pt*12/100;                                                        //计算单位应缴住房公积金金额
    printf("个人应缴住房公积金金额:%.2lf\n",PHF);                    //输出个人应缴住房公积金金额
    printf("个人应缴住房公积金金额:%.2lf\n",CHF);                    //输出单位应缴住房公积金金额
    printf("应缴住房公积金合计是:%.2lf\n",PHF+CHF);
    printf("=================================\n");
}
//住房公积金
void HousingFund()
{
    int b = 1;
    void CalculateHousingFund(double Pt);
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算住房公积金\n""2:输入税后工资计算住房公积金\n""0:回上一级菜单\n");
        printf("请输入查询编号:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);                                            //输入税前工资
                CalculateHousingFund(Pt);
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                CalculateHousingFund(Pt);
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//工资计算器
void WageCalculator()
{
    int b = 1;
    double AfterTaxWages();
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算税后工资\n""2:输入税后工资计算税前工资\n""0:回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                AfterTaxWages();
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                printf("税前工资为%.2lf\n",Pt);
                printf("=================================\n");
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//个人明细打印
void PrintPDuesDetail()
{
    printf("个人应缴养老保险金额:税前收入Pt*0.08= %.2lf\n",Pt*0.08);        //输出个人应缴养老保险金额
    printf("个人应缴医疗保险金额:税前收入Pt*0.02+3= %.2lf\n",Pt*0.02+3);    //输出个人应缴医疗保险金额
    printf("个人应缴失业保险金额:税前收入Pt*0.002= %.2lf\n",Pt*0.002);        //输出个人应缴失业保险金额
    printf("个人应缴工伤保险金额:0\n");                                    //输出个人应缴工伤保险金额
    printf("个人应缴生育保险金额:0\n");                                    //输出个人应缴生育保险金额
    printf("个人应缴住房公积金金额:税前收入Pt*0.12= %.2lf\n",Pt*0.12);    //输出个人应缴住房公积金金额
    printf("应缴个人所得税是:%.2lf\n",T);                                    //输出个人所得税
    printf("个人应缴款合计:%.2lf\n",SH+T);
    printf("=================================\n");
}
//个人应缴明细
void PersonalDuesDetail()
{
    int b = 1;
    double AfterTaxWages();
    void PrintPDuesDetail();
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算明细\n""2:输入税后工资计算明细\n""0:回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                AfterTaxWages();
                PrintPDuesDetail();
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                SH = (Pt*0.222)+3;                                                        //计算个人应缴社保公积金算式
                PrintPDuesDetail();
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}
//打印单位应缴明细
void PrintCDuesDetail()
{
    printf("单位应缴养老保险金额:税前收入Pt*0.19= %.2lf\n",Pt*0.19);        //输出单位应缴养老保险金额
    printf("单位应缴医疗保险金额:税前收入Pt*0.1=%.2lf\n",Pt*0.1);            //输出单位应缴医疗保险金额
    printf("单位应缴失业保险金额:税前收入Pt*0.008=%.2lf\n",Pt*0.008);        //输出单位应缴失业保险金额
    printf("单位应缴工伤保险金额:税前收入Pt*0.005=%.2lf\n",Pt*0.005);        //输出单位应缴工伤保险金额
    printf("单位应缴生育保险金额:税前收入Pt*0.008=%.2lf\n",Pt*0.008);        //输出单位应缴生育保险金额
    printf("单位应缴住房公积金金额:税前收入Pt*0.12=%.2lf\n",Pt*0.12);        //输出单位应缴住房公积金金额
    printf("单位应缴款合计:%.2lf\n",Pt*0.431);
    printf("=================================\n");
}
//单位应缴明细
void CompanyDuesDetail()
{
    int b = 1;
    void PrintCDuesDetail();
    while(b)
    {
        //税前税后选择
        int a;
        printf("1:输入税前工资计算明细\n""2:输入税后工资计算明细\n""0:回上一级菜单\n");
        printf("请输入查询编号>>>:");
        scanf("%d",&a);
        printf("=================================\n");
        switch(a)
        {
            //依据税前工资计算
            case 1:
                printf("请输入税前工资:");
                scanf("%lf",&Pt);        //输入税前工资
                PrintCDuesDetail();
                break;
            //依据税后工资计算
            case 2:
                PreTaxWages();
                PrintCDuesDetail();
                break;
            //返回主菜单
            case 0:
                b=0;break;
            default:printf("《《《客官,您输错啦》》》\n");break;
        }
    }
}

//查询函数
void QuerySystem()
{
    int func_num;char choos[20];
    void EndowmentInsurance();
    void MedicalInsurance();
    void UnemploymentInsurance();
    void InjuryInsurance();
    void MaternityInsurance();
    void HousingFund();
    void WageCalculator();
    void PersonalDuesDetail();
    void CompanyDuesDetail();
    void InputPreTaxWages();
    double PreTaxWages();
    while(1)
    {
        printf("************************\n");
        printf("社会保障体系\n""1:养老保险\n""2:医疗保险\n""3:失业保险\n""4:工伤保险\n""5:生育保险\n""6:住房公积金\n""7:工资计算器\n""8:个人应缴款明细\n""9:单位应缴款明细\n""0:退出当前系统\n");
        printf("请输入功能编号:");
        scanf("%d",&func_num);
        printf("************************\n");
        switch(func_num)
        {
            case 1:
                printf("欢迎进入养老保险页面\n");
                EndowmentInsurance();
                break;
            case 2:
                printf("欢迎进入医疗保险页面\n");
                MedicalInsurance();
                break;
            case 3:
                printf("欢迎进入失业保险页面\n");
                UnemploymentInsurance();
                break;
            case 4:
                printf("欢迎进入工伤保险页面\n");
                InjuryInsurance();
                break;
            case 5:
                printf("欢迎进入生育保险页面\n");
                MaternityInsurance();
                break;
            case 6:
                printf("欢迎进入住房公积金页面\n");
                HousingFund();
                break;
            case 7:
                printf("欢迎进入工资计算器页面\n");
                WageCalculator();
                break;
            case 8:
                printf("欢迎进入个人应缴明细页面\n");
                PersonalDuesDetail();
                break;
            case 9:
                printf("欢迎进入单位应缴明细页面\n");
                CompanyDuesDetail();
                break;
            case 0:

                printf("退出当前系统:是,否\n");
                scanf("%s",&choos);
                if (strcmp(choos,"是")==0)
                {
                    exit(0);
                }
                else if (strcmp(choos,"否")==0)
                    continue;
                break;
        }
    }
}
void main()
{
    //登录
    int i=0;
    char user_name[100],passwd[100];
    void QuerySystem();
    while(i<3)
    {
        printf("请输入账户名: ");
        scanf("%s",&user_name);
        printf("请输入密码: ");
        scanf("%s",&passwd);
        if ((strcmp(user_name,"xiaoming")==0) && (strcmp(passwd,"a123")==0))
        {
            printf("欢迎登录社保工资查询系统\n");
            QuerySystem();
            break;
        }

        else
        {
            printf("账号和密码输入有误\n");
        }
        i += 1;
    }

}

原文地址:https://www.cnblogs.com/thoughtful-actors/p/9504924.html

时间: 2024-10-10 15:09:37

C语言-用函数实现社保工资查询系统的相关文章

依云工资查询系统升级至6.0

作品介绍:依云工资查询系统,一款企业员工工资查询软件,管理员只需录入员工信息.添加工资模板.上传员工工资,员工即可网上查询工资.查询工资更加方便,实现无纸化工资查询,大大节省打印裁剪工资条时间.1.设有3种不同的角色:系统管理员.部门管理员.普通用户.系统管理员可以录入部门管理员.添加工资模板.上传员工工资,部门管理员可以编辑对应部门的员工与工资,员工可以查看自己工资.2.支持Excel表格模板上传员工信息,使员工信息录入更加方便.3.支持Excel表格模板上传员工工资,使员工工资上传更加快捷.

工资查询系统网站搭建

依云工资查询系统,一款企业员工工资查询软件,管理员只需将Excel表导入到系统中,录入员工的工号等信息,员工即可网上查询工资.查询工资更加方便,实现无纸化工资查询,大大节省打印裁剪工资条时间. 1.设有3种不同的角色,系统管理员,部门管理员与普通用户.系统管理员添加各部门管理员.上传工资表等,部门管理员可查看对应部门工资,员工可查看自己工资.2.支持自定义Excel表格模板上传员工信息,使信息录入更加方便.3.支持Excel表上传员工工资,方便保存员工工资信息.4.员工按工号.姓名或电话号码查询

依云工资查询系统6.0升级到6.1详细操作流程

升级说明: 1.分离数据库,备份原始依云工资查询系统6.0.2.删除原始网站系统,但App_Data文件夹除外. 3.将依云工资查询系统6.1拷贝到网站的目录下,注意不要覆盖App_Data文件夹下的原始数据库文件,否则数据库会被重置.4.修改Web.config中的数据库连接字符串.5.升级数据库,打开SQL 管理器,附加App_Data文件夹下的原始数据库,用SQL 管理器打开我发给你的数据库升级脚本,执行. 6.用我新发给你的授权文件按授权说明进行注册,注意原始授权文件在新版上会失效,请不

依云工资查询系统升级至5.3

更新内容: V5.3(2015.12.23) -[+].增加了"工资管理"与"工资查看"页面以简洁模式显示员工工资.(2015.12.15)-[+].增加了"普通用户"首次登录必须更改账户密码.(2015.12.16)-[+].增加了"工资查看"页面以醒目的方式显示当月工资.(2015.12.17)-[√].只统计可见部分工资,工资统计更加明了.(2015.12.18)-[√].优化了SQL数据库中的数据表,使数据更简洁高效.

C语言程序设计#成绩查询系统

学生成绩管理系统 #include<stdio.h>#include<stdlib.h>//颜色#include<conio.h>//清屏#include<string.h>#define LEN sizeof(struct student)#define SDJ stu[s].ID,stu[s].name,stu[s].sex,stu[s].Class,stu[s].major,stu[s].SX,stu[s].YY,stu[s].CYY,stu[s].s

[C/C++基础] C语言常用函数sprintf和snprintf的使用方法

Sprintf 函数声明:int sprintf(char *buffer, const char *format [, argument1, argument2, -]) 用途:将一段数据写入以地址buffer开始的字符串缓冲区 所属库文件: <stdio.h> 参数:(1)buffer,将要写入数据的起始地址:(2)format,写入数据的格式:(3)argument:要写的数据,可以是任何格式的. 返回值:实际写入的字符串长度 说明:此函数需要注意缓冲区buffer溢出,要为写入的arg

C语言strlen()函数用法

C语言strlen()函数:返回字符串的长度 头文件:#include <string.h> strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen (char *s);  s为指定的字符串 eg: #include<stdio.h> #include<string.h> int main() { char *str1 = "http://see.xidian.edu.cn/cpp/u/shipin/"; char

C语言_函数

函数 1.函数构成 int main(int argc, const char * argv[]) { // insert code here... return 0; } 返回值类型  函数名(函数参数) { 函数体语句: return 返回值: } 2.函数分类 1)标准函数 由官方或第三方库提供的函数,可以直接调用,无需实现: 2)自定义函数 由程序员自己实现的函数: 3.编写函数的步骤 1)声明函数 写在头文件 2)实现函数 写在原文件 3)调用函数 C阶段,一般在主函数调用 [注意事项

C语言学习-函数和递归函数

C源程序是由函数组成的,有且只有一个主函数(main()函数). 一.函数 1.自定义函数的书写格式: 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) { 函数体 }例如: 1 include <stdio.h> 2 void test(); 3 4 int main() { 5 test(); 6 return 0; 7 } 8 9 void test() { 10 11 printf("hello world!"); 12 13 } 2.定义函数的