需求:

  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 (<=At&&At<=){T=((At-)*-)/(-);}
else if (<At&&At<=){T=((At-)*0.03-)/(-0.03);}
else if (<At&&At<=){T=((At-)*0.1-)/(-0.1);}
else if (<At&&At<=){T=((At-)*0.2-)/(-0.2);}
else if (<At&&At<=){T=((At-)*0.25-)/(-0.25);}
else if (<At&&At<=){T=((At-)*0.3-)/(-0.3);}
else if (<At&&At<=){T=((At-)*0.35-)/(-0.35);}
else if (<At){T=((At-)*0.45-)/(-0.45);}
Pt = (At + T + )/(0.778); //税后反推税前工资公式:税前工资=(税后工资+个人所得税+3)/0.778
} //计算税后工资
double AfterTaxWages()
{
printf("请输入税前工资:");
scanf("%lf",&Pt);
SH = (Pt*0.222)+; //计算个人应缴社保住房公积金总额公式:(税前工资*0.222)+3
Qt = Pt-SH-Tt; //计算个人全月应纳税所得额公式:(税前工资-个人应缴社保和住房公积金-起征点)
//计算应缴个人所得税公式:(个人全月应纳税所得额*税率-速算扣除数)
//不同的税前工资税率不同
if (Qt<=){T=;}
else if (<Qt&&Qt<=){T=Qt*0.03-;}
else if (<Qt&&Qt<=){T=Qt*0.1-;}
else if (<Qt&&Qt<=){T=Qt*0.2-;}
else if (<Qt&&Qt<=){T=Qt*0.25-;}
else if (<Qt&&Qt<=){T=Qt*0.3-;}
else if (<Qt&&Qt<=){T=Qt*0.35-;}
else if (Qt>){T=Qt*0.45-;}
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 = ;
void CalculateEndowmentInsurance(double Pt);
while(b)
{
int a;
printf("1:输入税前工资计算养老保险\n""2:输入税后工资计算养老保险\n""0:返回上一级菜单\n");
printf("请输入查询编号:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
InputPreTaxWages();
CalculateEndowmentInsurance(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateEndowmentInsurance(Pt);
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
}
//计算医疗保险
void CalculateMedicalInsurance(double Pt)
{
PMI=Pt*0.02+; //计算个人应缴医疗保险金额
CMI=Pt*0.1; //计算单位应缴医疗保险金额
printf("个人应缴医疗保险金额:%.2lf\n",PMI); //输出个人应缴医疗保险金额
printf("单位应缴医疗保险金额:%.2lf\n",CMI); //输出单位应缴医疗保险金额
printf("应缴医疗保险合计是:%.2lf\n",PMI+CMI);
printf("=================================\n");
}
//医疗保险
void MedicalInsurance()
{
int b = ;
void CalculateMedicalInsurance(double Pt);
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算医疗保险\n""2:输入税后工资计算医疗保险\n""0:返回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
CalculateMedicalInsurance(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateMedicalInsurance(Pt);
break;
//返回主菜单
case :
b=;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 = ;
void CalculateUnInsurance(double Pt);
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算失业保险\n""2:输入税后工资计算失业保险\n""0:返回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
CalculateUnInsurance(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateUnInsurance(Pt);
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
}
//计算工伤保险
void CalculateInjuryInsurance(double Pt)
{
PEII=; //个人应缴工伤保险为零
CEII=Pt*0.005; //计算单位应缴失业保险金额
printf("个人应缴工伤保险金额:%.2lf\n",PEII); //输出个人应缴工伤保险金额
printf("单位应缴工伤保险金额:%.2lf\n",CEII); //输出单位应缴工伤保险金额
printf("应缴工伤保险合计是:%.2lf\n",PEII+CEII);
printf("=================================\n");
}
//工伤保险
void InjuryInsurance()
{
int b = ;
void CalculateInjuryInsurance(double Pt);
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算工伤保险\n""2:输入税后工资计算工伤保险\n""0:返回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
CalculateInjuryInsurance(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateInjuryInsurance(Pt);
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
}
//计算生育保险
void CalculateMaternityInsurance(double Pt)
{
PMTI=; //个人应缴生育保险为零
CMTI=Pt*0.008; //计算单位应缴生育保险金额
printf("个人应缴生育保险金额:%.2lf\n",PMTI); //输出个人应缴生育保险金额
printf("单位应缴生育保险金额:%.2lf\n",CMTI); //输出单位应缴生育保险金额
printf("应缴生育保险合计是:%.2lf\n",PMTI+CMTI);
printf("=================================\n");
}
//生育保险
void MaternityInsurance()
{
int b = ;
void CalculateMaternityInsurance(double Pt);
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算生育保险\n""2:输入税后工资计算生育保险\n""0:返回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
CalculateMaternityInsurance(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateMaternityInsurance(Pt);
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
}
//计算住房公积金
void CalculateHousingFund(double Pt)
{
PHF=Pt*/; //计算个人应缴住房公积金金额
CHF=Pt*/; //计算单位应缴住房公积金金额
printf("个人应缴住房公积金金额:%.2lf\n",PHF); //输出个人应缴住房公积金金额
printf("个人应缴住房公积金金额:%.2lf\n",CHF); //输出单位应缴住房公积金金额
printf("应缴住房公积金合计是:%.2lf\n",PHF+CHF);
printf("=================================\n");
}
//住房公积金
void HousingFund()
{
int b = ;
void CalculateHousingFund(double Pt);
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算住房公积金\n""2:输入税后工资计算住房公积金\n""0:回上一级菜单\n");
printf("请输入查询编号:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
CalculateHousingFund(Pt);
break;
//依据税后工资计算
case :
PreTaxWages();
CalculateHousingFund(Pt);
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
}
//工资计算器
void WageCalculator()
{
int b = ;
double AfterTaxWages();
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算税后工资\n""2:输入税后工资计算税前工资\n""0:回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
AfterTaxWages();
break;
//依据税后工资计算
case :
PreTaxWages();
printf("税前工资为%.2lf\n",Pt);
printf("=================================\n");
break;
//返回主菜单
case :
b=;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+); //输出个人应缴医疗保险金额
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 = ;
double AfterTaxWages();
void PrintPDuesDetail();
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算明细\n""2:输入税后工资计算明细\n""0:回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
AfterTaxWages();
PrintPDuesDetail();
break;
//依据税后工资计算
case :
PreTaxWages();
SH = (Pt*0.222)+; //计算个人应缴社保公积金算式
PrintPDuesDetail();
break;
//返回主菜单
case :
b=;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 = ;
void PrintCDuesDetail();
while(b)
{
//税前税后选择
int a;
printf("1:输入税前工资计算明细\n""2:输入税后工资计算明细\n""0:回上一级菜单\n");
printf("请输入查询编号>>>:");
scanf("%d",&a);
printf("=================================\n");
switch(a)
{
//依据税前工资计算
case :
printf("请输入税前工资:");
scanf("%lf",&Pt); //输入税前工资
PrintCDuesDetail();
break;
//依据税后工资计算
case :
PreTaxWages();
PrintCDuesDetail();
break;
//返回主菜单
case :
b=;break;
default:printf("《《《客官,您输错啦》》》\n");break;
}
}
} //查询函数
void QuerySystem()
{
int func_num;char choos[];
void EndowmentInsurance();
void MedicalInsurance();
void UnemploymentInsurance();
void InjuryInsurance();
void MaternityInsurance();
void HousingFund();
void WageCalculator();
void PersonalDuesDetail();
void CompanyDuesDetail();
void InputPreTaxWages();
double PreTaxWages();
while()
{
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 :
printf("欢迎进入养老保险页面\n");
EndowmentInsurance();
break;
case :
printf("欢迎进入医疗保险页面\n");
MedicalInsurance();
break;
case :
printf("欢迎进入失业保险页面\n");
UnemploymentInsurance();
break;
case :
printf("欢迎进入工伤保险页面\n");
InjuryInsurance();
break;
case :
printf("欢迎进入生育保险页面\n");
MaternityInsurance();
break;
case :
printf("欢迎进入住房公积金页面\n");
HousingFund();
break;
case :
printf("欢迎进入工资计算器页面\n");
WageCalculator();
break;
case :
printf("欢迎进入个人应缴明细页面\n");
PersonalDuesDetail();
break;
case :
printf("欢迎进入单位应缴明细页面\n");
CompanyDuesDetail();
break;
case : printf("退出当前系统:是,否\n");
scanf("%s",&choos);
if (strcmp(choos,"是")==)
{
exit();
}
else if (strcmp(choos,"否")==)
continue;
break;
}
}
}
void main()
{
//登录
int i=;
char user_name[],passwd[];
void QuerySystem();
while(i<)
{
printf("请输入账户名: ");
scanf("%s",&user_name);
printf("请输入密码: ");
scanf("%s",&passwd);
if ((strcmp(user_name,"xiaoming")==) && (strcmp(passwd,"a123")==))
{
printf("欢迎登录社保工资查询系统\n");
QuerySystem();
break;
} else
{
printf("账号和密码输入有误\n");
}
i += ;
} }

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

  1. C语言-社保工资查询系统

    一.简述 此次程序没有涉及函数,完成工资.保险和住房公积金税前税后的查询.工资和社保公积金算法是依据最新的北京标准计算. 五险一金标准: 税率: 1.输入编号1~6查询保险,然后再选择是依据税前工资还 ...

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

    学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...

  3. C语言pow函数编写

    C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...

  4. C语言-自定义函数

    C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...

  5. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  6. C语言基础--函数

    函数概念: 1. C语言程序是由函数组成 2. 什么是函数? 函数就是一段具备特定功能的程序段 定义函数的目的: 定义函数的目的: 将一个功能封装以来方便复用 不使用函数的弊端: 1.重复代码太多, ...

  7. C语言的函数

    "函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...

  8. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  9. Go语言示例-函数返回多个值

    Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...

随机推荐

  1. python练习实例2--------构造数据类型

    有如下数据类型 cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567'] locatio ...

  2. python3 bytes数据类型探讨

    python3中str和bytes分开了,那么bytes与str之间到底是什么关系呢?下面从表现形式.处理方式.存储形式三个方面来阐述其区别 1. 在字符串前面加上b,就表示bytes数据类型 s1 ...

  3. Ganglia 入门介绍及解决fsockopen error: Connection refused问题

    一,问题描述 Ganglia的各个组件安装情况(不是我装的,只知道这些信息): 集群一共有4台机器,分别是192.168.121.34-37.Gmetad.Gweb和httpd 安装在 192.168 ...

  4. Reduce:规约;Collector:收集、判断性终止函数、组函数、分组、分区

    Stream 的终止操作  一.规约 * reduce(T iden, BinaryOperator b) 可以将流中元素反复结合起来,得到一个值. 返回 T * reduce(BinaryOpera ...

  5. 一、linux 内核介绍

    参考文档: linux 内核剖析:https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 1.1 linux 内核历史 在 20 世纪 ...

  6. luogu P3250 [HNOI2016]网络

    传送门 考虑只有一个询问,怎么使用暴力枚举最快的得到答案.因为要求最大的,所以可以把链按权值从大往小排序,然后往后扫,找到一个没有交的就是答案,直接退出 一堆询问,可以考虑整体二分,先二分一个值\(m ...

  7. Liunx/RHEL6.5 Oracle11 安装记录

    1.创建用户组 groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -g dba -m oracle ...

  8. 【译】第十一篇 SQL Server安全审核

    本篇文章是SQL Server安全系列的第十一篇,详细内容请参考原文. SQL Server审核SQL Server审核是指你可以在数据库或服务器实例监控事件.审核日志包含你选择捕获的事件的列表,在服 ...

  9. HashSet、TreeSet和LinkedHashSet分别基于HashMap、TreeMap和LinkedHashMap

    1.如果你需要一个访问快速的Set,你应该使用HashSet: 当你需要一个排序的Set,你应该使用TreeSet: 当你需要记录下插入时的顺序时,你应该使用LinedHashSet. 2.因为Tre ...

  10. WebBrowser控件的NavigateToString()方法 参数 为中文时乱码问题的解决。

    public static string ConvertExtendedASCII(string HTML) { StringBuilder str = new StringBuilder(); ch ...