企业人事管理系统数据库课程设计_第1页
企业人事管理系统数据库课程设计_第2页
企业人事管理系统数据库课程设计_第3页
企业人事管理系统数据库课程设计_第4页
企业人事管理系统数据库课程设计_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年6月23日企业人事管理系统数据库课程设计资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。信息与计算科学专业数据库课程设计报告题目:企业人事管理系统班级:信息与计算科学131801班指导教师:金海波学生:王慧兰18030120王巾18030121张建宏18030128摘要随着网络的发展越来越快,网络办公自动化应运而生,它的主要目的是实现信息交流和信息共享,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸的办公中解脱出来。企业人事管理系统的设计,为大小企业的工作管理带来便利,使得管理体制更加完善,工作水平和效率得以提高。信息技术为企业的发展提供了机遇,也带来了挑战。如何改进企业内部的经营机制,公正、客观、全面、快捷的评价员工的业绩,实现以人为本的经营战略,提高人事管理工作的效率,使人事管理有更多的精力去做人力资源分析、研究和开发工作,是企业立足发展,开拓未来,领先同行业的关键。此次人事管理系统采用SQLServer作为开发数据库的工具。企业人事管理系统的具体功能能够根据用户的需要来分配,但主要还是包括企业人事的信息增加、删除、修改、查找。在企业人事管理系统中,用户能够方便的对企业人事进行信息的检索与处理。本人事管理系统具有如下功能:员工基本信息的查询、增加、修改、删除模块,员工考勤信息、部门信息、员工工资、员工调动信息的录入、修改、查询、删除模块,员工评价信息的增加、修改、删除,以及员工工资信息的添加、修改系统维护功能。为公司人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。关键字:企业人事管理系统SQLServerJava目录TOC\o"1-4"\h\z\u第一章系统规划 11.1引言 11.1.1编写目的 11.1.2项目背景 11.2可行性研究的前提 11.2.1目标 11.2.2要求 21.3技术可行性分析 31.3.1技术的支持能力 31.3.2技术的优势 31.3.3技术的难点 31.4经济可行性分析 41.5社会可行性分析 41.5.1用户使用可行性 51.6意见结论 5第二章需求分析 62.1系统需求 62.2功能需求 62.3数据流图 72.3.1系统顶层图 72.3.2数据流程图一层分解图 72.3.3数据流程图二层分解图 92.4数据字典 112.4.1数据流条目 112.4.2数据存储 14第三章概念设计 153.1实体之间的联系 153.2E-R图 15第四章逻辑设计 194.1概念模型向关系模型的转换 194.2概念模型的优化 204.2.1确定范式级别 204.2.2实施规范化处理 20第五章物理设计 225.1数据库的存储结构 225.1.1数据库的表设计 225.1.2关系模式的存取方法 245.1.3数据库安全性 24第六章实现、运行与维护 256.1实现 256.2人机界面设计 276.2.1用户登陆界面 276.3系统测试 296.3.1员工基本信息测试 296.3.2员工工作评价信息测试 296.3.3员工考勤测试 306.3.4员工工资测试 316.4运行维护 32总结 33参考文献 34附录第一章系统规划1.1引言1.1.1编写目的人事管理系统能够为使用者提供充分的信息和快捷的查询手段,建立一套完整的人事管理系统能够加快物资的周转速度,提高生产效率,加强管理的信息化手段,提高本单位的经济效益。使用计算机对人事资料进行管理,会给应用者带来很多方便,如检索迅速,查找方便,可靠量大,保密性好,成本低等。可行性分析研究的目的是用最小的代价在尽可能短的时间内确定数据库系统是否可能开发,是否值得开发(在该报告中主要是考察《企业人事管理系统》是否可能开发,是否值得开发,是否能够开发)。其实质是在较高层次上以较抽象的方式进行的,简化的压缩的需求分析和概要设计过程。1.1.2编写背景开发软件名称:企业人事管理系统项目任务提出者:金海波项目开发者:王慧兰、张建宏、王巾用户:各小型企业1.2可行性研究的前提1.2.1目标人事管理系统用于支持企业完成人事管理工作,有如下三个方面的目标:1.支持企业实现规范化管理;2.支持企业高效率完成人事管理日常业务,包括企业人事的增加、查询、修改、删除;3.支持企业进行人事管理及相关方面的科学决策并在系统开发总任务的基础上进行该系统的方案设计论证,需要实现以下功能:a.建立员工基本信息表,包括:员工编号、姓名、部门、性别、出生日期、籍贯、职称、进入公司时间等;b.建立员工考勤信息表,包括:员工编号、姓名、日期、本月天数、出勤、旷工、早退、加班等;c.建立员工工作评价信息表,包括:员工编号、姓名、部门、业务水平、工作业绩、时间、工作态度等;d.建立员工工资信息表,包括:员工编号、姓名、时间、底薪、奖金、扣考核、房租、实发工资等;1.2.2要求企业人事管理系统必须提供部门信息、员工信息等基本信息,还必须提供强大的查、删、改功能。能够分为不同权限、不同用户的对该系统进行操作。另外,该系统还必须保证数据的安全性、完整性和准确性。1.3技术可行性分析本系统是基于数据库的管理与查询系统。现在硬件、软件的性能指标和开发环境等各项开发条件都符合我们开发系统的要求,因此,开发出此系统的关键是我们掌握技术的熟练程度。本系统开发设计中用到的技术因素有:(1)本系统开发方法。在本小组中,小组成员比较熟练地掌握开发信息系统的过程和技术,在信息开发方法上不存在太大的问题。(2)网络和通信技术。因为在本地客户端模拟运行的系统,因此不需要配置和网络。(3)数据库技术。小组成员具有应用数据库开发小型信息系统的经验。Java开发技术。小组成员需要熟练使用Java语言。综上所述,本系统的开发在技术上是可行的。1.3.1技术的支持能力本系统采用APMServ5.2.0工具建立数据库,并经过eclipse使两者进行连接从而进行系统软件开发。此前,我们简单使用相同技术模拟开发过类似软件系统,具有一定开发经验。1.3.2技术的优势一、管理操作方便、快捷、高效。技术要求较低,数据维护简单、安全。使用数据库管理信息资源,能够进行添加、修改、插入、删除等操作,而且方便、快捷。二、检索统计准确、迅速、高效。数据库应用系统的使用,能够按关键词对数据进行各种分类,而且关键词还能够作各种各样的组合,使得数据的检索、统计等操作形式多样,结果准确;又由于几乎所有的数据库都采用了索引技术,使得检索数据速度快,效率高。三、数据应用共享性好。由于对数据进行集中管理,能够经过网络等各种技术,使得数据额应用能够共享,而且数据应用的效率也高。1.3.3技术的难点一、数据库设计和维护,由于系统分析人员或开发人员对企业业务需求以及数据库技术认识不足,导致设计出来的数据结构或应用程序往往存在各种各样问题,并因此造成在生产环境中,系统故障层出不穷,直接影响业务运转。二、系统负荷和安全问题,系统信息安全,系统安全一般受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。1.4经济可行性分析由于人事管理系统主要用于员工个人相关信息的管理,使公司领导准确掌握员工的动向和员工的综合素质,及时调整人才的分析,提高工作效率,能够为企业带来可观的经济效益。而且由于系统开发并不是太复杂,操作起来也比较简单,只需要一台作为服务器的计算机就能够运行,因此开发费用较低。1.5社会可行性分析随着计算机的发展与普及,互联网的扩展和网络安全技术的不断提高,用信息系统管理人事在实际应用中越来越受企业或个人欢迎,而且在实际企业活动中表现出了巨大的经济价值。把人士管理系统纳入公司内部的Internet体系中去,实现数据的共享,这样有利于人事信息在单位内部的流动,提高了数据资源的利用,而且能得到及时的更新,不需要像过去那样浪费大量的人力物力去进行抄写,提高了工作效率,人事管理覆盖面广,而且会产生大量数据和信息,对如此多的信息进行管理和运用,必须要在规范化和标准化的基础上借助于网络化的人事管理系统才能满足这些要求。社会需要企业管理额现代化和信息化。企业人事管理系统的开发和运行与国家的政策法规不存在任何冲突和抵触之处。另外,企业人事管理系统苏采用的操作和工作方式符合工作人员和客户的日常习惯,而且操作方便灵活,便于使用。因此,该系统具有可行性。1.5.1用户使用可行性本软件操作简单,界面友好,功能完备,有一定计算机基础的人员就能进行操作。1.6意见结论经过技术、经济、社会等方面的可行性分析,能够确定本系统的开发完全必要。第二章需求分析2.1系统需求用户的需求具体体现在选课信息和用户信息的提供、保存、更新和查询的方面。这就要求数据库的设计必须合理,使之能够充分满足各种信息的输入和输出,保证数据存储的可靠性,而且能够快速取出和存入。而前台显示部分,应具有人性化的界面,方便用户操作。因各个企业的实际情况不同,系统应该具有兼容性。系统需要同时处理很大的数据量,这时系统不会因此崩溃。另外,系统还应该具有较强的安全性,保证身份不同的用户,不能越权操作。非合法用户不能对数据进行操作。2.2功能需求本系统分为五个模块:员工基本信息、员工工作评价信息、员工考勤信息、员工工资信息、系统。得到如图所示的系统功能模块图:2.3数据流图2.3.1系统顶层图2.3.2数据流程图一层分解图员工基本信息,员工考勤信息,员工工作评价信息,员工工资信息2.3.3数据流程图二层分解图查询所有员工信息,按员工编号查询,按员工姓名查询,员工信息的增加、修改、删除2.3.3数据流程图三层分解图查询所有员工工作评价2.3.3数据流程图四层分解图查询所有员工考勤,查询员工考勤2.3.3数据流程图五层分解图查询所有员工工资,增加员工记录,修改员工记录,删除员工记录数据字典项目名称:企业人事管理系统数据库表:员工基本信息表员工工作评价信息表员工考勤信息表员工工资信息表数据流定义1、数据流名称:员工情况位置:员工定义:员工情况=员工编号+姓名+部门+性别+出生日期+籍贯+职称+进入公司时间数据流量:根据企业的员工具体录用情况来确定说明:要对每一位被聘用的新员工进行唯一编号2、数据流名称:员工考勤信息情况位置:员工定义:员工考勤信息情况=员工编号+姓名+日期+本月天数+出勤+旷工+早退+加班数据流量:根据企业具体情况来确定说明:要对每一个员工进行唯一编号3、数据流名称:员工工资评价情况位置:员工定义:员工工作评价情况=员工编号+姓名+部门+业务水平+工作业绩+时间+工作态度数据流量:根据企业具体情况来确定说明:要对每一个员工进行唯一编号4、数据流名称:员工工资信息情况位置:员工定义:员工工资信息情况=员工编号+姓名+时间+底薪+奖金+扣考核+房租+实发工资数据流量:根据企业具体情况来确定说明:要对每一个员工进行唯一编号2.4.2数据存储确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,能够改进系统的性能,提高系统的安全性。因此,系统应将日志文件和数据文件存放在不同磁盘上。第三章概念设计3.1实体之间的联系部门与员工之间的联系:一个部门信息对应多个员工信息,而一个员工信息对应一个部门信息,因此员工信息与部门信息之间是一对多的关系。将每一个实体转换成一个关系(关系就是给出关系名,写出属性,并标明该关系的主码)a.员工基本信息(员工编号、姓名、部门、性别、出生日期、籍贯、职称、进入公司时间)。在此联系中主码为员工编号,因为员工信息与部门是多对一的联系,因此将部门传入员工基本信息中做非主属性。b.员工考勤信息(员工编号、姓名、日期、本月天数、出勤、旷工、早退、加班)c.员工工作评价信息(员工编号、姓名、部门、业务水平、工作业绩、时间、工作态度)d.员工工资信息(员工编号、姓名、时间、底薪、奖金、扣考核、房租、实发工资)。3.2E-R图员工基本信息E-R图员工考勤信息E-R图员工工作评价信息E-R图员工工资信息E-R图第四章逻辑设计4.1概念模型向关系模型的转换根据需求分析中的E-R图,经过对实体的属性和之间的联系的分析,我们将其由概念模型向关系模型转化,而且根据范式化理论进行优化。4.2概念模型的优化4.2.1确定范式级别根据上述分析所归结出来的数据依赖的种类和在本系统实际的开发过程中,需要涉及多表的查询及表的修改和删除,且存在多值依赖的实际情况下,其关系模式应达到BCNF。4.2.2实施规范化处理实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系能够转换为一个独立的关系模式,也能够与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系能够转换为一个独立的关系模式,也能够与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系能够转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合

