C语言实现简单员工工资管理系统

C语言实现简单员工工资管理系统

简介

本文旨在介绍如何使用C语言实现一个简单的员工工资管理系统。该系统可以用于输入员工基本信息,录入工资数据和计算每个员工的工资。其主要功能模块包括:输入员工基本信息、录入工资数据、计算员工工资、显示员工工资信息。

基本功能

  1. 输入员工基本信息:包括员工的姓名、性别、年龄、工龄等信息。

示例代码:

```c
struct employee {
char name[20];
char gender[10];
int age;
int workExperience;
};

struct employee getEmployeeInfo() {
struct employee emp;
printf("请输入员工姓名:");
scanf("%s", emp.name);
printf("请输入员工性别:");
scanf("%s", emp.gender);
printf("请输入员工年龄:");
scanf("%d", &emp.age);
printf("请输入员工工龄:");
scanf("%d", &emp.workExperience);
return emp;
}
```

  1. 录入工资数据:针对每个月的具体情况,输入员工的基本工资、加班工资、津贴、罚款等数据。

示例代码:

```c
struct salary {
float basicSalary;
float overtimeSalary;
float allowance;
float fine;
};

struct salary getSalaryInfo() {
struct salary sal;
printf("请输入员工基本工资:");
scanf("%f", &sal.basicSalary);
printf("请输入员工加班工资:");
scanf("%f", &sal.overtimeSalary);
printf("请输入员工津贴:");
scanf("%f", &sal.allowance);
printf("请输入员工罚款:");
scanf("%f", &sal.fine);
return sal;
}
```

  1. 计算员工工资:根据录入的工资数据,计算员工的每月工资。

示例代码:

```c
struct employee_salary {
struct employee emp;
struct salary sal;
float totalSalary;
};

struct employee_salary calculateEmployeeSalary(struct employee emp, struct salary sal) {
struct employee_salary empSal;
empSal.emp = emp;
empSal.sal = sal;
empSal.totalSalary = sal.basicSalary + sal.overtimeSalary + sal.allowance - sal.fine;
return empSal;
}
```

  1. 显示员工工资信息:列出所有员工的工资信息。

示例代码:

c
void displayEmployeeSalary(struct employee_salary empSal) {
printf("员工姓名:%s\n", empSal.emp.name);
printf("员工性别:%s\n", empSal.emp.gender);
printf("员工年龄:%d\n", empSal.emp.age);
printf("员工工龄:%d\n", empSal.emp.workExperience);
printf("基本工资:%f\n", empSal.sal.basicSalary);
printf("加班工资:%f\n", empSal.sal.overtimeSalary);
printf("津贴:%f\n", empSal.sal.allowance);
printf("罚款:%f\n", empSal.sal.fine);
printf("总工资:%f\n", empSal.totalSalary);
}

流程

  1. 编写代码前,先确定系统的基本功能模块。
  2. 分别编写输入员工基本信息、录入工资数据、计算员工工资、显示员工工资信息的代码。
  3. 在主方法中实现四个模块的调用。
  4. 编译运行程序。

示例代码:

#include<stdio.h>
#include<string.h>

struct employee {
    char name[20];
    char gender[10];
    int age;
    int workExperience;
};

struct salary {
    float basicSalary;
    float overtimeSalary;
    float allowance;
    float fine;
};

struct employee_salary {
    struct employee emp;
    struct salary sal;
    float totalSalary;
};

struct employee getEmployeeInfo() {
    struct employee emp;
    printf("请输入员工姓名:");
    scanf("%s", emp.name);
    printf("请输入员工性别:");
    scanf("%s", emp.gender);
    printf("请输入员工年龄:");
    scanf("%d", &emp.age);
    printf("请输入员工工龄:");
    scanf("%d", &emp.workExperience);
    return emp;
}

struct salary getSalaryInfo() {
    struct salary sal;
    printf("请输入员工基本工资:");
    scanf("%f", &sal.basicSalary);
    printf("请输入员工加班工资:");
    scanf("%f", &sal.overtimeSalary);
    printf("请输入员工津贴:");
    scanf("%f", &sal.allowance);
    printf("请输入员工罚款:");
    scanf("%f", &sal.fine);
    return sal;
}

struct employee_salary calculateEmployeeSalary(struct employee emp, struct salary sal) {
    struct employee_salary empSal;
    empSal.emp = emp;
    empSal.sal = sal;
    empSal.totalSalary = sal.basicSalary + sal.overtimeSalary + sal.allowance - sal.fine;
    return empSal;
}

void displayEmployeeSalary(struct employee_salary empSal) {
    printf("员工姓名:%s\n", empSal.emp.name);
    printf("员工性别:%s\n", empSal.emp.gender);
    printf("员工年龄:%d\n", empSal.emp.age);
    printf("员工工龄:%d\n", empSal.emp.workExperience);
    printf("基本工资:%f\n", empSal.sal.basicSalary);
    printf("加班工资:%f\n", empSal.sal.overtimeSalary);
    printf("津贴:%f\n", empSal.sal.allowance);
    printf("罚款:%f\n", empSal.sal.fine);
    printf("总工资:%f\n", empSal.totalSalary);
}

