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

相关文章:

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

本项目是一个简单的薪资管理系统&#xff0c;旨在为用户提供方便的员工薪资管理功能&#xff0c;如添加、查询、修改、删除员工薪资信息等。系统通过命令行交互界面与用户进行交互&#xff0c;并使用 txt 文件存储员工数据。 一&#xff0c;开发环境需求 操作系统&#xff1a;w…...

Android---GC回收机制与分代回收策略

目录 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾回收算法 JVM 分代回收策略 1. 新生代 2. 老年代 GC Log 分析 引用 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾就是内存中已经没有用的对象&#xff0c;JVM 中的垃圾回收器(Garbage Collector)会自…...

前缀、中缀、后缀表达式相互转换工具

目录 1. 界面一览 2. 使用说明 3. 实例演示 3.1 输入中缀 3.2 输入前缀 3.3 输入后缀 3.4 选择错误的类型 4. 代码 5. 资源地址 关于什么是前缀、中缀、后缀表达式&#xff0c;相信你不知道这个东西&#xff0c;那你也不会点进来这篇博客&#xff0c;当然&#xff0c;…...

Vue之ElementUI之动态树+数据表格+分页(项目功能)

目录 前言 一、实现动态树形菜单 1. 配置相应路径 2. 创建组件 3. 配置组件与路由的关系 index.js 4. 编写动态树形菜单 5. 页面效果演示 二、实现数据表格绑定及分页功能 1. 配置相应路径 2. 编写数据表格显示及分页功能代码 BookList.vue 3. 演示效果 总结 前言…...

【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗

找到配置文件目录,遍历下面的每个配置文件; 找到 Variables 下的TRUSTEDPATHS项目;在后面添加新的目录即可,多个目录使用分号分隔; public static void AddPath(string trusedPath){// 指定注册表键的路径...

编译和链接

编译和链接 一&#xff1a;&#xff1f;&#xff1f;&#xff1f;二&#xff1a;翻译环境1&#xff1a;编译1&#xff1a;预处理2&#xff1a;编译 2&#xff1a;链接 三&#xff1a;运行环境&#xff1a; 本文章所使用的图片均来在yyds鹏哥一&#xff1a;&#xff1f;&#xf…...

常识判断 --- 科技常识

目录 力与热 光和声 航空成就 垃圾分类 百科知识 血型 二十四节气歌 春雨惊春清谷天 夏满忙夏暑相连 秋处露秋寒霜降 冬雪雪冬小大寒 力与热 光和声 航空成就 垃圾分类 百科知识 血型...

修改npm全局安装的插件(下载目录指向)

我们先打开终端 然后执行 npm config get prefix查看npm 的下载地址 一般都会在C盘 但是 我们都知道 C盘下东西多了是很不好的 所以 我们可以执行 npm config set prefix “E:\npmfile”将 npm 的下载地址 改变成 E盘下的 npmfile目录 这样 以后 默认全局安装的插件就会都到…...

<C++> 异常

C语言传统的处理错误的方式 传统的错误处理机制&#xff1a; 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。返回错误码&#xff0c;缺陷&#xff1a;需要程序员自己去查找对应的错误。如系统的…...

聊聊HttpClientBuilder

序 本文主要研究一下HttpClientBuilder HttpClientBuilder httpclient-4.5.10-sources.jar!/org/apache/http/impl/client/HttpClientBuilder.java public class HttpClientBuilder {public static HttpClientBuilder create() {return new HttpClientBuilder();}protected…...

MacOS - Sonoma更新了啥

1 系统介绍 苹果公司于2023年9月26日发布了macOS Sonoma 14.0正式版。名称由来不知道&#xff0c;可能是地名&#xff1a;Sonoma是一个地名,指加利福尼亚州北部索诺玛县(Sonoma County)。 2 系统重要更新 2.1 将小组件添加到桌面 速览提醒事项和临近日程等。按住Control键点…...

C++17中头文件filesystem的使用

C17引入了std::filesystem库(文件系统库, filesystem library)&#xff0c;相关类及函数的声明在头文件filesystem中&#xff0c;命名空间为std::filesystem。 1.path类&#xff1a;文件路径相关操作&#xff0c;如指定的路径是否存在等&#xff0c;其介绍参见&#xff1a;http…...

「专题速递」数字人直播带货、传统行业数字化升级、远程协作中的低延时视频、地产物业中的通讯终端...

音视频技术作为企业数字化转型的核心要素之一&#xff0c;已在各行各业展现出广泛的应用和卓越的价值。实时通信、社交互动、高清视频等技术不仅令传统行业焕发新生&#xff0c;还为其在生产、管理、服务提供与维护等各个领域带来了巨大的助力&#xff0c;实现了生产效率和服务…...

PE格式之PE头部

1. PE头部总体组成 2. DOS MZ头 3. PE头 PE头由3部分组成: 下面分别: OptionalHeader比较大: 然后是节表, 节表有多个: PE文件头部就结束了, 最后就是节区了, 来看几段代码: ; main.asm .586 .model flat, stdcall option casemap:noneinclude windows.inc include ke…...

SLAM从入门到精通(用python实现机器人运动控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在ROS下面&#xff0c;开发的方法很多&#xff0c;可以是c&#xff0c;可以是python。大部分接口操作类的应用&#xff0c;其实都可以用python来开…...

接口和抽象类有什么区别?

接口和抽象类都是用于实现抽象类型的机制: 抽象类:抽象类可以包含抽象方法(未实现的方法)和具体方法(已实现的方法)。抽象类可以有字段(成员变量),这些字段可以是具体的,也可以是抽象的。一个类只能继承一个抽象类,Java不支持多继承。抽象类可以拥有构造方法,用于初…...

基于springboot+vue的人事系统

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 考勤信息管理 考勤信息管理 下班记录管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为学校以及一些培训机构&#xff0c;都在用信息…...

记住这份软件测试八股文还怕不能拿offer?你值得拥有

前言 2023秋招即将来临&#xff0c;很多同学会问软件测试面试八股文有必要背吗&#xff1f; 我的回答是&#xff1a;很有必要。你可以讨厌这种模式&#xff0c;但你一定要去背&#xff0c;因为不背你就进不了大厂。 国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试…...

2023年,在CSDN拥有10000粉丝有多难?

该数据来源于粉丝数人数排行前5000名用户的关注用户列表中产生的&#xff0c;由于采集样本数有限&#xff0c;数据可能具有一定的误差&#xff0c;仅供参考&#xff0c;本次采样用户数大概在100万以上。 筛选条件人数粉丝人数大于50007519粉丝人数大于100003763粉丝人数大于500…...

C++ -- 学习系列 关联式容器 set 与 map

一 关联式容器是什么&#xff1f; c 中有两种容器类型&#xff1a;关联式容器与序列式容器&#xff08;顺序容器&#xff09; 关联式中的容器是按照关键字来存储与访问的&#xff0c;序列式容器&#xff08;顺序容器&#xff09;则是元素在容器中的相对位置来存储与访问的。…...

NotebookLM智能体插件:AI驱动的自动化知识处理与任务执行

1. 项目概述&#xff1a;当NotebookLM遇上智能体&#xff0c;知识处理的范式革命最近在AI圈子里&#xff0c;一个名为“notebooklm-agent-plugin”的项目引起了我的注意。乍一看&#xff0c;这个名字结合了Google的NotebookLM和当下火热的“智能体”&#xff08;Agent&#xff…...

2026年国内GEO优化服务商盘点:6家主流选择的实际情况

说明&#xff1a; 本文盘点基于各服务商官网、公开媒体报道、可查询的工商信息整理&#xff0c;所有"案例数据"均来自服务商自我披露。GEO行业整体处于早期阶段&#xff0c;市场上自我标榜"行业第一""全球最强"的说法普遍存在&#xff0c;本文尽…...

水凝膜、钢化膜、护景贴大对决:一张表看懂该买谁

水凝膜、钢化膜、护景贴大对决&#xff1a;一张表看懂该买谁手机屏幕保护膜主要有三种&#xff1a;水凝膜、普通钢化膜和护景贴&#xff08;悟赫德为代表&#xff09;。很多人不知道它们到底有什么区别&#xff0c;我们从六个维度给你讲清楚。材料结构。水凝膜是单层软塑料&…...

xpull:轻量级声明式文件同步工具的设计原理与K8s实战

1. 项目概述&#xff1a;一个轻量级、高可用的文件同步利器在分布式系统、微服务架构乃至日常的自动化运维中&#xff0c;文件同步是一个看似基础却至关重要的环节。无论是将日志文件从边缘服务器拉取到中心进行分析&#xff0c;还是将配置文件从版本库分发到成百上千个实例&am…...

广东公考机构全景测评:粉笔凭极致性价比与本土教研实力领跑

随着2026年广东省考备考热潮的持续升温&#xff0c;选择一家靠谱的培训机构成为广大考生关注的焦点。在广东这片公考竞争激烈的热土上&#xff0c;除了粉笔、华图和中公三大巨头&#xff0c;以笨鸟教育、及第林教育为代表的本土精品机构也凭借极强的地域针对性异军突起。本次测…...

企业出海聘用海外员工该怎么挑选靠谱名义雇主服务商?

很多企业出海初期&#xff0c;都会卡在海外员工聘用这一步&#xff1a;没有海外实体&#xff0c;没法合法签合同、缴社保&#xff0c;想找名义雇主服务商&#xff0c;又怕选到不靠谱的&#xff0c;踩坑又不合规。结合我这几年帮出海企业对接服务商的经验&#xff0c;今天不玩虚…...

架构设计实战指南:在约束中做取舍的工程智慧

架构设计实战指南&#xff1a;在约束中做取舍的工程智慧 版本&#xff1a;V1.0 适合人群&#xff1a;开发工程师、架构师、技术负责人、CTO、技术出身的创业者写在前面&#xff1a;你是不是也遇到过这些问题&#xff1f; 如果你是开发工程师&#xff1a; 刚写完的代码&#xff…...

ChatGPT购物功能支持平台速查表,含响应延迟、支付闭环率、商品图识别准确率等5项硬指标实测数据

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT购物功能支持哪些平台 截至2024年&#xff0c;ChatGPT原生并不直接集成电商交易能力&#xff0c;但通过官方插件&#xff08;Plugins&#xff09;和第三方API集成&#xff0c;可在特定授权环境…...

零中频接收机技术演进与动态范围优化方案

1. 零中频接收机技术演进与核心挑战零中频架构&#xff08;Zero-IF&#xff09;在移动通信领域已发展超过二十年&#xff0c;最早可追溯至1990年代的GSM手机设计。这种直接将射频信号下变频至基带的技术&#xff0c;相比传统超外差架构省去了中频处理环节&#xff0c;理论上具有…...

如何用录播姬完美解决mikufans直播录制难题:终极指南

如何用录播姬完美解决mikufans直播录制难题&#xff1a;终极指南 【免费下载链接】BililiveRecorder 录播姬 | mikufans 生放送录制 项目地址: https://gitcode.com/gh_mirrors/bi/BililiveRecorder 录播姬是一款专为mikufans直播设计的开源录制工具&#xff0c;让普通用…...