具有相同码的关系模式可合并。第五章物理设计5.1数据库的存储结构经过需求分析,概要设计和逻辑设计流程得到本系统的数据库结构。5.1.1数据库的表设计进一步确定上一章逻辑设计中设计好的关系模式中各个数据项的类型和长度,将每个关系转换为数据库中的二维表格,并确定了各个表的主键和外键,得到以下表结构:字段名称字段含义数据类型及长度约束ygid员工编号varchar(10)主键ygname姓名char(10)ygdept部门varchar(20)ygsex性别varchar(2)ygbirthday出生日期datetimeygplace籍贯varchar(40)yglevel职称varchar(10)ygdate进入公司时间datetime表5.1员工基本信息表字段名称字段含义数据类型及长度约束kqid员工编号varchar(10)主键kqname姓名varchar(10)kqdate日期datetimekqdays本月天数varchar(10)qwork出勤varchar(10)kqabsent旷工varchar(10)kqearly早退varchar(10)kqover加班varchar(10)表5.2员工考勤信息表字段名称字段含义数据类型及长度约束pjid员工编号varchar(10)主键pjname姓名varchar(40)pjdept部门varchar(10)pjlevel业务水平varchar(10)ygresult工作业绩varchar(10)pjdate时间varchar(10)pjposition工作态度varchar(10)pjother其它varchar(10)表5.3员工工资评价信息表字段名称字段含义数据类型及长度约束gxid员工编号varchar(10)主键gxname姓名varchar(40)gzdate时间datetimegxbase底薪varchar(10)gxbonus奖金varchar(10)gxduct扣考核varchar(10)gxhouse房租varchar(10)gxlaborage实发工资varchar(10)表5.4员工工资信息表5.1.2关系模式的存取方式关系模式采用索引存取方法与聚簇存取方法共用。为数据库中各基本表建立的索引如下:基本表员工编号、姓名经常在查询条件中出现,考虑在其之上建立聚簇索引。5.1.3数据库安全性安全与保密要求:此系统能够分为用户和管理员,用户能够浏览自己的个人信息,但不能修改自己的信息,凡要修改都需经过管理员去修改。管理员主要管理系统的各种信息。

