【无标题】

#include <stdio.h>

// 定义工资标准常量
double BASIC_WAGE;// 月基本工资标准
int FULL_TIME_DAYS ; // 全勤天数标准
double BASIC_PERFORMANCE_WAGE;// 月绩效工资标准
double BASIC_LIVINGALLOWANCE_WAGE ; // 月生活津贴标准
double A, B, C, D;//各岗位工资的第一级标准
double BASIC_PIECE_WAGE; //计件工资标准

// 定义工资结构
typedef struct {
    //工资组成部分
    double basicWage; // 基本工资
    double positionWage; // 岗位工资
    double positiongradeWage; // 岗位级别工资
    double performanceWage; // 绩效工资
    double livingAllowance; // 生活津贴
    double overtimeWage; // 加班工资
    double pieceWage; // 计件工资
    double sum;//总工资
    double award;//优秀员工奖励

    //员工具体情况部分
    int chuqin;//出勤天数 
    int position; //岗位
    int positionGrade; // 岗位等级
    int  performance;//绩效考核分数 
    int overtime;//加班天数
    int pieceNumber;//计件数
    
} Salary;

// 函数声明
void inputbasicInfo(Salary* salary);
void inputSalaryInfo(Salary* salary);
void calculateSalary(Salary* salary);
void printfSalary(Salary* salary);

int main() {
    Salary salary;

    inputbasicInfo(&salary);//录入标准
    inputSalaryInfo(&salary);//输入信息
    calculateSalary(&salary);//计算工资
    printfSalary(&salary);//输出工资表

    return 0;
}

// 输入工资标准信息
void inputbasicInfo(Salary* salary){
    printf("-------------------------------------------------------------\n");
    printf("请录入各项工资标准(单位:元,由财务人员录入)\n");
    printf("请录入月基本工资标准:");
    scanf_s("%lf", &BASIC_WAGE);

    printf("请录入全勤天数标准:");
    scanf_s("%d",&FULL_TIME_DAYS);

    printf("请录入月绩效工资标准:");
    scanf_s("%lf",  &BASIC_PERFORMANCE_WAGE);

    printf("请录入月生活津贴标准:");
    scanf_s("%lf",  &BASIC_LIVINGALLOWANCE_WAGE);

    printf("请录入厂长及以上岗位工资的第一级标准:");
    scanf_s("%lf",  &A);

    printf("请录入部门主管、及以上岗位工资的第一级标准:");
    scanf_s("%lf",  &B);

    printf("请录入车间主任、工段长、班组长岗位工资的第一级标准:");
    scanf_s("%lf", &C);

    printf("请录入普通员工岗位工资的第一级标准:");
    scanf_s("%lf", &D);

    printf("请录入计件工资标准:");
    scanf_s("%lf", &BASIC_PIECE_WAGE);

}

// 输入员工信息
void inputSalaryInfo(Salary* salary) {
    printf("-------------------------------------------------------------\n");
    printf("请输入员工表现信息(由行政人员录入)\n");
    printf("请输入出勤天数:");
    scanf_s("%d", &salary->chuqin);

    printf("请输入岗位:1(厂长及以上岗位),2(部门主管、及以上),3(车间主任、工段长、班组长),4(普通员工):");
    scanf_s("%d", &salary->position);

    printf("请输入绩效考核分数(0~100):");
    scanf_s("%d", &salary->performance);

    printf("请输入加班天数:");
    scanf_s("%d", &salary->overtime);

    printf("请输入计件数:");
    scanf_s("%d", &salary->pieceNumber);

    printf("请输入岗位等级(1~10):");
    scanf_s("%d", &salary->positionGrade);

    printf("请输入已批准的优异员工奖励(若不是优异员工请输入0):");
    scanf_s("%lf", &salary->award);
}

// 计算工资
void calculateSalary(Salary* salary) {
    
    salary->basicWage = BASIC_WAGE;//基本工资

    salary->positionWage = salary->basicWage/ FULL_TIME_DAYS* salary->chuqin; // 岗位工资

    if (salary->performance >= 90) salary->performanceWage = BASIC_PERFORMANCE_WAGE;// 绩效工资
    else salary->performanceWage = BASIC_PERFORMANCE_WAGE* salary->performance /100; 

    salary->livingAllowance = BASIC_LIVINGALLOWANCE_WAGE/ FULL_TIME_DAYS * salary->chuqin; // 生活津贴

    salary->overtimeWage = salary->basicWage / FULL_TIME_DAYS* salary->overtime; //加班工资

    salary->pieceWage = BASIC_PIECE_WAGE* salary->pieceNumber; // 计件工资
    
    if (salary->position == 1)salary->positiongradeWage = A + 500 * (salary->positionGrade - 1);//岗位级别工资
    else if (salary->position == 2)salary->positiongradeWage = B + 350 * (salary->positionGrade - 1);
    else if (salary->position == 3)salary->positiongradeWage = C + 150 * (salary->positionGrade - 1);
    else salary->positiongradeWage = D + 100 * (salary->positionGrade - 1);

    salary->sum = salary->basicWage + salary->positionWage + salary->performanceWage + 
        salary->livingAllowance + salary->overtimeWage + salary->pieceWage+ salary->positiongradeWage+ salary->award;//总工资
    
}

//打印工资表
void printfSalary(Salary* salary) {
    printf("-------------------------------------------------------------\n");
    printf("工资表如下:\n");
    printf("\n");
    printf("基本工资:%.2f元\n", salary->basicWage);
    printf("岗位工资:%.2f元\n", salary->positionWage);
    printf("绩效工资:%.2f元\n", salary->performanceWage);
    printf("生活津贴:%.2f元\n", salary->livingAllowance);
    printf("加班工资:%.2f元\n", salary->overtimeWage);
    printf("计件工资:%.2f元\n", salary->pieceWage);
    printf("岗位级别工资:%.2f元\n", salary->positiongradeWage);
    printf("优异员工奖励:%.2f元\n", salary->award);
    printf("总工资:%.2f元\n", salary->sum);
    printf("\n");
    printf("-------------------------------------------------------------\n");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值