需求:

  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. MySQL随记(二)

    第一范式(1NF First Normal Format): 1. 列具有原子性(atomic) 原子(atom)是物质的最小单元, 它不能被再分割为更小的元素. 2. 表具有主键(Primary K ...

  2. js 图片压缩上传(纯js的质量压缩,非长宽压缩)

    下面是大神整理的demo,很实用,这里存一下备用,感谢大神! 此demo为大于1M对图片进行压缩上传 若小于1M则原图上传,可以根据自己实际需求更改. demo源码如下 <!DOCTYPE ht ...

  3. Django之CRM项目Day3-客户展示及分页

    1.展示客户 模板的查找顺序: ​ 先找全局的templates--> 按照app的注册顺序找templates中的文件 使用admin添加数据: 创建超级用户 python manage.py ...

  4. MacOS下IntelliJ IDEA关联JDK1.8源码

    1 打开jdk设置,找到具体添加的地方 2 找到自己jdk的源码位置替换掉 3 如果没有源码或者源码没有下载解压,自己下载解压,Mac下安装的自带src.zip和javax-src.zip解压好后,再 ...

  5. 缓存设计(cache-design)

    分布式缓存设计 目前常见的缓存方案都是分层缓存,通常可以分为以下几层: 1.1NG本地缓存,命中的话直接返回 1.2 NG没有命中时则需要查询分布式缓存,如redis 1.3 如果分布式缓存没有命中则 ...

  6. java 基础 浮点类型

    1.浮点类型用于表示小数的数据类型. 2.浮点数原理:也就是二进制科学计数法. 3.Java的浮点类型有float和double两种. 4.Java默认浮点类型计算的结果是double类型,字面量也是 ...

  7. 剑指Offer-从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路 使用两个队列一个存放节点,一个存放值.先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子 ...

  8. react-踩坑记录——swiper报错!

    已经在html文件中使用过,正确无误:但做成组件后(各种依赖文件引入路径确认无误)报错. 在只引入swiper.css时未报错,引入swiper.js文件后报错,如下: 错误原因,不详. 解决措施,不 ...

  9. Springboot配置时间格式

    方法一: 可以在apllication.property加入下面配置就可以 #时间戳统一转换 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring ...

  10. 【Convex Optimization (by Boyd) 学习笔记】Chapter 1 - Mathematical Optimization

    以下笔记参考自Boyd老师的教材[Convex Optimization]. I. Mathematical Optimization 1.1 定义 数学优化问题(Mathematical Optim ...