任务描述
根据当前的个人所得纳税政策,按每月收入计算员工的税后工资。
功能要求
①了解某企业的工资结构,建立相应的结构体。
②在主函数中输入5个以上员工的工资明细,存放在结构体wage数组中。
③编写计税函数,以结构体数组做函数参数,参照税收政策,计算各位员工应缴纳的税额。
④编写输出函数,以结构体数组做参数,列出每位员工的税后工资。
//没有计算五险一金
#include<stdio.h>
#include<stdlib.h>
typedef struct {
char name[20];
char id[30];
int nowWages, taxWages;
}wage;
int calcuTax(wage *wagesData,int N)
{
int jud, i,temp;
double tax = 0.0;
for (i = 0; i < N; i++) {
jud = wagesData[i].nowWages - 3500;
if (jud > 80000) {
tax += (double)(jud - 80000) * 0.45;
jud = 80000;
}
if (jud > 55000) {
tax += (double)(jud - 55000) * 0.35;
jud = 55000;
}
if (jud > 35000) {
tax += (double)(jud - 35000) * 0.3;
jud = 35000;
}
if (jud > 9000) {
tax += (double)(jud - 9000) * 0.25;
jud = 9000;
}
if (jud > 4500) {
tax += (double)(jud - 4500) * 0.2;
jud = 4500;
}
if (jud > 1500) {
tax += (double)(jud - 1500) * 0.1;
jud = 1500;
}
tax += (double)jud * 0.03;
wagesData[i].taxWages = wagesData[i].nowWages - (int)tax;
}
return 0;
}
int oupWages(wage *wagesData,int N)
{
int i;
for (i = 0; i < N; i++) {
printf("%s: %d\n", wagesData[i].name,wagesData[i].taxWages);
}
}
int main()
{
int N, i;
wage *wagesData;
printf("输入员工个数:");
scanf("%d", &N);
wagesData = (wage*)malloc(sizeof(wage) * N);
printf("依次输入每个员工的姓名,工号,工资:\n");
for (i = 0; i < N; i++) {
scanf("%s", &wagesData[i].name);
scanf("%s", &wagesData[i].id);
scanf("%d", &wagesData[i].nowWages);
}
calcuTax(wagesData,N);
oupWages(wagesData,N);
system("pause");
return 0;
}