目标:在于开发一个功能使用、操作方便,简单明了的人事管理系统。再设计出功能强大的软件的同时,尽可能地减少对系统资源的占用,而且还要力求做到经过使用本系统,尽量使单位的人事管理工作系统化、自动化和规范化,从而达到提高企、事业单位管理效率的目的,同时也希望此次工程加强我们自身的小组协作意识,加深程序设计思想,同时要学习工程设计思想,再技术和软件工程思想上同时得到锻炼和提高。人事管理信息系统,在实际工作中得到了广泛的应用,它对企事业单位的人力资源进行有效的管理,提高了管理的效率。本系统的技术完备、成熟,经济效益合理,满足安全真实的企业人事管理信息系要求:规范企业管理,实现对全公司人事管理的实时监控;实现对每名员工个人业绩的考核;实现较完善的人事管理体系;为企业领导决策提供依据;系统符合实际生产需求,人机界面友好,操作简单。第六章实现运行与维护6.1实现根据概要设计和逻辑设计的结果,在计算机上建立实际的数据库结构,导入数据进行程序调试。创立员工基本信息的数据库创立员工考勤信息数据库3、创立员工工作评价信息数据库员工工资信息数据库6.2人机界面设计6.2.1用户登录界面用户登陆界面是每一个用户,在登陆本系统时出现的界面,如要用户输入用户名、密码,以及确定用户身份。其界面如下图:图6-1登陆页面登陆成功后的页面:图6-2登陆成功的页面员工基本信息视图:图6-3员工基本信息页面员工工作评价视图:图6-4员工工作评价页面员工考勤视图:图6-5员工考勤页面员工工资视图:图6-6员工工资页面系统视图:图6-7系统页面6.3系统测试

