当前位置: 首页 > news >正文

【项目开发 | 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 语言编程实践,涉及文件操作、数据结构设计和命令行交互界面的基本应用。希望此项目能对学习者有所帮助,并鼓励在此基础上进行更多的拓展和改进。

http://www.lryc.cn/news/182021.html

相关文章:

  • Android---GC回收机制与分代回收策略
  • 前缀、中缀、后缀表达式相互转换工具
  • Vue之ElementUI之动态树+数据表格+分页(项目功能)
  • 【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗
  • 编译和链接
  • 常识判断 --- 科技常识
  • 修改npm全局安装的插件(下载目录指向)
  • <C++> 异常
  • 聊聊HttpClientBuilder
  • MacOS - Sonoma更新了啥
  • C++17中头文件filesystem的使用
  • 「专题速递」数字人直播带货、传统行业数字化升级、远程协作中的低延时视频、地产物业中的通讯终端...
  • PE格式之PE头部
  • SLAM从入门到精通(用python实现机器人运动控制)
  • 接口和抽象类有什么区别?
  • 基于springboot+vue的人事系统
  • 记住这份软件测试八股文还怕不能拿offer?你值得拥有
  • 2023年,在CSDN拥有10000粉丝有多难?
  • C++ -- 学习系列 关联式容器 set 与 map
  • Day 04 python学习笔记
  • Moonbeam Ignite强势回归
  • 【改造后序遍历算法】95. 不同的二叉搜索树 II
  • 栈的基本操作(数据结构)
  • D. Jellyfish and Mex Codeforces Round 901 (Div. 2)
  • 操作系统内存管理相关
  • Sui流动性质押黑客松获胜者公布,助力资产再流通
  • 为什么在使用PageHelper插件时,指定的每页记录数大小失效?显示所有的记录数
  • XML文档基础
  • 软考知识汇总-软件工程
  • 力扣:119. 杨辉三角 II(Python3)