需求:

  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. Vertica系列:Vertica和Hadoop的互操作性

    Vertica 8和 Hadoop 集群的互操作性已经很不错的, 但这块肯定是Vertica研发的重点, 将来可能还有较大的变动. Vertica 集群 和 Hadoop 集群的两种布局方式 集群布局 ...

  2. Dictionary与SortedDictionary

    Dictionary是无序的,如果想排序,需要使用SortDictionary. 下面是一个用法示例 //按照某个字段排序 public void SortByCardItem(string item ...

  3. 路由器数据统计SQL脚本

    一.路由器部分 //[饼图]统计路由器在线.离线数量 SELECT COUNT(*) AS total, MINUTE)) ELSE NULL END) AS livecount, MINUTE)) ...

  4. 一张图教你弄清楚linux虚拟机的静态IP设置原理 VMnet8

  5. String类中的常用方法

    String类 一.转换成String方法 1.public String(); 空参构造 初始化一个新创建的 String 对象,使其表示一个空字符序列 2.public String(byte[] ...

  6. [译]使用mediatR的notification来扩展的的应用

    原文 你不希望在controller里面出现任何领域知识 开发者经常有这样的疑问"这个代码应该放在哪呢?"应该使用仓储还是query类?.... 怎么去实现职责分离和单一职责呢? ...

  7. PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作

    租房页面如图: 代码如下: <!DOCTYPE html><html>    <head>        <meta charset="UTF-8& ...

  8. steps/train_mono.sh

    <<单音素HMM的训练流程图.vsdx>> 定义拓扑结构.参数初始化 $ gmm-init-mono --shared-phones=$lang/phones/sets.int ...

  9. Luogu P4479 [BJWC2018]第k大斜率

    一道清真简单的好写的题 Luogu P4479 题意 求点集两两连出的直线中斜率第$ k$大的直线 $ Solution$ 二分答案,设$x_j \geq x_i$ 若点$ (x_i,y_i)$和点$ ...

  10. iic 之24C256存储器 及PCF8563

    参考文章: http://www.21ic.com/jichuzhishi/mcu/memory/2013-02-28/159439.html 完整的例子: http://blog.csdn.net/ ...