6.3.1员工基本信息测试1、查询员工信息a.查询所有员工信息图6-8员工基本信息页面b.按员工编号查询查找员工信息页面:图6-9查找员工信息页面查询结果:图6-10查询结果页面c.按员工姓名查询查找员工信息页面:图6-11查询结果页面2、增、删、改员工信息a.增加员工信息图6-12查询结果页面增加成功:图6-13查询结果页面结果显示:图6-14查询结果页面b.修改员工信息图6-15修改页面修改成功:图6-16修改成功页面c.删除员工信息执行操作:图6-17删除员工界面删除成功:图6-18删除成功页面6.3.3员工工作评价测试图6-19系统页面6.3.4员工考勤测试a.查询所有员工考勤图6-20系统页面b.查询员工考勤图6-21查询页面查询结果:图6-22查询结果页面6.3.5员工工资测试1.查询员工工资图6-23查询结果页面2.增、删、改工资记录a.增加工资记录图6-24系统页面增加成功:图6-25系统页面结果显示:图6-26系统页面b.修改工资记录修改成功页面:图6-27修改成功页面结果显示:图6-28系统页面c.删除工资记录删除成功:图6-29系统页面结果显示:图6-30系统页面6.4系统维护设备的硬件故障可能造成本软件不能运行或不能正常进行输入、输出等后果,系统的资源不足及网络传输通道阻塞可能造成本软件不能正常运行,并有可能造成机器”死机”,上述故障的处理由用户自行解决。软件在运行过程中产生的数据库错误,将由系统自动记入错误日志,非数据传输引起的错误将由系统管理员或软件开发者解决。软件在运行过程中产生的其它错误,将根据情况由软件开发者或软件开发者协助系统管理员解决。总结在本系统的开发过程中,由于是我们初次开发软件,一方面对企业人事管理的整个流程不够熟悉,另一方面在知识、经验方面都存在着不足,时间也比较仓促,因此该系统必然会存在一些缺陷,缺少需要密码的登录页面,缺乏对系统整体进行周密考虑,这些都有待于进一步的改进。但其功能全面、易于日后系统更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所具备的。我们设计的企业人事管理系统,提供了较为完备的员工、工资等信息,实现了数据库的基本操作,如修改、插入、删除、查询等。完善的信息管理,支持员工信息、人员增加、调动。系统主要针对查看员工的各种信息需求所设计的,能够很好地管理数据。经过这次课程设计,我们受益匪浅,在这短短的几个星期里,我们不但将课堂上老师传授的理论知识付诸于实践,提高自己的理论水平,实际操作技巧,更重要的是我们还学到了很多可多课本上没有的知识。那就是”团结””探索”和”支持”。团结——我们是一个团队,单靠一个人的力量什么也做不成,只有大家进网一处使,才能把事情做好;探索——凡事都要有探索的精神,它是助人向前的动力之源,遇事多问个”为什么”,你会从中学到很多;坚持——一路走来,困难重重,我们坚持,我们成功!最后,感谢金海波老师的关心,指导与教诲,向所有帮助我们做好数据库设计的老师和同学们之一深深的感谢。参考文献[1]《数据库理论系统》

