数据结构工资管理系统课程设计
工资管理系统数据结构李建鹏
3、详细设计及实现
主要叙述自己承担部分的那些模块的算法和数据结构,并给出程序调试和测试情况。画出主要模块的算法流程图,配合运行界面抓图和文字说明进行描述。
【1】在此程序中运用到的算法有:排序算法,字符串的逐个比较算法,文件写入算法,类数组中成员数据的插入和删除等操作。
cout<<"|-------8.菜单-------|"<<endl;
cout<<"|-------9.写入-------|"<<endl;
cout<<"|-------0.退出-------|"<<endl;
cout<<"|--------------------|"<<endl;
}
//添加函数
void add(company *stu,int &a){
2)具体完成的设计内容,主要叙述自己完成了哪几个功能模块,每个模块的规模,自己是否有创新点并添加了哪些其他有用的功能,如果有,进行简要说明。
【1】开发一个小型工资管理系统,工资信息包括:员工编号,姓名,基本工资,岗位工资,奖励,应发工资,公积金,扣税,实发工资等。
系统功能说明如下:
(1)密码验证功能:主要实现登陆密码的验证工作。
for(i=0;i<a;i++){
for(j=i+1;j<a;j++){
if(stu[i].thp>stu[j].thp){
tmp=stu[i];
stu[i]=stu[j];
stu[j]=tmp;
工资管理系统课程设计
工资管理系统 课程设计一、课程目标知识目标:1. 理解工资管理系统的基本概念、功能及重要性;2. 掌握工资管理系统中的数据结构、算法及数据库操作;3. 学会分析企业工资管理的需求,设计合理的工资管理系统。
技能目标:1. 能够运用所学知识,独立完成工资管理系统的模块划分与功能设计;2. 能够运用数据库技术,实现工资数据的存储、查询、统计和输出;3. 能够运用编程语言,开发简单的工资管理系统,解决实际问题。
情感态度价值观目标:1. 培养学生对企业信息化管理的认识,提高对信息技术的兴趣和热情;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生具备良好的职业道德,关注企业员工薪酬权益,树立公平、公正的价值观。
课程性质:本课程为信息技术与学科实践相结合的课程,以实践操作为主,理论学习为辅。
学生特点:六年级学生具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,以任务驱动、案例教学为主,培养学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 工资管理系统的定义与作用- 工资管理系统的基本功能模块2. 数据库基础- 数据库的基本概念- 数据表的设计与创建- 数据的增、删、改、查操作3. 工资管理系统的设计与实现- 系统需求分析- 模块划分与功能设计- 数据库设计与实现- 系统界面设计4. 编程实现工资管理系统- 选择合适的编程语言(如Python、Java等)- 编程实现各功能模块- 调试与测试5. 案例分析与实操- 分析实际企业工资管理案例- 结合所学知识,进行实操演练6. 课程总结与拓展- 总结课程重点知识- 探讨工资管理系统的发展趋势和新技术教学内容安排和进度:第1-2周:工资管理系统概述与数据库基础第3-4周:工资管理系统的设计与实现第5-6周:编程实现工资管理系统第7-8周:案例分析与实操第9-10周:课程总结与拓展教材章节及内容关联:《信息技术》六年级下册:第三章 数据库与数据处理第四章 管理信息系统第五章 编程解决问题教学内容确保科学性和系统性,注重理论与实践相结合,以培养学生的实际操作能力和解决问题的能力。
数据结构工资管理系统课程设计报告
. ... .. 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、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
工资管理系统(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. 员工信息的存储员工信息可以使用链表或数组来存储,链表适用于频繁插入和删除操作,数组适用于频繁查询操作。
工资管理系统-课程设计报告报告
《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院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. 查找算法:用于根据不同的条件查询员工的工资信息。
五、系统实现在系统实现过程中,我们需要根据需求分析、数据结构设计和算法设计来编写代码。
在编写代码之前,我们需要进行系统的测试和调试,确保系统的稳定性和功能的正确性。
六、系统优化在系统实现完成后,我们可以对系统进行优化,提高系统的性能和用户体验。
工资管理系统课程设计C语言
工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。
技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。
情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。
课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。
学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。
教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。
课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。
工资管理系统数据库课程设计
工资管理系统数据库课程设计工资管理系统数据库课程设计一、背景介绍现代企业的工资管理已经越来越复杂,需要一个高效、准确的工资管理系统来进行支持。
工资管理系统需要能够自动计算员工工资,但更重要的是需要保护员工信息的安全性。
因此,该系统需要具备高可靠性和高安全性。
二、系统设计要求1. 系统框架设计系统框架应该采用分层架构模式,包括以下几个层次:①用户界面层:实现用户与系统的交互操作。
②业务逻辑层:实现系统的核心业务逻辑。
③数据访问层:实现系统的数据访问和管理。
④数据库层:用于存储系统所需的数据。
2. 数据库设计数据表结构设计如下:①员工表:用于存储员工基本信息,包括员工号、姓名、性别、出生日期、联系电话等字段。
②工资表:用于存储员工工资信息,包括员工号、月份、基本工资、津贴、扣款等字段。
③部门表:用于存储部门信息,包括部门号、部门名称、部门经理等字段。
④职位表:用于存储职位信息,包括职位编号、职位名称、职位描述等字段。
⑤权限表:用于存储用户权限信息,包括用户名、密码、用户类型等字段。
3. 系统功能设计根据需求分析,系统应该包含以下功能:①员工基本信息维护功能:用于添加、修改、删除员工基本信息。
②员工工资信息维护功能:用于添加、修改、删除员工工资信息。
③员工考勤记录查询功能:用于查询员工的考勤记录。
④部门信息维护功能:用于添加、修改、删除部门信息。
⑤职位信息维护功能:用于添加、修改、删除职位信息。
⑥权限管理功能:用于管理用户的权限信息。
三、技术方案1. 数据库管理系统本系统采用MySQL数据库管理系统,因为MySQL是一个成熟的开源数据库系统,能够提供高效、可靠的数据存储和管理服务。
2. 开发工具本系统采用Java语言进行开发,使用Eclipse作为开发工具,采用Java Web开发技术,采用MVC设计模式。
3. 数据库访问框架本系统采用ORM框架Hibernate来进行数据库的访问操作,通过Hibernate能够简化数据库访问操作,提高系统开发效率。
数据库课程设计-工资管理系统
采用模块化设计,降低系统复 杂度,方便后期维护和升级。
用户需求
员工
能够查看自己的工资条和考勤记录, 了解自己的收入情况和出勤状况。
人力资源部门
企业管理层
通过系统报表了解企业整体薪资状况 、人力成本及员工绩效等情况,为企 业战略制定和人力资源管理提供依据 。
能够管理员工信息、工资信息和考勤 信息,生成各类报表,为企业管理层 提供决策支持。
问题解决能力
在项目设计和实现过程中,遇到了很多问题和挑战,通过 不断思考和尝试,我逐渐提高了自己的问题解决能力。
对未来研究的展望
数据库新技术研究
随着大数据、云计算等技术的不断发展,数据库技术也在不断演进。未来可以关注和研究 分布式数据库、图数据库等新技术,以满足不同应用场景的需求。
数据库应用拓展
除了传统的企业级应用外,数据库在物联网、人工智能等领域也有广泛的应用前景。未来 可以探索和研究数据库在这些领域的应用和拓展。
系统评估
功能完整性
评估系统是否实现了所有预定的功能,如工 资录入、查询、统计、分析等。
性能稳定性
测试系统在不同负载下的性能表现,如响应 时间、数据处理速度等。
易用性
评估系统的用户界面是否友好,操作是否简 便易懂。
安全性
检查系统的安全机制,如用户权限管理、数 据加密等是否完善。
改进意见与建议
增加数据校验机制
数据库设计
1 2 3
数据库选型
选用关系型数据库管理系统(RDBMS),如 MySQL、Oracle或SQL Server等,确保数据的 完整性和安全性。
数据表设计
根据业务需求设计合理的数据表结构,包括员工 信息表、工资明细表、部门信息表等,定义主键 、外键和索引等约束条件。
课程设计(工资管理系统)
课程设计(工资管理系统)一、课程目标知识目标:1. 让学生理解工资管理系统的基本概念,掌握其功能模块和工作流程。
2. 使学生掌握工资管理系统中的数据录入、查询、修改和删除等基本操作。
3. 帮助学生了解我国工资制度的相关法律法规,并能在实际操作中运用。
技能目标:1. 培养学生运用信息技术解决实际问题的能力,能独立操作工资管理系统。
2. 提高学生的团队协作能力,通过小组讨论和分享,共同解决操作过程中遇到的问题。
3. 培养学生分析、设计和优化工资管理系统的能力,为将来从事相关领域工作打下基础。
情感态度价值观目标:1. 培养学生认真负责的工作态度,注重细节,确保工资管理数据的准确性。
2. 激发学生对信息技术学科的兴趣,提高学习积极性,树立学习信心。
3. 增强学生的法律意识,使他们在实际操作中遵循国家法律法规,养成良好的职业道德。
分析课程性质、学生特点和教学要求,本课程旨在通过理论教学与实际操作相结合,帮助学生掌握工资管理系统的相关知识,培养实际操作能力。
课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,并为后续教学设计和评估提供依据。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念、功能和作用- 分析工资管理系统的类型及适用场景2. 工资管理系统模块介绍- 学习工资管理系统的主要模块,如员工信息管理、工资项目管理、工资计算、报表生成等- 掌握各模块的功能和操作方法3. 工资管理系统的操作流程- 学习工资管理系统的操作流程,包括数据录入、查询、修改、删除等- 掌握工资管理系统的权限设置和安全管理4. 工资管理系统在实际应用中的案例分析- 分析实际企业工资管理案例,了解工资管理系统的应用场景- 学习企业工资管理中的法律法规及合规要求5. 教学实践与操作- 安排学生进行工资管理系统的实际操作,巩固所学知识- 组织小组讨论,分享操作经验,解决实际问题6. 工资管理系统优化与拓展- 学习如何根据企业需求,优化工资管理系统功能- 探讨工资管理系统的发展趋势和新技术应用教学内容依据课程目标,遵循科学性和系统性原则,结合教材相关章节,制定详细的教学大纲。
工资管理系统的数据库课程设计
课程设计报告书年 月1 设计时间2 设计目的掌握数据库的设计3设计任务设计一个工资管理系统4 设计内容〔1〕目标:1)实现月工资计算;2)实现与工资管理有关的档案管理。
3)提高工资管理工作效率,降低出错率。
〔2〕功能要求:档案管理1)保存有关工资计算以及工资管理所必须的数据2)能对数据进行查询、统计工资计算1)正确计算出个人月工资、部门月工资以及全厂月工资。
2)能对病假扣款系数进行修正。
3)能统计工资计算表、个人工资单、部门工资单、工资汇总表四种表格。
需求分析工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比方拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比方工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。
由于设计时间本设计事一个简单模型,该公司目前对工资管理的要求并不高。
因此,针对该公司而言,我们经过了反复地论证,最终确定了工资管理系统的设计方案。
该工资管理系统的主要功能如下图:图4-1概念结构设计图4-2职工技术职称性别 出生日期参加工作日期所属部门人员类别工种类别 技术等级职工号文化程度 现住址籍贯民族工资管理系统职工基本信息 工资结构设置 工资汇总资料输入职工增删职工查询基础工资岗位工资工龄工资岗位工资工龄工资图4-3图4-4工资表岗位津贴住房补贴职务津贴物价补贴房租缺勤扣除工资加班费出勤表职工出勤日数工伤日数 产假日数旷工日数病假日数事假日数 加班日数夜班日数 病假系数图4-5 总ER 图逻辑结构设计职工表〔职工号 技术等级 性别 出生日期 参加工作日期 所属部门 人员类别 工种职别技术职称 文化程度 民族 籍贯 现住址 〕工资表〔技术等级 职工的基本工资 岗位津贴 物价补贴 职位津贴 住房补贴 房租〕出勤表〔职工号 职工出勤 工伤日数 产假日期 病假日期 旷工日期 事假日期 加班日期 夜班日期 病假日期〕物理结构设计职工表4-1字段名称 类型 是否为空 主关键字 取值范围 备注 职工号 char 否 Y 主键 char 否 N 性别 char 否 N 出生日期datetime否N职工出勤表工资表职工号 性别 民族职工号 技术等级物价补贴 岗位津贴物价补贴住房补贴 技术等级加班费 旷工日数加班日数职工代号工伤日数产假日数事假日数病假日数影响影响参加工作datetime 否 N日期所属部门 char 否 N人员类别 char 否 N工种职别 char 否 N技术等级 char 否 N技术职称 char 否 N文化程度 char 否 N民族 char 否 N籍贯 char 否 N现住址 char 否 N工资表4-2字段名称 类型 是否为空 主键字 取值范围 备注 技术等级 char 否 Y 主键 岗位津贴 int 否 N物价补贴 int 否 N职务津贴 int 否 N住房补贴 int 否 N房租 int 否 Nint 否 N缺勤扣除工资加班费 int 否 N出勤表4-3字段名称 类型 是否为空 主键字 取值范围 备注 职工号 char 否 Y 主键 int 否 N职工的出勤日数工伤日数 int 否 N产假日数 int 否 N病假日数 int 否 N旷工日数 int 否 N事假日数 int 否 N加班日数 int 否 N夜班日数 int 否 N病假系数 int 否 N数据库实现职工号 char(10) primary key,create table ZG(char(10) not null,性别 char(10) not null,出生日期 datetime not null,参加工作日期 datetime not null ,所属部门 char (20) not null,人员类别 char(10) not null,工种职别 char (10) not null,技术等级 char (10) not null,技术职称 char (10) not null,文化程度 char (10) not null,民族 char (10) not null,籍贯 char (10) not null,现住址 char (10) ) not null;技术等级 char(10) primary key not null, create table GZ(职工的基本工资 int not null ,岗位津贴 int not null ,物价补贴 int not null ,职务津贴 int not null,住房补贴 int not null,房租 int not null );职工号 char(10) primary key,create table CQ(职工的出勤日数 int ,公伤日数 int not null,产假日数 int not null ,病假日数 int not null,旷工日数 int not null,事假日数 int not null,加班日数 int not null ,夜班日数 int not null ,病假系数 int not null);数据载入职工表的数据图4-6工资表的数据图4-7出勤表的数据图4-8运行与测试设计系统查询功能及要求,写出主要的查询SQL语句,并给出运行结果。
数据结构课程设计之职工工资管理系统(2)
**大学数据结构课程设计报告题目:院(系):计算机工程学院学生姓名:班级:学号:起迄日期:2011.6.20-2011.7.01指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2.基本功能要求职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。
3.输入和输出输入和输出,根据输入提示,输入数字或输入长度最长10字符串二、概要设计1.设计思路根据职工管理系统问题的描述和详细需求分析,要达到上述功能,链表的数据结构来存储职工信息,并对其进行相应的插入、删除、修改、查询、排序、保存等操作。
(1)输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。
(2)系统处理功能的实现:系统管理员根据公司的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。
(3)输出的实现:根据选择的操作,输出与之对应的信息。
(4)根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个模块:职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职工信息排序模块2.数据结构设计依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、工龄,职务、电话和住址,外加一个判断关键字。
使用线性结构来组织数据,因为数据占据空间比较大,要对表中某项数据进行操作,所以使用链表比较方便。
(1)定义头结点typedef struct node{char id[10];char name[10];char sex[10];char birth[10]char gl[10];char xueli[10];char zhiwu[10];char phone[10];char address[10];struct node *next;}node,*linklist;(2)基本操作操作int initlist(linklist &L) //建立链表int creatlist(linklist &L) //创建职工信息:int del(linklist &L,char id[10]) //删除职工信息:int searchid(linklist &L,char id[10])//查找职工信息void display(linklist &L)//显示职工信息:3.软件结构设计三、详细设计1.程序中所用到的函数原型,操作实现//初始化链表int initlist(linklist &L){L=(linklist)malloc(sizeof(node));if(!L)return (0);L->next=NULL;return 1;}//创建链表信息int creatlist(linklist &L){ linklist p;p=(linklist)malloc(sizeof(node));scanf(q->data); }p->next=L->next;L->next=p;return(0);}//显示函数实现void display(linklist &L){linklist p;for(p=L->next;p;p=p->next){ printf(p-.>data)//输出职工信息}}//删除int del(linklist &L,char a[10]) //按id删除4{ node *p, *r;声明节点指针p=L->next;r=L;while(p)//节点不为空{if(strcmp(p->a,a)==0){ i=1; r->next=p->next;free(p);//释放查找到的节点printf("删除成功\n");break;}r=p;p=p->next;}if(i==0)printf ("找不到需要删除的信息!\n");return 1;}//查找操作的实现int searchid(linklist &L,char a[10]){node *p;p=L;while(p){if(strcmp(p->a,a)==0){printf(p-.>data)//输出职工信息}p=p->next;}return 1;}2.主函数和其他函数的伪码算法;2.(1)主函数的伪码void main(){ linklist L;initlist(L);while(x)//{ scanf(y) //输入选择数字switch(y){case 1: creatlist(L);break;case 2: scanf(,&id);//输入员工编号xiugai(L,id);//调用修改函数case 3:scanf("%s",&id);// 输入删除员工编号del(L,id);//调用删除函数case 4:scanf(,&a);// 请输入查询方式if(a==1){scanf(&id);//输入员工编号searchid(L,id);//调用查找函数if(a==2){scanf(&name);// 输入查询员工姓名searchname(L,name); //调用查找函数}case 5:scanf("%d",&k)//输入排序方式switch(k)//输入选择{ case 1: sortid(L)//调用排序函数case 2: sortnm(L) //调用排序函数case 3: sortgl(L) //调用排序函数}case 6: display(L)//调用显示函数case 7: save(L);// /调用保存函数case8 :xinlist(L);//调用修改函数case 9:L=load(L); 调用载入函数}2.1新增信息int xinlist(linklist &L)//职工信息的插入姓名并按照升序排列{q=(linklist)malloc(sizeof(node));//申请新节点{scanf(,q->data) //输入员工信息}if(L->next==NULL)//如果只有链表的头结点,没有其他的结点,直接插入在头结点后面{L->next=q;q->next=NULL;}else{if(strcmp(L->next->name,q->name)>0)//位于链表头结点之后的位置{q->next=L->next;L->next=q;}for(p=L->next;p;p=p->next){ if(p->next!=NULL){if(strcmp(p->name,q->name)<0&&strcmp(p->next->name,q->name)>0)//位于两个结点之间{q->next=p->next;p->next=q; }else if(strcmp(p->name,q->name)<0&&p->next==NULL)//链表非空,并且在排序中是最后一个{p->next=q;q->next=NULL;break;}}}}return (0);}2.2修改信息int xiugai(linklist &L,char a[10]){ node *p;//声明节点指针p=L;while(p){if(strcmp(p->a,a)==0)//查找符合要求的员工信息{ i=1; //找到后i=i,做标志scanf(q->data) //输入员工信息p=p->next;}if(i==0)printf("不存在修改的学生!\n");elseprintf("修改成功!\n");return 1;}2.3排序信息程序void sort(linklist &L){linklist La;//声明节点指针linklist p,q,m;//声明节点指针La=(linklist)malloc(sizeof(node));申请新节点La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next )//依次选出工龄最大的节点{if((strcmp( p->next->a,q->a ))>0 ){m=p;q=p->next ; }}if(q==L->next)//删除符合的节点{L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;//建立新链表La->next =q ;}L=La;display(L);//调用显示函数}2.4保存信息伪码void save(linklist &L) //7保存{FILE *fp; //定义指向文件的指针node *p; // 定义移动指针scanf(outfile)// 提示文件名格式信息if((fp=fopen(outfile,"wb"))==NULL) //为输出打开一个二进制文件,如没有则建立{printf("can not open file\n");exit(1);} p=L; //移动指针从头指针开始while(p!=NULL) //如p不为空{fwrite(p,sizeof(node),1,fp);//写入一条记录p=p->next; //指针后移 }fclose(fp); //关闭文件}2.5载入信息伪码node *load(node *L) //9载入信息{node *p,*q,*h=NULL; //定义记录指针变量FILE *fp; // 定义指向文件的指针char infile[10]; //保存文件名scanf,infile); //输入文件名if((fp=fopen(infile,"rb"))==NULL) //打开一个二进制文件,为读方式{exit(1); }p=(node *)malloc(sizeof(node)); //申请空间h=p; //申请到空间,将其作为头指针while(!feof(fp)) //循环读数据直到文件尾结束{ if(1!=fread(p,sizeof(node),1,fp))break; //如果没读到数据,跳出循环p->next=(node *)malloc(sizeof(node)); //为下一个结点申请空间q=p; //保存当前结点的指针,作为下一结点的前驱p=p->next; //指针后移,新读入数据链到当前表尾 } q->next=NULL; //最后一个结点的后继指针为空fclose(fp); //关闭文件return h; /*返回头指针*/ }3.1新增信息在新增信息中,对按姓名关键字的链表进行插入新节点。
工资系统数据库课程设计
工资系统数据库课程设计一、课程目标知识目标:1. 理解数据库在工资管理系统中的应用和重要性;2. 掌握工资管理系统的基本功能模块及其数据表结构设计;3. 学会运用SQL语句进行工资数据的查询、插入、更新和删除操作;4. 了解数据库的安全性和一致性原则在工资系统中的应用。
技能目标:1. 能够独立设计并实现一个简单的工资管理系统数据库;2. 能够运用所学知识,对工资数据进行有效管理和维护;3. 能够通过数据库查询和分析,解决工资管理中的实际问题;4. 学会使用数据库管理工具(如:MySQL、Oracle等)进行数据操作。
情感态度价值观目标:1. 培养学生对数据库技术在工资管理系统中的应用产生兴趣,提高学习积极性;2. 培养学生严谨、细心的数据处理能力和团队合作精神;3. 增强学生对信息技术的认识,使其意识到信息技术在企业管理中的重要作用;4. 培养学生尊重劳动、诚实守信的品质,提高社会责任感。
课程性质:本课程为实践性较强的课程,以培养学生的实际操作能力和解决问题的能力为主。
学生特点:学生具备一定的数据库基础知识和计算机操作技能,但可能对工资管理系统的实际应用了解不多。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力和分析解决问题的能力。
在教学过程中,关注学生的学习进度和情感态度,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际工作中,提高其职业素养。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念和功能模块;- 分析工资管理系统的业务流程。
2. 数据库设计基础- 学习数据库设计的基本原则和步骤;- 掌握实体关系模型和关系数据库设计方法。
3. 工资管理系统数据库设计- 设计工资管理系统所需的数据表结构;- 学习如何建立实体和关系,并进行属性定义。
4. SQL语句操作- 掌握SQL基本操作(查询、插入、更新、删除);- 学习运用SQL语句对工资数据进行管理。
数据库工资管理系统课程设计
字段名称
中文名称
类型
长度
取值范围
是否非空
主关键字
备注
Zno
职工号
char
10
0~9999
N
Y
Zname
姓名
char
8
0~9999
N
Zsex
性别
char
2
0~9999
N
Cdata
出生日期
date
8
0~9999
N
Cjdate
参加工作日期
date
8
0~9999
N
Ssbm
所属部门
char
10
职工(职工号、姓名、性别、出生日期、参加工作日期、所属部门、人员类别、工种职别、技术等级、技术职称、文化程度、民族、籍贯、现住址。)
职工工资(职工号、姓名、基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、房租.)
出勤信息(职工号、姓名、出勤日数、公伤日数、产假日数、病假日数、旷工日数、事假日数、加班日数、夜班日数、病假系数。)
Jbintnot null,
Gwintnot null,
WJintnot null,
Zwintnot null,
Zfintnot null,
FJintnot null);
create table出勤表
(Znochar(10) primary key,
Cqintnot null,
Gsintnot null,
在这次课程设计中,让我学到了很多在课堂和书本上学不到的知识,同时,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼.使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步.通过这次课程设计,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师和同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的设计。
数据结构课程设计工资管理系统
海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业: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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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)11、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
2、设计内容与要求2.1设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计234、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
45、查找:输入职工的职工号或姓名,并在文件中查找。
若找到,则显示该职工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
6、删除:输入职工的职工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该职工信息;若选择否,则取消。
若未找到则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
57、修改:输入职工的职工号在文件中查找。
若找到,显示该职工的所有信息,否则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
8、统计:分类汇总并输出所有职工的总工资,并计算出平均工资。
9、退出:退出程序。
65、程序调试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。
程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。
要正确利用编辑时提示的错误信息。
调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。
2、忘记“;”或把“;”用错误的输入法输入,造成的错误。
3、大括号混乱造成错误。
4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出内容不符合,通过仔细核对书上的格式才改掉。
5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。
6、设计小结通过这几天的努力,职工工资管理系统的设计已基本完成。
在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。
7职工工资管理系统是一个很实用并且使用广泛的操作系统。
此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。
该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。
每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。
在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。
对以前课本中学到的知识有了更深刻的理解,和灵活的运用。
不再像以前一样,知识浅显的明白,死板的套用。
编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。
最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。
通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。
这会对以后的学习有所帮助。
7、参考文献[1]谭浩强. 《C程序设计》(第三版)北京:清华大学出版社 2006.3.[2]王为青等.《C语言高级编程及实例剖析》北京:人民邮电出版社 2007.3.[3]黄明等.《C语言课程设计》北京:电子工业出版社 2006.3.8附录〈源程序〉#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();//统计职工工资9case 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;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);11system("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);}13//修改职工信息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");}15。