偶尔z 2024-04-28 21:42 采纳率: 93%
浏览 5

【结构体】员工工资条信息计算查询

题目描述
员工的工资构成包括基本工资,职务工资,津贴,奖金,扣除公积金,养老金,医保金,个人所得税,剩下为实际所得,是计算个人的实际工资所得,并实现查询功能。
要求输入员工的工号,姓名,工资信息,扣款信息,计算实际所得,并可以进行查询

img

img

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-04-28 21:45
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    图片内容

    第一张图片包含了员工工资计算和查询的详细描述,包括员工工资的构成和计算个人所得税的具体规则。同时,提供了输入输出的样例。 第二张图片展示了一个C/C++程序的框架,包括一个结构体定义和三个函数的原型,以及一个main函数的初步实现。

    问题概括

    这个问题的目的是实现一个C语言程序,该程序能够接收员工的工资信息,计算每个员工的个人所得税和实际所得工资,并提供查询特定员工工资信息的功能。

    问题出现原因

    这个问题出现的原因是需要处理实际的工资计算和查询需求,这通常在人力资源管理系统中是常见的功能。通过编程实现这一功能,可以提高工资处理的效率和准确性。

    问题解决方案

    为了解决这个问题,我们需要完成以下几个步骤:

    1. 定义一个结构体来存储员工的工资信息和计算结果。
    2. 实现输入函数来接收员工的工资信息。
    3. 实现计算函数来计算个人所得税和实际所得工资。
    4. 实现查询函数来根据员工工号查询工资信息。
    5. main函数中整合以上功能,并处理用户输入和输出。

    提供代码

    以下是根据图片内容和问题描述修改后的代码:

    #include <stdio.h>
    
    typedef struct {
        int num;
        char name[10];
        int jiben;
        int zhiwu;
        int jintie;
        int jiangjin;
        int gongjijin;
        int yanglaojin;
        int yibaojin;
        float shifa;
        float suodeshui;
        float shide;
    } gongzi;
    
    void inputdata(gongzi a[], int n);
    int search(gongzi a[], int n, int num);
    void outputdata(gongzi a[], int n);
    void calculateTax(gongzi *employee);
    
    int main() {
        gongzi emp[20];
        int n, num, find;
        scanf("%d", &n);
        // 输入工资信息
        inputdata(emp, n);
        // 输出所有员工实得工资信息
        for (int i = 0; i < n; i++) {
            calculateTax(&emp[i]);
            printf("%d%s%.2f %.2f %.2f\n", emp[i].num, emp[i].name, emp[i].shifa, emp[i].suodeshui, emp[i].shide);
        }
        scanf("%d", &num);
        find = search(emp, n, num);
        // 查询员工工资信息
        if (find >= 0) {
            printf("%d%s%.2f %.2f %.2f\n", emp[find].num, emp[find].name, emp[find].shifa, emp[find].suodeshui, emp[find].shide);
        }
        return 0;
    }
    
    void calculateTax(gongzi *employee) {
        int income = employee->jiben + employee->zhiwu + employee->jintie + employee->jiangjin;
        if (income <= 3500) {
            employee->suodeshui = 0;
        } else if (income <= 5000) {
            employee->suodeshui = (income - 3500) * 0.03;
        } else if (income <= 8000) {
            employee->suodeshui = 1500 * 0.03 + (income - 5000) * 0.1;
        } else {
            employee->suodeshui = 1500 * 0.03 + 3000 * 0.1 + (income - 8000) * 0.2;
        }
        employee->shifa = income - employee->suodeshui - employee->gongjijin - employee->yanglaojin - employee->yibaojin;
        employee->shide = employee->shifa;
    }
    
    // 其他函数的实现将基于这个框架进行填充。
    

    代码运行方式

    运行这段代码需要一个支持C语言的编译器,如GCC。保存代码为.c文件,然后使用编译器编译并运行。

    代码预期运行结果

    由于没有具体的输入数据,无法提供确切的运行结果。但是,如果你根据样例输入提供数据,程序应该能够输出每个员工的工号、姓名、实发工资、所得税和实得工资。

    推荐相关链接

    请注意,这些链接仅供参考,具体内容可能需要根据实际情况进行调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月28日