萨师煊等著

高等教育出版社

5月出版[2]《SQLServe数据库开发应用程序》孙全党等主编科学出版社2月第一版[3]《管理信息系统(第四版)》薛华成著清华大学出版社[4]《Java语言与面向对象程序设计》

清华大学出版社

附录主程序:importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Vector;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JScrollPane;importjavax.swing.JTable;publicclassMainUIimplementsActionListener{privateJFramejf;//主界面,显示表格数据privateJFramejFrame;privateJMenuBarjmb;//主界面上的菜单栏对象privateJMenujm1,jm2,jm3,jm4,jm5;//五个菜单,分别为员工基本信息、员工工作评价、员工考勤、员工工资、系统privateJMenuItemjmx1,jmx2,jmx3,jmx4,jmx5,jmx6;//员工基本信息的菜单项,分别为查询所有员工、按员工编号查询,按员工姓名查询,增加员工,修改员工,删除员工privateJMenuItemjmp;//课程管理的菜单项,分别为privateJMenuItemjmk1,jmk2;//选课管理的菜单项,分别为privateJMenuItemjmg1,jmg2,jmg3,jmg4;privateJMenuItemjmexit;//系统的菜单项:退出privateJTablejt;//表格显示组件privateJScrollPanejsp;//滚动Pane,表格组件会用到privateVector<Vector<String>>rowData;//保存从数据库中取得的二维表数据,用表格组件显示这些数据privateVector<String>singleRowData;//保存从数据库中取得的单条记录 publicstaticvoidmain(String[]args){ newMainUI(); } publicMainUI(){ jf=newJFrame();//创立Frame jmb=newJMenuBar();//以下代码生成菜单栏、菜单、菜单项 jm1=newJMenu("员工基本信息"); jm2=newJMenu("员工工作评价"); jm3=newJMenu("员工考勤");jm4=newJMenu("员工工资"); jm5=newJMenu("系统"); jmx1=newJMenuItem("查询所有员工"); jmx1.addActionListener(this);//增加事件监听者 jmx2=newJMenuItem("按员工编号查询"); jmx2.addActionListener(this); jmx3=newJMenuItem("按员工姓名查询"); jmx3.addActionListener(this); jmx4=newJMenuItem("增加员工"); jmx4.addActionListener(this); jmx5=newJMenuItem("修改员工"); jmx5.addActionListener(this); jmx6=newJMenuItem("删除员工"); jmx6.addActionListener(this); jmp=newJMenuItem("查询所有员工工作评价"); jmp.addActionListener(this); jmk1=newJMenuItem("查询所有员工考勤"); jmk1.addActionListener(this);jmk2=newJMenuItem("查询员工缺勤"); jmk2.addActionListener(this); jmg1=newJMenuItem("查询所有员工工资"); jmg1.addActionListener(this);jmg2=newJMenuItem("增加员工工资记录"); jmg2.addActionListener(this);jmg3=newJMenuItem("修改员工工资记录"); jmg3.addActionListener(this);jmg4=newJMenuItem("删除员工工资记录"); jmg4.addActionListener(this); jmexit=newJMenuItem("退出"); jmexit.addActionListener(this); jf.setJMenuBar(jmb); jf.setTitle("企业人事管理系统");//下两行把菜单项和菜单连接起来 jm1.add(jmx1);jm1.add(jmx2);jm1.add(jmx3);jm1.addSeparator();jm1.add(jmx4);jm1.add(jmx5);jm1.add(jmx6); jm2.add(jmp); jm3.add(jmk1);jm3.add(jmk2); jm4.add(jmg1);jm4.addSeparator();jm4.add(jmg2);jm4.add(jmg3);jm4.add(jmg4); jm5.add(jmexit); jmb.add(jm1);jmb.add(jm2);jmb.add(jm3);jmb.add(jm4);jmb.add(jm5);//把菜单和菜单栏连接起来 rowData=newVector<Vector<String>>();//初始化数据变量 singleRowData=newVector<String>(); jf.setExtendedState(JFrame.MAXIMIZED_BOTH);//设定主界面最大化,并显示它 jf.setVisible(true); } publicvoidactionPerformed(ActionEvente){//事件处理方法,选择菜单项会执行此函数 if(e.getSource()==jmexit)System.exit(0);//选择”退出”菜单项,执行此语句 if(e.getSource()==jmp)//选择”查询所有员工评价”菜单项,执行此语句 { newPjAdmin().queryAll(rowData);//经过PjAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers1(); //经过表格组件显示数据 } if(e.getSource()==jmk1)//选择”查询所有员工考勤”菜单项,执行此语句 { newKqAdmin().queryAll(rowData);//经过KqAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers3(); //经过表格组件显示数据 }if(e.getSource()==jmk2)//选择”查询员工缺勤”菜单项,执行此语句 { newKqAdmin().queryAll(rowData);//经过KqAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 StringYgid=JOptionPane.showInputDialog("请输入员工编号:"); //经过输入对话框得到待查询员工编号 newXxAdmin().queryByYgid(rowData,Ygid); //经过XxAdmin对象传递员工编号并查询数据库,得到的数据放入rowData中 this.displayWorkers3(); //经过表格组件显示数据 } if(e.getSource()==jmg1)//选择”查询所有员工工资”菜单项,执行此语句 { newGzAdmin().queryAll(rowData);//经过GzAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers2(); //经过表格组件显示数据 }if(e.getSource()==jmg2){//选择”增加员工工资记录”菜单项,执行此if语句this.singleRowData.clear();//使用vector变量前,先清空 newGzEditUI(jf,"增加工资记录",true,singleRowData);//生成员工工资记录编辑窗口,并取得新增员工工资数据,放入存储记录的数据变量singleRowData中 intrs=newGzAdmin().insert(singleRowData);//经过GzAdmin对象的insert方法向数据库插入记录 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功增加员工工资记录!"); else JOptionPane.showMessageDialog(null,"增加员工工资记录失败!"); newGzAdmin().queryAll(rowData);//经过GZAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers2(); //经过表格组件显示数据}if(e.getSource()==jmg3){//选择”修改员工工资记录”菜单项,执行此if语句 StringYgid=JOptionPane.showInputDialog("请输入员工编号:");//经过输入对话框得到待修改员工号 newGzAdmin().queryByYgid(rowData,Ygid); //经过GzAdmin对象传递学号并查询数据库,得到的数据放入rowData中 newGzEditUI(jf,"修改员工工资记录",true,rowData.get(0));//生成员工工资记录编辑窗口,并传入待修改学生数据,用户编辑后再取回放入存储记录的数据变量中 intrs=newGzAdmin().update(rowData.get(0));//经过GzAdmin对象的update方法向数据库修改记录,rowData.get(0)表示单条记录 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功修改员工工资记录!"); else JOptionPane.showMessageDialog(null,"修改员工工资记录失败!"); newGzAdmin().queryAll(rowData);//经过GzAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers2();//经过表格组件显示数据}if(e.getSource()==jmg4){//选择”删除员工工资记录”菜单项,执行此if语句 StringYgid=JOptionPane.showInputDialog("待删除员工编号:");//经过输入对话框得到待删除员工编号 newGzAdmin().queryByYgid(rowData,Ygid);//经过GzAdmin对象传递员工编号并查询数据库,得到的数据放入rowData中 newGzEditUI(jf,"删除员工工资记录",true,rowData.get(0));//生成员工记录编辑窗口,并传入待修改员工数据,待用户确认待删除数据 intrs=newGzAdmin().delete(Ygid);//经过GzAdmin对象的delete方法向数据库删除记录,需要员工记录值 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功删除员工工资记录!"); else JOptionPane.showMessageDialog(null,"删除员工记录工资失败!"); newGzAdmin().queryAll(rowData);//经过GzAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers2();//经过表格组件显示数据} if(e.getSource()==jmx1)//选择”查询所有员工”菜单项,执行此语句 { newXxAdmin().queryAll(rowData);//经过XxAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers(); //经过表格组件显示数据 } if(e.getSource()==jmx2){//选择”按员工编号查询员工”菜单项,执行此if语句 StringYgid=JOptionPane.showInputDialog("请输入员工编号:"); //经过输入对话框得到待查询员工编号 newXxAdmin().queryByYgid(rowData,Ygid); //经过XxAdmin对象传递员工编号并查询数据库,得到的数据放入rowData中 this.displayWorkers();//经过表格组件显示数据 }if(e.getSource()==jmx3){//选择”按员工姓名查询员工”菜单项,执行此if语句 StringYgname=JOptionPane.showInputDialog("请输入员工姓名:");//经过输入对话框得到待查询员工姓名 newXxAdmin().queryByYgname(rowData,Ygname);//经过XxAdmin对象传递省份数据并查询数据库,得到的数据放入rowData中 this.displayWorkers();//经过表格组件显示数据 }if(e.getSource()==jmx4){//选择”增加员工”菜单项,执行此if语句 this.singleRowData.clear();//使用vector变量前,先清空 newXxEditUI(jf,"增加员工记录",true,singleRowData);//生成员工记录编辑窗口,并取得新增员工数据,放入存储记录的数据变量singleRowData中 intrs=newXxAdmin().insert(singleRowData);//经过XxAdmin对象的insert方法向数据库插入记录 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功增加员工记录!"); else JOptionPane.showMessageDialog(null,"增加员工记录失败!"); newXxAdmin().queryAll(rowData);//经过XxAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers(); //经过表格组件显示数据}if(e.getSource()==jmx5){//选择”修改员工”菜单项,执行此if语句 StringYgid=JOptionPane.showInputDialog("请输入员工编号:");//经过输入对话框得到待修改员工编号 newXxAdmin().queryByYgid(rowData,Ygid); //经过XxAdmin对象传递并查询数据库,得到的数据放入rowData中 newXxEditUI(jf,"修改员工记录",true,rowData.get(0));//生成员工记录编辑窗口,并传入待修改员工数据,用户编辑后再取回放入存储记录的数据变量中 intrs=newXxAdmin().update(rowData.get(0));//经过XxAdmin对象的update方法向数据库修改记录,rowData.get(0)表示单条记录 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功修改员工记录!"); else JOptionPane.showMessageDialog(null,"修改员工记录失败!"); newXxAdmin().queryAll(rowData);//经过XxAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers();//经过表格组件显示数据}if(e.getSource()==jmx6){//选择”删除员工”菜单项,执行此if语句 StringYgid=JOptionPane.showInputDialog("待删除员工编号:");//经过输入对话框得到待删除员工编号 newXxAdmin().queryByYgid(rowData,Ygid);//经过XxAdmin对象传递员工号并查询数据库,得到的数据放入rowData中 newXxEditUI(jf,"删除员工记录",true,rowData.get(0));//生成员工记录编辑窗口,并传入待修改员工数据,待用户确认待删除数据 intrs=newXxAdmin().delete(Ygid);//经过XxAdmin对象的delete方法向数据库删除记录,需要员工编号值 if(rs>0)//判断是否插入操作成功,并显示提示窗口 JOptionPane.showMessageDialog(null,"成功删除员工记录!"); else JOptionPane.showMessageDialog(null,"删除员工记录失败!"); newXxAdmin().queryAll(rowData);//经过XxAdmin对象执行queryAll方法查询数据库,得到的数据放入rowData中 this.displayWorkers();//经过表格组件显示数据} } publicvoiddisplayWorkers()//用表格组件jt显示变量rowData的数据,其中数据从数据库中查询得到 { Vector<String>columns=newVector<String>();//表格表头中的显示数据,6个列名存储在向量中 columns.add("员工编号");columns.add("员工姓名");columns.add("员工部门");columns.add("员工性别"); columns.add("员工出生日期");columns.add("员工籍贯");columns.add("员工职称");columns.add("入职日期"); jt=newJTable(rowData,columns);//用表头vector和数据库中取得数据rowData来生成表格 jt.setRowHeight(0,30);//以下几行设置表格行间距等 jt.setRowHeight(25); jt.setRowMargin(5); jsp=newJScrollPane(jt); jf.setContentPane(jsp); jf.validate(); } publicvoiddisplayWorkers1()//用表格组件jt显示变量rowData的数据,其中数据从数据库中查询得到 { Vector<String>columns=newVector<String>();//表格表头中的显示数据,6个列名存储在向量中 columns.add("员工编号");columns.add("员工姓名");columns.add("评价部门");columns.add("业务水平"); columns.add("工作业绩");columns.add("时间");columns.add("工作态度");columns.add("其它"); jt=newJTable(rowData,columns);//用表头vector和数据库中取得数据rowData来生成表格 jt.setRowHeight(0,30);//以下几行设置表格行间距等 jt.setRowHeight(25); jt.setRowMargin(5); jsp=newJScrollPane(jt); jf.setContentPane(jsp); jf.validate(); } publicvoiddisplayWorkers2()//用表格组件jt显示变量rowData的数据,其中数据从数据库中查询得到 { Vector<String>columns=newVector<String>();//表格表头中的显示数据,6个列名存储在向量中 columns.add("员工编号");columns.add("员工姓名");columns.add("工资日期");columns.add("员工底薪"); columns.add("加班奖金");columns.add("迟到扣除");columns.add("房租费用");columns.add("实发工资"); jt=newJTable(rowData,columns);//用表头vector和数据库中取得数据rowData来生成表格 jt.setRowHeight(0,30);//以下几行设置表格行间距等 jt.setRowHeight(25); jt.setRowMargin(5); jsp=newJScrollPane(jt); jf.setContentPane(jsp); jf.validate(); } publicvoiddisplayWorkers3()//用表格组件jt显示变量rowData的数据,其中数据从数据库中查询得到 { Vector<String>columns=newVector<String>();//表格表头中的显示数据,6个列名存储在向量中 columns.add("员工编号");columns.add("员工姓名");columns.add("考勤日期");columns.add("本月天数"); columns.add("出勤");columns.add("缺勤");columns.add("早退");columns.add("加班"); jt=newJTable(rowData,columns);//用表头vector和数据库中取得数据rowData来生成表格 jt.setRowHeight(0,30);//以下几行设置表格行间距等 jt.setRowHeight(25); jt.setRowMargin(5); jsp=newJScrollPane(jt); jf.setContentPane(jsp); jf.validate(); }}员工考勤信息的程序:import

java.sql.Connection;

import

java.sql.DriverManager;

import

java.sql.PreparedStatement;

import

java.sql.ResultSet;

import

java.sql.Statement;

import

java.util.Vector;

import

javax.swing.JTable;

public

class

KqAdmin

{

Connection

con;

String

sql;

Statement

statement;

PreparedStatement

pstmt;

ResultSet

rs;

int

result;

public

KqAdmin()

{

}

public

void

dbConnect(){

try

{

Class.forName("com.mysql.jdbc.Driver");//

加载驱动程序

con

=

DriverManager.getConnection(

"jdbc:mysql://localhost/qyrs?useUnicode=true&characterEncoding=utf-8",

"root",

"");

}catch

(Exception

ex)

{

System.out.println(ex);

}

}

public

void

dbClose(){

try

{

//if(rs.next())rs.close();

if(!con.isClosed())

con.close();

}catch

(Exception

ex)

{

System.out.println(ex);

}

}

public

void

queryAll(Vector<Vector<String>>

rowData){

if(!rowData.isEmpty())

rowData.clear();

dbConnect();

try

{

sql="SELECT

ygid,ygname,kqdate,kqdays,kqwork,kqabsent,kqearly,kqover

FROM

ygkqgl";

pstmt

=

con.prepareStatement(sql);//

数据库操作

rs

=

pstmt.executeQuery();

rsToRowData(rowData);

}catch

(Exception

ex)

{System.out.println(ex);}

dbClose();

}

public

void

queryByYgid(Vector<Vector<String>>

rowData,String

ygid){

if(!rowData.isEmpty())

rowData.clear();

dbConnect();

try

{

sql="SELECT

ygid,ygname,kqdate,kqdays,kqwork,kqabsent,kqearly,kqover

FROM

ygkqgl

where

ygid=?";

pstmt

=

con.prepareStatement(sql);//

数据库操作

pstmt.setString(1,

ygid);

rs

=

pstmt.executeQuery();

rsToRowData(rowData);

}catch

(Exception

ex)

{System.out.println(ex);}

dbClose();

}

public

void

rsToRowData(Vector<Vector<String>>

rowData){

try

{

if

(!rs.next()){}

else

{

do{

Vector<String>

row=new

Vector<String>();

row.add(rs.getString("ygid"));

row.add(rs.getString("ygname"));

row.add(rs.getString("kqdate"));

row.add(rs.getString("kqdays"));

row.add(rs.getString("kqwork"));

row.add(rs.getString("kqabsent"));

row.add(rs.getString("kqearly"));

row.add(rs.getString("kqover"));

rowData.add(row);

}

while

(rs.next());

}

}catch(Exception

ex)

{

System.out.println(ex);

}

}

public

void

queryByYgname(Vector<Vector<String>>

rowData,String

ygname){

if(!rowData.isEmpty())

rowData.clear();

dbConnect();

try

{

sql="SELECT

ygid,ygname,kqdate,kqdays,kqwork,kqabsent,kqearly,kqover

FROM

ygkqgl

where

ygname=?";

pstmt

=

con.prepareStatement(sql);//

数据库操作

pstmt.setString(1,

ygname);

rs

=

pstmt.executeQuery();

rsToRowData(rowData);

}catch

(Exception

ex)

{System.out.println(ex);}

dbClose();

}

}员工评价信息程序:import

java.sql.Connection;

import

java.sql.DriverManager;

import

java.sql.PreparedStatement;

import

java.sql.ResultSet;

import

java.sql.Statement;

import

java.util.Vector;

import

javax.swing.JTable;

public

class

PjAdmin

{

Connection

con;

String

sql;

Statement

statement;

PreparedStatement

pstmt;

ResultSet

rs;

int

result;

public

PjAdmin()

{

}

public

void

dbConnect(){

try

{

Class.forName("com.mysql.jdbc.Driver");//

加载驱动程序

con

=

DriverManager.getConnection(

"jdbc:mysql://localhost/qyrs?useUnicode=true&characterEncoding=utf-8",

"root",

"");

}catch

(Exception

ex)

{

System.out.println(ex);

}

}

public

void

dbClose(){

try

{

//if(rs.next())rs.close();

if(!con.isC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论