【项目开发 | C语言项目 | C语言薪资管理系统】

本项目是一个简单的薪资管理系统,旨在为用户提供方便的员工薪资管理功能,如添加、查询、修改、删除员工薪资信息等。系统通过命令行交互界面与用户进行交互,并使用 txt 文件存储员工数据。


一,开发环境需求

  • 操作系统:windows, linux

  • 开发环境工具:qt, vscode, visual studio

  • 技术要求

    • C 语言编程
    • 数据结构(如:数组)
    • 文件 I/O 操作
    • 命令行交互界面设计

二,功能说明

  • 添加员工信息:允许用户添加新的员工及其薪资信息。

  • 查询员工薪资:根据员工 ID 查询其薪资信息。

  • 修改员工薪资:根据员工 ID 修改其薪资信息。

  • 删除员工信息:根据员工 ID 删除其薪资信息。

  • 显示所有员工信息:显示当前所有员工的薪资信息。


三,功能实现

  • 添加员工信息
void addemployee() {
    if (current_employee_count >= MAX_EMPLOYEES) {
        printf("员工数量已达上限!\n");
        return;
    }
    Employee new_employee;
    printf("请输入员工工号:");
    scanf("%d", &new_employee.id);
    printf("请输入员工姓名:");
    scanf("%s", new_employee.name);
    printf("请输入员工基本工资:");
    scanf("%f", &new_employee.base_salary);
    printf("请输入员工奖金:");
    scanf("%f", &new_employee.bonus);
    new_employee.total_salary = new_employee.base_salary + new_employee.bonus;

    employees[current_employee_count] = new_employee;
    current_employee_count++;

    printf("员工信息已成功录入!\n");
    savetofile();  // 保存数据到文件
}
  • 查询员工薪资
void searchsalary() {
    int search_id;
    char search_name[50];
    int search_option;
    printf("1. 通过工号查询\n2. 通过姓名查询\n请选择查询方式:");
    scanf("%d", &search_option);

    int found = 0;
    if (search_option == 1) {
        printf("请输入员工工号:");
        scanf("%d", &search_id);
        for (int i = 0; i < current_employee_count; i++) {
            if (employees[i].id == search_id) {
                printf("姓名:%s, 基本工资:%f, 奖金:%f, 总薪资:%f\n",
                    employees[i].name, employees[i].base_salary, employees[i].bonus, employees[i].total_salary);
                found = 1;
                break;
            }
        }
    } else if (search_option == 2) {
        printf("请输入员工姓名:");
        scanf("%s", search_name);
        for (int i = 0; i < current_employee_count; i++) {
            if (strcmp(employees[i].name, search_name) == 0) {
                printf("工号:%d, 基本工资:%f, 奖金:%f, 总薪资:%f\n",
                    employees[i].id, employees[i].base_salary, employees[i].bonus, employees[i].total_salary);
                found = 1;
                break;
            }
        }
    }

    if (!found) {
        printf("未找到相关员工信息。\n");
    }
}
  • 修改员工薪资
void modifysalary() {
    int modify_id;
    printf("请输入需要修改的员工工号:");
    scanf("%d", &modify_id);
    int found = 0;
    for (int i = 0; i < current_employee_count; i++) {
        if (employees[i].id == modify_id) {
            printf("当前工资:%f, 当前奖金:%f\n", employees[i].base_salary, employees[i].bonus);
            printf("请输入新的基本工资:");
            scanf("%f", &employees[i].base_salary);
            printf("请输入新的奖金:");
            scanf("%f", &employees[i].bonus);
            employees[i].total_salary = employees[i].base_salary + employees[i].bonus;
            printf("修改成功!\n");
            savetofile();  // 保存数据到文件
            found = 1;
            break;
        }
    }
    if (!found) {
        printf("未找到该工号的员工。\n");
    }
}
  • 删除员工信息
void deleteemployee() {
    int delete_id;
    printf("请输入需要删除的员工工号:");
    scanf("%d", &delete_id);
    int found = 0;
    for (int i = 0; i < current_employee_count; i++) {
        if (employees[i].id == delete_id) {
            for (int j = i; j < current_employee_count - 1; j++) {
                employees[j] = employees[j+1];
            }
            current_employee_count--;
            printf("删除成功!\n");
            savetofile();  // 保存数据到文件
            found = 1;
            break;
        }
    }
    if (!found) {
        printf("未找到该工号的员工。\n");
    }
}

  • 显示所有员工信息
void displayall() {
    printf("工号\t姓名\t基本工资\t奖金\t总薪资\n");
    printf("---------------------------------------------------\n");
    for (int i = 0; i < current_employee_count; i++) {
        printf("%d\t%s\t%f\t%f\t%f\n",
            employees[i].id, employees[i].name, employees[i].base_salary, employees[i].bonus, employees[i].total_salary);
    }
}

四,效果图

后续截图添加。


五,源码

代码已开源,可访问gitee下载。


六,总结

本项目为初学者提供了一个实际的 C 语言编程实践,涉及文件操作、数据结构设计和命令行交互界面的基本应用。希望此项目能对学习者有所帮助,并鼓励在此基础上进行更多的拓展和改进。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值