数据结构工资管理系统课程设计
工资管理系统(课程设计)

工资管理系统(课程设计)工资管理系统(课程设计) 课程设计报告课程设计名称:数据库原理与应用系部:二系学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012 学年1 学期一.设计题目:工资管理系统系统功能的基本要求:Ø 员工各种信息的输入及维护。
Ø 员工每个工种基本工资的设定。
Ø 加班津贴管理,根据加班时间和类型给予不同的加班津贴;Ø 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;Ø 员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/6;Ø 能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计。
二.主要内容:主要包括需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库施及程序编制三.具体要求 1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观;2. 后台数据库采用MS SQL SERVER2005,前台界面语言不限,编写的程序代码,须有较详细的注释说明;四.进度安排课程设计安排:16周星期一讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目;星期二需求分析:给出系统的功能需求、性能需求,并绘制DFD和DD;星期三概念结构设计:绘制实体属性图(可选),局部ER图和全局ER图;星期四逻辑结构设计:转换、优化、外模式的设计;星期五物理结构设计及数据库实施;17周星期一应用程序编制调试、整理课程设计报告,并检查;星期二根据反馈结果修改课程设计;星期三提交作业上交的材料:课程设计的电子稿、打印稿、源码(SQL代码和程序代码)五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。
考核内容:学习态度(出勤情况,平时表现等)、方案合理性、各阶段的图表与程序编制质量、设计报告质量。
成绩评定:优,良,中,及格,不及格。
特别说明:(1)如发现抄袭,按照不及格处理。
工资管理系统(C# 数据库课程设计

数据库课程设计设计题目:工资管理系统班级: BX0901学号:姓名:目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八参考文献 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。
提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识.基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。
基本上能满足管理员和公司的要求。
此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计.需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。
主要包括三大功能模块:1.进入界面设计。
2.员工管理界面设计。
二、 需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、部门领导信息查询、工资奖金信息查询)、工资管理(基本工资及津贴奖金设定、计算总工资、津贴管理、加班工资管理);通过输入密码,可以进行查询员工的数据(工资,奖金津贴,加班情况)。
具体功能的详细描述如下1.用户名和密码即可进入[工资管理]功能窗体,在其中输入员工的相关信息, 按[查询]就可查找信息。
2.点击[工资查询界面]功能窗体,输入员工号即可查询员工工资信息。
3.点击[津贴查询界面]功能窗体,输入员工号即可查询员工津贴信息. 4.点击[添加员工]功能窗体,输入员工号,点击快速添加即可添加员工。
5.点击[删除员工]功能窗体,输入员工号,即可删除员工。
数据流需求分析:寻找信息 数据库需求分析-—数据流图三、概要设计根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询)、还可以进行员工删除和添加员工的操作,员工通过登录并输入密码,可以进行查询自己的数据(工资,津贴)。
数据结构课程设计工资管理系统

海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业:09 通信工程姓名:学号:指导老师:吴泽晖二零一一年十二月目录一、设计目的 (4)二、功能描述 (4)三、总体设计 (6)3.1功能模块设计 (6)1.主控函数执行流程 (7)2.输入记录模块 (8)3.查询记录模块 (8)4.更新记录模块 (9)1)修改记录 (9)2)删除记录 (9)3)插入记录 (9)4)排序记录 (10)5.统计记录模块 (11)6.输出记录模块 (12)3.2数据结构设计 (12)3.3函数功能描述 (13)四、程序实现 (15)1.程序预处理 (15)2.主函数main() (17)3.主菜单界面 (18)4.表格形式显示记录 (18)5.记录查找定位 (19)6.格式化输入数据 (20)7.增加记录 (21)8.查询记录 (22)9.删除记录 (23)10.修改记录 (25)11.插入记录 (26)12.统计记录 (28)13.排序记录 (29)14.存储记录 (31)5.运行结果1.主界面 (31)2.输入记录 (32)3.显示记录 (33)4.删除记录 (34)5.查询记录 (35)6.修改记录 (36)7.插入记录 (36)8.统计记录 (37)9.排序记录 (37)10.保存记录 (38)六.心得体会 (39)七.参考文献 (39)一、设计目的本程序旨在训练基本的编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的知识。
通过本程序的训练,使我对C 语言的文件操作有了一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理管理系统打下坚实的基础。
二、功能描述如后图所示,与利用单链表实现的学生管理系统不同的是,此工资管理系统主要利用数组来实现,其数组元素是结构体类型。
整个系统由如下几大功能模块组成。
数据结构工资管理系统课程设计