int main() {
    int numberOfEmployees;
    printf("请输入员工人数:");
    scanf("%d", &numberOfEmployees);

    struct employee_salary employeeSalaryArray[numberOfEmployees];

    for (int i = 0; i < numberOfEmployees; i++) {
        printf("请输入第 %d 个员工的信息:\n", i+1);
        struct employee emp = getEmployeeInfo();
        struct salary sal = getSalaryInfo();
        employeeSalaryArray[i] = calculateEmployeeSalary(emp, sal);
    }
    printf("\n\n");

    for (int i = 0; i < numberOfEmployees; i++) {
        displayEmployeeSalary(employeeSalaryArray[i]);
        printf("\n\n");
    }
}

总结

本文简要介绍了如何使用C语言实现一个简单的员工工资管理系统,包括输入员工基本信息、录入工资数据、计算员工工资、显示员工工资信息四个模块。在实现过程中,需要注意数据类型的定义和函数模块的调用。当然,还有很多需要完善的地方,例如数据存储、多种计算方法等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简单员工工资管理系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现通讯录系统课程设计

    C语言实现通讯录系统课程设计 本次课程设计旨在通过实现一个简单的通讯录系统,帮助初学者巩固C语言基础知识,并初步了解数据结构相关操作和应用。 基本功能 通讯录系统主要包含以下功能: 添加联系人 删除联系人 修改联系人信息 查找联系人 显示所有联系人信息 清空联系人 设计思路 通讯录系统主要使用链表数据结构作为存储方式,并且通过读写文件将链表数据结构永久保存到…

    C 2023年5月23日
    00
  • C语言折半查找法介绍及使用示例

    C语言折半查找法介绍及使用示例 什么是折半查找法 折半查找法(也称二分查找法)是一种常用的查找算法。它是根据定位元素与查找范围中间元素的比较结果,将查找范围逐渐缩小,最终定位到所查找的元素的过程。 其基本思路可以用以下伪代码表示: // array是一个已经按照从小到大排序好的数组,n是数组长度,x是要查找的元素 binary_search(array, n…

    C 2023年5月22日
    00
  • shpc32.exe – shpc32是什么进程 有什么用

    shpc32.exe – shpc32是什么进程,有什么用 什么是shpc32.exe shpc32.exe是一种可执行文件(executable file),是 Spybot Search and Destroy 去广告软件的一部分。它是用于帮助清除广告和间谍软件的一个进程。这个进程属于 Spybot – Search & Destroy 的组成部…

    C 2023年5月30日
    00
  • 最新ios面试试题以及解决思路分析

    最新iOS面试题以及解决思路分析 背景介绍 作为一名iOS开发工程师,参加技术面试是必不可少的一环。面试过程中往往会面临各种各样的问题,包括技术上的问题、项目中的问题以及软技能方面的考察等。本文将从最新iOS面试题的角度出发,对一些常见的面试题目进行分析,并给出解决问题的思路和具体实现方式,以帮助广大iOS开发工程师成功通过面试。 面试题目 以下是几个最新的…

    C 2023年5月22日
    00
  • c++中c_str()的用法示例

    下面是对于“c++中c_str()的用法示例”的完整攻略: 什么是c_str() c_str()是一个C++字符串类string的成员函数,用于将string类型字符串转换成C风格的字符串,即以’\0’结尾的字符数组。 c_str()函数的语法 c_str()函数的语法如下: const char* c_str() const noexcept; 该函数返回…

    C 2023年5月23日
    00
  • C语言中的窗口滑动技术

    C语言中的窗口滑动技术详解 窗口滑动技术介绍 窗口滑动技术指的是在一段连续的数据流中,以固定大小的窗口对数据进行处理的技术。在C语言中,窗口滑动技术常用于数据压缩、数据加密、错误检测等领域。 窗口滑动技术实现 C语言中,实现窗口滑动技术通常使用循环结构和指针。下面是一段实现基础窗口滑动的示例代码: char buffer[1024]; int window_…

    C 2023年5月9日
    00
  • go语言规范RESTful API业务错误处理

    针对你的问题,我来详细讲解一下“Go语言规范RESTful API业务错误处理”的完整攻略。 一、什么是RESTful API REST(Representational State Transfer)是一种设计风格,指的是一组架构约束条件和原则。RESTful API 则是通过遵循 REST 设计风格构建的 Web API。它基于 HTTP 协议,使用 H…

    C 2023年5月23日
    00
  • 浅析VSCode launch.json中的各种替换变量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等

    对于”浅析VSCode launch.json中的各种替换变量的意思”这个话题,以下是我准备好的完整攻略。 1. 简介 在 VSCode 调试过程中,通常需要配置一个 .vscode/launch.json 文件。这个配置文件中包括了很多参数,其中一些参数需要填写变量,这些变量通常用于在不同情况下动态生成参数值。这些变量被称为“替换变量”,是一种非常方便的技…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部