数据结构工资管理系统课程设计报告
- 格式:doc
- 大小:163.00 KB
- 文档页数:19
. ... .. word ..《数据结构》课程设计报告题目: 人事工资管理系统 专业: 数字媒体技术 班级: 姓名: 指导教师: 成绩:学年 第 学期.word 专业资料计算机与信息工程系年月日1、设计目的 (2)2、设计容与要求 (2)1.1设计容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)1、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规化和自动化,为企业提高工作效率。
2、设计容与要求2.1设计容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
10.2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计word 专业资料4、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
104、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业: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. 员工信息的存储员工信息可以使用链表或数组来存储,链表适用于频繁插入和删除操作,数组适用于频繁查询操作。
《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院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. 工资卡管理信息的增加、修改、删除和查询;4. 员工月度工资的计算和打印;5. 薪酬报表的生成和导出。
本系统具有员工信息管理、工资管理、工资计算等功能,系统所能处理的数据类型包括基本信息、工资信息、工资卡管理信息等。
三、系统设计系统采用的开发语言为Java,采用MySQL作为数据库,Eclipse作为开发环境,JSP作为前端技术。
系统设计分为后台管理系统和前端用户系统两部分。
后台管理系统由管理员管理,可以进行员工、工资、工资卡管理等操作。
前端用户系统供普通教师使用,可以查询自己的工资信息,查看工资单等,还可以对自己的工资卡进行管理操作。
系统的整个流程图如下所示:系统的主要模块包括:1. 用户登录模块:实现用户的登录和注销功能;2. 用户管理模块:实现用户的添加、删除、查找、修改等操作;3. 工资管理模块:实现工资的基本信息管理、模板设计、工资计算等操作;4. 工资卡管理模块:实现工资卡管理和工资卡输入功能;5. 工资报表管理模块:实现工资报表的生成和导出。
四、数据库设计系统采用MySQL数据库进行数据存储,数据库的设计主要包括以下几个方面:1. 用户表:保存系统所有的用户信息,包括用户ID、用户名和密码等;2. 员工信息表:保存教师基本信息,包括员工姓名、性别、身份证号、工龄、部门等;3. 工资信息表:保存教师的工资信息,包括工资开始时间、工资结束时间、基本工资、扣款、社保等;4. 工资卡信息表:保存工资卡信息,包括银行卡号、开户行、余额等;5. 工资报表表:保存工资报表信息,包括报表开始时间、报表结束时间、报表内容等。
数据库课程设计报告_工资管理系统一、引言工资管理是每个企业必不可少的一个管理方面,它不仅关系到企业的资金管理,同时也关系到员工的收入与福利。
在当前信息技术不断发展的时代,各种软件系统的应用已经成为了一个企业发展的标配。
因此,我们设计了一款简单实用的工资管理系统。
二、系统的设计思路1. 系统需求分析针对使用系统人员(管理员、普通员工)的需求,我们在系统中加入了以下功能:* 员工信息的录入与修改* 员工工资信息的录入与修改* 工资发放管理* 查看历史工资记录结合上述功能点,我们为系统制定了几条关键需求:* 数据库必须可保证一致性,员工工资信息需在工资发放管理时及时更新* 管理员可查看工资信息,但无权修改工资明细* 操作流程应严谨,避免用户误操作2. 数据库表设计为了实现系统的功能,我们设计了以下表:* employee(员工信息表)* salary(员工工资明细表)* salary_record(工资记录表)employee表主要包括员工的基本信息,包括员工编号、姓名、性别、部门、岗位等。
salary表主要记录员工的工资明细信息,包括年度、月份、基本工资、绩效工资、奖金等。
salary_record表主要记录工资的发放记录,包括年度、月份、发放日期等。
3. 系统架构设计本系统采用了B/S架构,由前端页面和后台服务端组成。
前端页面采用了HTML、CSS、JavaScript等技术进行开发,后台服务端则采用了Java语言并使用了Spring框架。
4. 功能设计系统主要功能有如下几点:* 员工信息管理:管理员可对员工信息进行添加、修改、删除操作。
* 工资信息管理:管理员可对员工工资信息进行添加、修改、删除操作。
* 工资发放管理:管理员可对员工工资信息进行发放操作。
* 工资查询:工资发放后,员工和管理员可以查询员工工资记录。
三、实现技术细节1. 连接池为了防止每次创建一个新的连接造成过度资源的占用,在系统中使用了连接池技术。
沈阳理工大学应用技术学院《数据结构与算法》综合实验报告课程名称:《数据结构与算法》综合实验专业:计算机科学与技术班级学号:11321116姓名:王娇指导教师:孙承福成绩:完成日期:2012 年月日一、实验题目薪水管理系统二、实验时间地时间:2012/6/10地点:506ATA机室三、实验目的1. 理解线性表的定义、线性表的顺序存储结谈判链式存储结构。
2. 理解线性表的逻辑结构特征3. 深入掌握线性表的两种存储方法,即顺序表和链式表。
体会这两种存储结构之间的差异。
4. 重点掌握线性表和链表上各种基本运算的实现。
5. 综合运用线性表解决一些复杂的实际问题。
四、实验内容(一)、效用关系介绍1添加效用,通过它可以添加新的员工信息,非常方便,输入1即可进入添加页面,添加完以后,输入4保存。
2查询效用,通过它可以查询是否有这个员工,他可以通过两种方式进行查询,一是id号查询,二是姓名查询。
3删除效用,通过它可以删除离开的员工,它也可以通过两种方式进行删除,一是通过id 删除,二是通过姓名删除。
6修改效用,通过它可以修改员工信息,譬如电话,薪水等,可输入id号进行修改,修改完以后返回主页面输入4进行保存。
5插入效用,与添加效用有区别,它可选择性的插入,随意插,他也是添加新的员工,非常方便,返回主页面,输入4保存。
4保存效用,它可保存添加,插入和修改的员工信息。
7显示效用,通过它可以显示所有员工的详细信息。
0返回效用,通过它可返回主页面,进行其他操作。
(二)、采用数据结构该员工薪水管理系统采用了单链表的建立,输入,插入,查找,删除,输出等效用(三)、语言工具C语言编程五、预习内容(一)、单链表分线性单链表和静态的单链表。
线性单链表是用一组不连续的存储单元来存放线性表中的数据,因此链表中结点的逻辑次序和物理次序不一定相同。
为了正确的表示结点间的逻辑关系,在存储线、性表时,存储每个数据元素值的同时,还要存储指示其后继结点的地址信息,这两部分信息组成的存储映像称为结点。
数据库原理及应用课程设计《工资管理系统》学生姓名: ++++++学生班级: ++++++学生学号: ++++++指导老师: +++++++目录一、开发背景 (2)二、功能描述 (3)三、数据流分析 (4)3.1数据流图 (4)3.2数据字典 (5)3.2.1 数据项的描述 (5)3.2.2 数据结构描述 (6)3.2.3 数据流的描述 (6)3.2.4 主要数据存储的定义 (6)3.2.5 处理过程的定义 (6)四、概念模型设计 (7)五、逻辑结构设计和优化 (12)5.1关系模型设计 (12)5.2数据库表结构设计 (13)六、物理设计与实施 (14)6.1 数据库的物理设计 (14)6.1.1存储结构设计 (14)6.1.2存储方法设计 (15)6.2 数据库的实施 (15)6.2.1 数据库的建立 (15)6.2.2 表对象的建立 (15)6.2.3 索引 (18)6.2.4 视图 (18)6.2.5 备份 (19)七、心得体会 (19)八、参考文献 (20)一、开发背景随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。
在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。
如何设计一个小型企业工资的数据库管理系统,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。
这样就使办公人员可以轻松快捷地完成工资管理的任务。
对于企、事业单位的工资发放来说,不需要太大型的数据库系统。
只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。
实现工资的集中管理。
可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对员工及工资管理情况进行多角度查询。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
. ..a《数据结构》课程设计报告题目: 人事工资管理系统 专业: 数字媒体技术 班级: 姓名: 指导教师: 成绩:学年 第 学期.word 专业资料计算机与信息工程系年月日1、设计目的 (2)2、设计容与要求 (2)1.1设计容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)1、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规化和自动化,为企业提高工作效率。
2、设计容与要求2.1设计容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
2.2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计word 专业资料4、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
44、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
5、查找:输入职工的职工号或姓名,并在文件中查找。
若找到,则显示该职工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
word 专业资料6、删除:输入职工的职工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该职工信息;若选择否,则取消。
若未找到则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
7、修改:输入职工的职工号在文件中查找。
若找到,显示该职工的所有信息,否则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
68、统计:分类汇总并输出所有职工的总工资,并计算出平均工资。
9、退出:退出程序。
word 专业资料5、程序调试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。
程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。
要正确利用编辑时提示的错误信息。
调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。
2、忘记“;”或把“;”用错误的输入法输入,造成的错误。
3、大括号混乱造成错误。
4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出容不符合,通过仔细核对书上的格式才改掉。
5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。
6、设计小结通过这几天的努力,职工工资管理系统的设计已基本完成。
在本次课程设计中,8.我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。
职工工资管理系统是一个很实用并且使用广泛的操作系统。
此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间,查找出所需的职工工资资料,提高工作效率。
该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。
每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。
在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。
对以前课本中学到的知识有了更深刻的理解,和灵活的运用。
不再像以前一样,知识浅显的明白,死板的套用。
编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。
最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。
通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。
这会对以后的学习有所帮助。
7、参考文献[1]谭浩强. 《C程序设计》(第三版)北京:清华大学出版社2006.3.word 专业资料[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");}。