数据结构工资管理系统课程设计一、引言工资管理是每个企业都必须面对的重要问题,它涉及到员工的薪资核算、社保福利、考勤管理等多个方面。
为了提高工资管理的效率和准确性,我们设计了一个数据结构工资管理系统。
本文将详细介绍该系统的设计原理、功能模块以及数据结构的选择和实现。
二、系统设计原理1. 系统目标该系统的目标是实现自动化的工资管理,包括员工信息的录入、薪资核算、社保福利的管理、考勤记录的统计以及报表的生成等功能。
通过该系统,企业能够提高工资管理的效率和准确性,减少人力资源的投入。
2. 系统架构该系统采用客户端-服务器架构,客户端提供了用户界面,服务器负责处理业务逻辑和数据存储。
客户端和服务器之间通过网络进行通信,实现数据的传输和交互。
3. 数据库设计系统的数据库采用关系型数据库,用于存储员工信息、薪资数据、社保福利数据和考勤记录等。
数据库的设计包括表的定义、字段的设置以及索引的建立,以提高数据的查询效率。
三、功能模块设计1. 员工信息管理模块该模块用于录入和管理员工的基本信息,包括姓名、性别、年龄、职位、部门等。
管理员可以通过该模块添加、修改和删除员工信息。
2. 薪资核算模块该模块用于计算员工的薪资,根据员工的职位、工作时长、绩效评估等因素进行计算。
系统会自动生成薪资单,并将薪资信息存储到数据库中。
3. 社保福利管理模块该模块用于管理员工的社保和福利信息,包括社保缴纳情况、福利待遇等。
管理员可以通过该模块录入和修改员工的社保福利信息。
4. 考勤记录模块该模块用于记录员工的考勤情况,包括上班打卡时间、下班打卡时间等。
系统会自动计算员工的工作时长,并将考勤记录存储到数据库中。
5. 报表生成模块该模块用于生成各种报表,包括薪资报表、社保福利报表、考勤统计报表等。
管理员可以根据需要选择不同的报表进行生成和导出。
四、数据结构选择和实现1. 员工信息的存储员工信息可以使用链表或数组来存储,链表适用于频繁插入和删除操作,数组适用于频繁查询操作。
工资管理系统数据库课程设计源码

一、课程设计主题介绍本次课程设计的主题为工资管理系统数据库,旨在通过设计一个完善的工资管理系统数据库,实现对公司员工工资信息的管理和查询功能。
工资管理系统是企业日常管理中不可或缺的一部分,良好的工资管理系统能够有效提高企业的管理效率和员工的工作积极性,具有重要的实际意义。
二、系统需求分析1. 用户需求:系统应具有权限管理、员工信息管理、薪资发放管理等功能,不同用户拥有不同的操作权限。
2. 数据需求:系统需要存储员工基本信息、薪资信息、考勤信息等数据。
3. 界面需求:系统应具有友好的操作界面,用户操作简单方便。
4. 安全需求:系统要保证数据的安全性,防止未授权人员获取敏感信息。
三、系统设计思路1. 数据库设计:设计员工表、薪资表、权限表等数据库表结构,确保数据存储的规范性和完整性。
2. 功能设计:设计权限管理模块、员工信息管理模块、薪资发放管理模块等系统功能。
3. 界面设计:设计简洁清晰的操作界面,使用户能够轻松上手。
4. 安全设计:采用加密算法保护用户信息,设置严格的权限控制,防止数据泄露和篡改。
四、系统技术选型本系统选用MySQL数据库存储数据,采用Python语言进行后台逻辑开发,使用Django框架进行Web应用开发,前端界面采用HTML、CSS和JavaScript技术实现。
五、系统功能实现1. 权限管理:管理员用户可以设置不同用户的权限,包括查看员工信息、修改薪资、导出报表等操作。
2. 员工信息管理:实现员工信息的增加、修改、删除、查询等功能,包括基本信息、通联方式、部门信息等。
3. 薪资发放管理:实现对员工薪资的发放、调整、查询等功能,包括工资条生成、导出等。
4. 数据统计报表:系统可以生成各类工资统计报表,包括月度工资报表、年度工资报表等。
六、系统调试和测试在系统开发完成后,对系统进行全面的功能测试和性能测试,确保系统稳定可靠、业务流程正常、响应速度合理等。
七、系统部署和运行系统部署到服务器上,对外提供访问服务,确保系统在日常运行中稳定运行。
工资管理系统-课程设计报告报告

《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院2017年12月8日目录一、工资管理系统数据库设计 (1)1、项目背景介绍 (1)1.1 数据需求分析及数据字典 (1)1.2 概念结构设计 (2)1.3 逻辑结构设计 (3)1.4 数据库物理设计 (5)二、工资管理系统数据库实施步骤 (5)1、项目实践 (5)1.1 数据库的创建 (5)1.2 表对象的创建 (6)1.3 索引对象的创建 (13)1.4 视图对象的创建 (14)1.5 登录用户的创建 (15)三、工资管理系统数据库管理 (16)1、案例实践 (16)1.1 案例试验数据 (16)1.2 表数据的编辑 (17)1.3 表数据的简单查询 (21)1.4 表数据的联接查询 (18)四、项目总结 (22)五、参考文献 (23)一、工资管理系统数据库设计1、项目介绍工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。
工资管理系统的主要功能有:(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;(2)、计算个人的实际发放工资;(3)、按科室、职业分类统计人数和工资金额;(4)、实现员工个人信息和工资的分类查询;(5)、能够删除辞职人员的数据;工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况;工资项目:影响工资计算的各种因素,如:基本工资,福利补贴和奖励工资,扣除的事业保险和住房公积金等等。
用户登录管理:2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。
数据结构工资管理系统课程设计

数据结构工资管理系统课程设计随着信息技术的不断发展,数据结构作为计算机科学的基础课程之一,在实际应用中扮演着重要的角色。
本文将探讨数据结构在工资管理系统课程设计中的应用。
一、引言工资管理是企业管理中的重要组成部分,对于企业的正常运营和员工的积极性激励起着至关重要的作用。
设计一个高效可靠的工资管理系统,不仅能提高工资计算的准确性和效率,还能为企业提供决策支持。
数据结构作为一种组织和存储数据的方式,能够帮助我们解决工资管理系统中的各种问题。
二、需求分析在开始设计工资管理系统之前,我们需要进行需求分析,明确系统的功能和特点。
工资管理系统需要实现以下功能:1. 员工信息管理:包括员工的基本信息、薪资等级、考勤记录等。
2. 工资计算:根据员工的考勤记录和薪资等级,自动计算出员工的工资。
3. 工资查询:员工和管理员可以根据不同的条件查询工资信息。
4. 统计报表:生成各种统计报表,如员工工资分布、部门工资统计等。
三、数据结构设计在工资管理系统中,我们需要使用不同的数据结构来存储和组织数据。
以下是几种常用的数据结构及其应用:1. 数组:用于存储员工的基本信息和薪资等级。
2. 链表:用于存储员工的考勤记录,每个节点表示一天的考勤情况。
3. 栈:用于计算员工的工资,通过将考勤记录和薪资等级进行计算。
4. 队列:用于生成统计报表,按照不同的条件将员工工资进行分类和排序。
四、算法设计在工资管理系统中,我们需要设计一些算法来实现系统的各种功能。
以下是几种常用的算法及其应用:1. 遍历算法:用于遍历数组和链表,查找员工的信息和计算工资。
2. 排序算法:用于对员工的工资进行排序,生成统计报表。
3. 查找算法:用于根据不同的条件查询员工的工资信息。
五、系统实现在系统实现过程中,我们需要根据需求分析、数据结构设计和算法设计来编写代码。
在编写代码之前,我们需要进行系统的测试和调试,确保系统的稳定性和功能的正确性。
六、系统优化在系统实现完成后,我们可以对系统进行优化,提高系统的性能和用户体验。
工资管理系统数据库课程设计

工资管理系统数据库课程设计工资管理系统数据库课程设计一、背景介绍现代企业的工资管理已经越来越复杂,需要一个高效、准确的工资管理系统来进行支持。
工资管理系统需要能够自动计算员工工资,但更重要的是需要保护员工信息的安全性。
因此,该系统需要具备高可靠性和高安全性。
二、系统设计要求1. 系统框架设计系统框架应该采用分层架构模式,包括以下几个层次:①用户界面层:实现用户与系统的交互操作。
②业务逻辑层:实现系统的核心业务逻辑。
③数据访问层:实现系统的数据访问和管理。
④数据库层:用于存储系统所需的数据。
2. 数据库设计数据表结构设计如下:①员工表:用于存储员工基本信息,包括员工号、姓名、性别、出生日期、联系电话等字段。
②工资表:用于存储员工工资信息,包括员工号、月份、基本工资、津贴、扣款等字段。
③部门表:用于存储部门信息,包括部门号、部门名称、部门经理等字段。
④职位表:用于存储职位信息,包括职位编号、职位名称、职位描述等字段。
⑤权限表:用于存储用户权限信息,包括用户名、密码、用户类型等字段。
3. 系统功能设计根据需求分析,系统应该包含以下功能:①员工基本信息维护功能:用于添加、修改、删除员工基本信息。
②员工工资信息维护功能:用于添加、修改、删除员工工资信息。
③员工考勤记录查询功能:用于查询员工的考勤记录。
④部门信息维护功能:用于添加、修改、删除部门信息。
⑤职位信息维护功能:用于添加、修改、删除职位信息。
⑥权限管理功能:用于管理用户的权限信息。
三、技术方案1. 数据库管理系统本系统采用MySQL数据库管理系统,因为MySQL是一个成熟的开源数据库系统,能够提供高效、可靠的数据存储和管理服务。
2. 开发工具本系统采用Java语言进行开发,使用Eclipse作为开发工具,采用Java Web开发技术,采用MVC设计模式。
3. 数据库访问框架本系统采用ORM框架Hibernate来进行数据库的访问操作,通过Hibernate能够简化数据库访问操作,提高系统开发效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构工资管理系统课程设计学年第学期《数据结构》课程设计报告题目:人事工资管理系统专业:数字媒体技术班级:姓名:指导教师:成绩:计算机与信息工程系年月日1、设计目的 (2)2、设计内容与要求 (2)1.1设计内容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)用心整理的精品word文档,下载即可编辑!!1、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
2、设计内容与要求2.1设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计4、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
5、查找:输入职工的职工号或姓名,并在文件中查找。
若找到,则显示该职工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
6、删除:输入职工的职工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该职工信息;若选择否,则取消。
若未找到则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
7、修改:输入职工的职工号在文件中查找。
若找到,显示该职工的所有信息,否则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
89、退出:退出程序。
5、程序调试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。
程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。
要正确利用编辑时提示的错误信息。
调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。
2、忘记“;”或把“;”用错误的输入法输入,造成的错误。
3、大括号混乱造成错误。
4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出内容不符合,通过仔细核对书上的格式才改掉。
5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。
6、设计小结通过这几天的努力,职工工资管理系统的设计已基本完成。
在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。
职工工资管理系统是一个很实用并且使用广泛的操作系统。
此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。
该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。
每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。
在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。
对以前课本中学到的知识有了更深刻的理解,和灵活的运用。
不再像以前一样,知识浅显的明白,死板的套用。
编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。
最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。
通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。
这会对以后的学习有所帮助。
7、参考文献[1]谭浩强. 《C程序设计》(第三版)北京:清华大学出版社 2006.3.[2]王为青等.《C语言高级编程及实例剖析》北京:人民邮电出版社 2007.3.[3]黄明等.《C语言课程设计》北京:电子工业出版社 2006.3.附录〈源程序〉#include <stdio.h>#include <stdlib.h>#include <string.h>struct worker{char name[30];char ID[10];int salary1,salary2,salary3;};int dq(struct worker wo[]);void show();void bc(struct worker wo[]);void add();void see();void search();void ghcz();void xmcz();void del();void xmsc();void ghsc();void statistics();void modify();void ghxg();void xmxg();void reserve();void back();void author();struct worker wo[100]; //保存所有的职工信息int Number=0; //记录总的职工人数void main(){int choose=0;while(true){show();printf("\t\t====>请选择:");scanf("%d",&choose);system("cls");switch(choose){case 0: exit(0);//退出break;case 1: add();back();//添加职工信息break;case 2: see();back();//查看职工信息break;case 3: search();back();// 查找职工信息break;case 4: del();back();//删除职工信息break;case 5: statistics();back();//统计职工工资break;case 6: modify();back();//修改职工信息break;case 7:reserve();back();//保存数据break;case 8:author();back();//作者信息break;default:break;}fflush(stdin);getchar();system("cls");}}int dq(struct worker wo[]){FILE *fp=NULL;int i=0;fp=fopen("C://worker.dat","rb");while(fread(&wo[i],sizeof(struct worker),1,fp)) i++;fclose(fp);return i;}void show(){printf("\n");printf("\t****************职工工资管理系统****************\n\n"); printf("\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n"); printf("\t^^^^^^^^^^^^^^^[1] 添加职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[2] 查看职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[3] 查找职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[4] 删除职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[5] 统计职工工资^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[6] 修改职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[7] 保存数据^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[8] 作者信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^\n\n"); printf("\t*★★★★★★★★★★★★★★★★★★★★★★★*\n"); }void bc(struct worker *wo){FILE *fp=NULL;fp=fopen("C://worker.dat","ab+");fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);}//添加职工信息void add(){int numberTemp=0;int i=0;struct worker temp;printf("请输入要添加职工个数:");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i++){printf("输入第%d个职工信息\n",i+1);printf("姓名:");scanf("%s",);printf("工号:");scanf("%s",temp.ID);printf("基本工资:");scanf("%d",&temp.salary1);printf("职务工资:");scanf("%d",&temp.salary2);printf("津贴:");scanf("%d",&temp.salary3);wo[Number++]=temp; //写入到数组bc(&temp); //写入到文件}printf("添加成功\n");}//查看职工信息void see(){int i=0;printf("以下是全部职工\n");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");while(i<Number){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);i++;}}//查找职工信息void search(){int n=0;printf("1 按姓名查找\n");printf("2 按工号查找\n");scanf("%d",&n);switch(n){case 1: xmcz();break;case 2: ghcz();break;default: printf("输入错误!\n");break;}}void xmcz()//按姓名查找{char name[30];int i=0;printf("请输入要查找职工姓名:");scanf("%s",name);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);}}}void ghcz()//按工号查找{char id[10];int i=0;printf("请输入要查找职工工号:");scanf("%s",id);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);}}}//删除职工信息void del(){int n=0;printf("1 按姓名删除\n");printf("2 按工号删除\n");scanf("%d",&n);switch(n){case 1: xmsc();break;case 2: ghsc();break;}}void xmsc()//按姓名删除{FILE *fp=NULL;char name[30];int i=0;int j=0;printf("请输入要删除的职工姓名:");scanf("%s",name);for(i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}void ghsc()//按工号删除{FILE *fp=NULL;char id[60];int i=0;int j=0;printf("请输入要删除的职工工号:");scanf("%s",id);for(i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}//统计职工工资void statistics(){int i=0;double s=0.0;double sum[100];for(i=0;i<Number;i++){sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3; printf("%s的总工资为:%f\n",wo[i].name,sum[i]); }for(i=0;i<Number;i++){s+=sum[i];}printf("平均工资为:%f\n",s/Number);}//修改职工信息void modify(){int mode=0;printf("请选择修改查找方式\n");printf("1 按姓名查找修改\n");printf("2 按工号查找修改\n");scanf("%d",&mode);switch(mode){case 1: xmxg();break;case 2: ghxg();break;default: printf("输入错误!\n");break;}}void xmxg()//按姓名修改{FILE *fp=NULL;char name[30];int i=0;printf("请输入要修改的职工姓名:");scanf("%s",name);for (i=0;i<Number;i++){if (strcmp(name,wo[i].name));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);printf("请重新输入该职工信息");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);}void ghxg()//按工号修改{FILE *fp=NULL;char id[30];int i=0;printf("请输入要修改的职工工号:");scanf("%s",id);for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);printf("请重新输入该职工信息");printf("姓名:");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("\t=======>修改成功\n");}//保存数据void reserve(){printf("\t=====程序在运行时已自动保存.....\n");}void back(){printf("\t===>按Enter键返回主菜单\n");}//作者信息void author(){printf("\t***☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆***\n\n"); printf("\t^^^^^^^^^^^^^^^学校名称^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^学院班级^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^^XXX制作^^^^^^^^^^^^^\n\n"); printf("\t***★★★★★★★★★★★★★★★★***\n\n"); }。