数据库课程设计企业工资管理系统

合集下载

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统一、引言工资是公司和员工之间的一种交换方式,是员工为公司所做的工作得到相应报酬的一种形式。

在一个公司或组织中,工资管理系统是一项重要的任务,它涉及到员工信息、薪资核算、工资发放、工资统计等内容。

为了提高工资管理的效率和准确性,设计一个合理的数据库是非常重要的。

二、数据库设计目标1.提供员工信息的录入和管理功能;2.提供员工工资的计算和发放功能;3.提供工资统计和报表生成功能;4.提供数据的安全和备份功能。

三、数据库设计方案1.员工信息表设计2.薪资核算表设计薪资核算表是根据员工的职位和工作时长计算薪资的依据。

薪资核算表包含员工ID、员工姓名、职位、工作时长、基本工资、加班工资、补贴等字段。

根据这些字段进行合理的计算,得出员工的最终工资。

3.工资发放表设计工资发放表记录了每一次工资的发放情况,包括员工ID、员工姓名、发放时间、工资金额等字段。

可以根据这些字段进行工资的发放和工资单的打印。

4.工资统计表设计工资统计表主要用于统计和分析公司员工的工资情况,如平均工资、最高工资、最低工资等。

可以根据职位、部门等维度进行统计,生成相应的报表和图表。

5.数据库安全与备份方案为了保障数据的安全和完整性,需要对数据库进行安全设置。

可以设置访问权限,只允许授权人员进行数据的录入、修改和查询。

此外,还需要定期备份数据库,以防止数据丢失。

四、数据库设计实施1. 选取合适的数据库软件,如MySQL、Oracle等;2.创建数据库,并创建员工信息表、薪资核算表、工资发放表、工资统计表等表结构;3.设计合适的数据录入界面,用于员工信息的录入和管理;4.设计薪资计算和发放功能,确保工资的准确性和及时性;5.设计工资统计和报表生成功能,方便管理层进行分析和决策;6.设置数据库的安全权限,并定期备份数据库。

五、数据库设计总结工资管理系统是一个关键的人力资源管理系统,数据库设计的合理性和准确性直接影响到工资管理的效率和准确性。

通用工资管理系统数据库课程设计

通用工资管理系统数据库课程设计

通用工资管理系统数据库课程设计随着信息技术的快速发展,各行各业都在不断地引入计算机系统来提高工作效率和管理水平。

在企业管理中,工资管理是一个非常重要的环节,直接关系到员工的薪酬福利和企业的运营成本。

为了更好地管理和控制工资发放,许多企业开始引入通用工资管理系统。

通用工资管理系统是一种基于数据库的软件系统,它能够实现对员工工资信息的录入、计算、查询和统计等功能。

在数据库课程设计中,我们将设计一个通用工资管理系统的数据库,以满足企业对工资管理的需求。

首先,我们需要设计员工信息表。

该表包括员工编号、姓名、性别、年龄、职位、部门等字段。

员工编号作为主键,用于唯一标识每个员工。

姓名、性别、年龄、职位和部门等字段用于描述员工的基本信息。

其次,我们需要设计工资信息表。

该表包括员工编号、基本工资、津贴、奖金、扣款等字段。

员工编号作为外键,与员工信息表中的员工编号字段关联起来。

基本工资字段用于记录员工的基本薪酬,津贴字段用于记录员工的额外福利,奖金字段用于记录员工的绩效奖金,扣款字段用于记录员工的罚款或扣除。

接下来,我们需要设计工资发放表。

该表包括员工编号、发放日期、发放金额等字段。

员工编号作为外键,与员工信息表中的员工编号字段关联起来。

发放日期字段用于记录工资的发放日期,发放金额字段用于记录工资的具体金额。

此外,我们还需要设计部门表和职位表。

部门表包括部门编号和部门名称等字段,职位表包括职位编号和职位名称等字段。

这两个表用于描述员工所属的部门和职位信息。

最后,我们需要设计用户表和权限表。

用户表包括用户名和密码等字段,权限表包括权限编号和权限名称等字段。

用户表用于记录系统的用户信息,权限表用于记录用户的权限信息。

通过以上的数据库设计,我们可以实现对员工工资信息的录入、计算、查询和统计等功能。

管理员可以通过系统录入员工的基本信息和工资信息,系统会自动计算出员工的实际工资并记录下来。

员工和管理员可以通过系统查询和统计工资信息,了解自己的薪酬情况和企业的工资发放情况。

工资管理系统数据库课程设计源码

工资管理系统数据库课程设计源码

一、课程设计主题介绍本次课程设计的主题为工资管理系统数据库,旨在通过设计一个完善的工资管理系统数据库,实现对公司员工工资信息的管理和查询功能。

工资管理系统是企业日常管理中不可或缺的一部分,良好的工资管理系统能够有效提高企业的管理效率和员工的工作积极性,具有重要的实际意义。

二、系统需求分析1. 用户需求:系统应具有权限管理、员工信息管理、薪资发放管理等功能,不同用户拥有不同的操作权限。

2. 数据需求:系统需要存储员工基本信息、薪资信息、考勤信息等数据。

3. 界面需求:系统应具有友好的操作界面,用户操作简单方便。

4. 安全需求:系统要保证数据的安全性,防止未授权人员获取敏感信息。

三、系统设计思路1. 数据库设计:设计员工表、薪资表、权限表等数据库表结构,确保数据存储的规范性和完整性。

2. 功能设计:设计权限管理模块、员工信息管理模块、薪资发放管理模块等系统功能。

3. 界面设计:设计简洁清晰的操作界面,使用户能够轻松上手。

4. 安全设计:采用加密算法保护用户信息,设置严格的权限控制,防止数据泄露和篡改。

四、系统技术选型本系统选用MySQL数据库存储数据,采用Python语言进行后台逻辑开发,使用Django框架进行Web应用开发,前端界面采用HTML、CSS和JavaScript技术实现。

五、系统功能实现1. 权限管理:管理员用户可以设置不同用户的权限,包括查看员工信息、修改薪资、导出报表等操作。

2. 员工信息管理:实现员工信息的增加、修改、删除、查询等功能,包括基本信息、通联方式、部门信息等。

3. 薪资发放管理:实现对员工薪资的发放、调整、查询等功能,包括工资条生成、导出等。

4. 数据统计报表:系统可以生成各类工资统计报表,包括月度工资报表、年度工资报表等。

六、系统调试和测试在系统开发完成后,对系统进行全面的功能测试和性能测试,确保系统稳定可靠、业务流程正常、响应速度合理等。

七、系统部署和运行系统部署到服务器上,对外提供访问服务,确保系统在日常运行中稳定运行。

数据库课程设计——企业员工工资管理系统

数据库课程设计——企业员工工资管理系统

数据库课程设计——企业员工工资管理系统一、引言在现代企业管理中,员工工资的管理是一个极为重要的环节。

为了提高工资管理的效率和准确性,需要设计和实现一套高效的企业员工工资管理系统。

本文将介绍如何在数据库课程设计中构建一个功能完善的企业员工工资管理系统。

二、系统需求分析企业员工工资管理系统需要满足以下基本需求:1. 员工信息管理:包括员工基本信息(姓名、性别、年龄等)、部门信息、职位信息等。

2. 工资计算:根据员工的基本工资、绩效考核等因素计算工资。

3. 工资发放:自动生成工资发放单,记录工资发放的时间和方式。

4. 工资查询:员工和管理人员能够查询工资详细信息,包括工资单、工资发放记录等。

5. 统计报表:生成各种工资统计报表,如部门工资总额、员工工资排名等。

三、系统设计与实现1. 数据库设计为了满足系统需求,需要设计一组适当的数据库表来存储相关数据。

以下是数据库表的设计方案:- 员工表(Employee):存储员工的基本信息(员工编号、姓名、性别、年龄等)。

- 部门表(Department):存储部门的信息(部门编号、部门名称等)。

- 职位表(Position):存储职位信息(职位编号、职位名称等)。

- 工资表(Salary):存储员工的工资信息(员工编号、基本工资、绩效等)。

- 工资发放表(SalaryPayment):记录工资的发放信息(员工编号、发放时间、发放方式等)。

2. 系统实现利用SQL语言和数据库管理系统,可以实现员工工资管理系统的各项功能需求。

以下是关键功能的实现示例:- 员工信息管理:通过SQL语句实现员工信息的增加、删除、修改和查询操作。

- 工资计算:编写SQL函数或存储过程来计算员工的工资,考虑到绩效考核等因素。

- 工资发放:编写SQL语句插入工资发放记录,记录发放时间和方式等信息。

- 工资查询:编写SQL语句实现员工和管理人员的工资查询功能,根据需要生成工资单。

- 统计报表:通过SQL语句生成工资统计报表,利用聚合函数和分组操作实现部门工资总额、员工工资排名等统计指标的计算。

数据库课程设计--工资管理系统

数据库课程设计--工资管理系统

数据库课程设计设计题目:工资管理系统班级:学号:姓名:任务分配表目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八附件 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。

提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。

基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。

基本上能满足管理员和公司的要求。

此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。

需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。

主要包括两大大功能模块:1.管理员管理界面设计。

2.员工管理界面设计。

二、需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、工资奖金信息查询)、工资管理(计算总工资、奖金管理);通过输入密码,可以进行查询员工的数据(工资,奖金,税收等)。

具体功能的详细描述如下1、在首页进行选择,员工与管理员通道2、点击[管理员登陆]3、用户名和密码即可进入 [工资管理]功能窗体,在此可以选择功能,添加,查询,人员列表4、点击[添加]功能窗体,添加员工工资信息。

5、点击[查询]功能窗体,输入员工号即可查询员工信息。

6、点击[人员列表]功能窗体,可查看所有员工的列表,这界面内可以进行删除操作。

7、点击[员工登陆]8、用户名和密码即可进入 [员工工资查询]功能窗体,在此可以选择查询基本信息,查询工资信息。

9、在[查询基本信息],员工可自己查看自己的信息。

10、在[查询工作信息],员工可自己查看自己的工作信息。

数据库课程设计-工资管理系统

数据库课程设计-工资管理系统
可维护性
采用模块化设计,降低系统复 杂度,方便后期维护和升级。
用户需求
员工
能够查看自己的工资条和考勤记录, 了解自己的收入情况和出勤状况。
人力资源部门
企业管理层
通过系统报表了解企业整体薪资状况 、人力成本及员工绩效等情况,为企 业战略制定和人力资源管理提供依据 。
能够管理员工信息、工资信息和考勤 信息,生成各类报表,为企业管理层 提供决策支持。
问题解决能力
在项目设计和实现过程中,遇到了很多问题和挑战,通过 不断思考和尝试,我逐渐提高了自己的问题解决能力。
对未来研究的展望
数据库新技术研究
随着大数据、云计算等技术的不断发展,数据库技术也在不断演进。未来可以关注和研究 分布式数据库、图数据库等新技术,以满足不同应用场景的需求。
数据库应用拓展
除了传统的企业级应用外,数据库在物联网、人工智能等领域也有广泛的应用前景。未来 可以探索和研究数据库在这些领域的应用和拓展。
系统评估
功能完整性
评估系统是否实现了所有预定的功能,如工 资录入、查询、统计、分析等。
性能稳定性
测试系统在不同负载下的性能表现,如响应 时间、数据处理速度等。
易用性
评估系统的用户界面是否友好,操作是否简 便易懂。
安全性
检查系统的安全机制,如用户权限管理、数 据加密等是否完善。
改进意见与建议
增加数据校验机制
数据库设计
1 2 3
数据库选型
选用关系型数据库管理系统(RDBMS),如 MySQL、Oracle或SQL Server等,确保数据的 完整性和安全性。
数据表设计
根据业务需求设计合理的数据表结构,包括员工 信息表、工资明细表、部门信息表等,定义主键 、外键和索引等约束条件。

工资管理系统的数据库课程设计

工资管理系统的数据库课程设计

课程设计报告书年 月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语句,并给出运行结果。

数据库课程设计—企业工资管理系统(java版+完整代码)经典.doc

数据库课程设计—企业工资管理系统(java版+完整代码)经典.doc

课程设计报告企业工资管理系统姓名XXX班级XXXXX学号XXXXXX课程名称数据库原理及应用指导教师201X年X月X日目录一.工资管理系统需求分析…………………………………1.1功能需求…………………………………………………1.1.1功能划分………………………………………1.1.2功能描述……………………………………………1.2性能需求…………………………………………………1.3数据流图………………………………………………二.总体设计…………………………………………………2.1数据库概念设计…………………………………………2.2功能模块…………………………………………………三.系统详细设计……………………………………………3.1数据库逻辑设计…………………………………………3.2各模块功能………………………………………………3.2.1职工信息管理系统…………………………………3.2.2职工工资管理系统…………………………………3.2.3职工津贴管理系统…………………………………四.系统实现…………………………………………………4.1界面截图…………………………………………………4.1.1主界面及工资基本信息界面……………………4.1.2登录界面…………………………………………4.1.3系统主界面………………………………………4.1.4信息录入,修改,删除,查询界面…………4.2设计代码…………………………………………………五.实验总结…………………………………………………1、需求分析1.1功能需求1.1.1功能划分(1)、员工信息表;及时反映员工的基本信息(2)、员工津贴表,反映员工津贴(3)、员工基本工资表1.1.2 功能描述(1)、基本工资的设定(2)、津贴的设定(3)、计算出月工资(4)、录入员工工资信息(5)、添加员工工资信息(6)、更改员工工资信息1.2性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。

企业工资管理系统数据库课程设计(DOC 35页)

企业工资管理系统数据库课程设计(DOC 35页)

企业工资管理系统数据库课程设计(DOC 35页)企业工资管理系统目录第一章绪论 (1)1.1数据库管理系统 (1)1.2企业工资管理系统 (1)1.3开发工具 (1)第二章员工工资管理系统设计分析 (2)2.1应用需求与分析 (2)2.2系统模块划分 (2)2.3系统数据库设计 (3)第三章:企业工资管理系统应用程序设计 (4)3.1系统图 (4)3.1.1系统的数据流图 (4)3.1.2系统的流程图 (5)3.1.3系统模块的具体划分 (6)3.2跳转界面设计 (7)3.2“选择登陆用户模块”详细设计………………………………………83.4管理员登录………………………………………………………………103.4.1“登录模块”详细设计………………………………………………103.4.2主窗体模块设计………………………………………………………133.4.3员工注册界面及功能…………………………………………………153.4.4删除员工信息界面及功能……………………………………………183.4.5修改及查询员工工资界面及功能……………………………………203.4.6工资设定界面及功能…………………………………………………233.4.7职位管理界面及功能…………………………………………………253.4.8其他功能………………………………………………………………283.5员工登陆模块……………………………………………………………29第四章:运行与测试 (31)4.1系统运行………………………………………………………………314.2系统测试………………………………………………………………31第五章:实验心得 (32)第一章绪论1.1数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。

DBMS是数据库系统的核心组成部分。

对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。

DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。

工资系统数据库课程设计

工资系统数据库课程设计

工资系统数据库课程设计一、课程目标知识目标:1. 理解数据库在工资管理系统中的应用和重要性;2. 掌握工资管理系统的基本功能模块及其数据表结构设计;3. 学会运用SQL语句进行工资数据的查询、插入、更新和删除操作;4. 了解数据库的安全性和一致性原则在工资系统中的应用。

技能目标:1. 能够独立设计并实现一个简单的工资管理系统数据库;2. 能够运用所学知识,对工资数据进行有效管理和维护;3. 能够通过数据库查询和分析,解决工资管理中的实际问题;4. 学会使用数据库管理工具(如:MySQL、Oracle等)进行数据操作。

情感态度价值观目标:1. 培养学生对数据库技术在工资管理系统中的应用产生兴趣,提高学习积极性;2. 培养学生严谨、细心的数据处理能力和团队合作精神;3. 增强学生对信息技术的认识,使其意识到信息技术在企业管理中的重要作用;4. 培养学生尊重劳动、诚实守信的品质,提高社会责任感。

课程性质:本课程为实践性较强的课程,以培养学生的实际操作能力和解决问题的能力为主。

学生特点:学生具备一定的数据库基础知识和计算机操作技能,但可能对工资管理系统的实际应用了解不多。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力和分析解决问题的能力。

在教学过程中,关注学生的学习进度和情感态度,确保课程目标的实现。

通过课程学习,使学生能够将所学知识应用于实际工作中,提高其职业素养。

二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念和功能模块;- 分析工资管理系统的业务流程。

2. 数据库设计基础- 学习数据库设计的基本原则和步骤;- 掌握实体关系模型和关系数据库设计方法。

3. 工资管理系统数据库设计- 设计工资管理系统所需的数据表结构;- 学习如何建立实体和关系,并进行属性定义。

4. SQL语句操作- 掌握SQL基本操作(查询、插入、更新、删除);- 学习运用SQL语句对工资数据进行管理。

javaMySql数据库课程设计(员工工资管理系统)

javaMySql数据库课程设计(员工工资管理系统)

Java MySql数据库课程设计 - 员工工资管理系统1. 引言在现代企业中,员工工资管理是一项非常重要的任务。

合理管理员工工资不仅可以激励员工的积极性,还可以提高企业的运营效率。

为了更好地管理员工工资,我们决定设计一个员工工资管理系统,使用Java编程语言与MySql数据库进行开发。

2. 功能需求该员工工资管理系统将包含以下功能模块: - 员工信息管理:包括添加员工、删除员工、查看员工信息、修改员工信息等功能。

- 工资管理:包括录入员工工资、计算员工工资、查询员工工资等功能。

- 统计分析:包括统计部门工资总和、统计员工工资平均值等功能。

3. 技术选型为了实现上述功能需求,我们选择使用Java编程语言与MySql数据库进行开发。

以下是我们选择这些技术的原因: - Java是一种面向对象的编程语言,具有良好的可读性和可维护性,适合开发大型项目。

- MySql是一种关系型数据库管理系统,具有高性能和可扩展性,适合处理大量的数据。

4. 数据库设计4.1 数据表设计我们将设计两个数据表来存储员工信息和工资信息。

4.1.1 员工信息表字段名称数据类型说明id int员工IDname varchar员工姓名age int员工年龄gender varchar员工性别department varchar员工部门4.1.2 工资信息表字段名称数据类型说明id int工资IDemployee_id int员工IDmonth varchar月份salary decimal工资金额4.2 数据库查询语句以下是一些常用的数据库查询语句,用于实现系统功能模块:4.2.1 添加员工INSERT INTO employee (id, name, age, gender, d epartment)VALUES (1001, '张三', 25, '男', '技术部');4.2.2 删除员工DELETE FROM employee WHERE id=1001;4.2.3 查看员工信息SELECT*FROM employee;4.2.4 修改员工信息UPDATE employee SET age =26WHERE id=1001;4.2.5 录入员工工资INSERT INTO salary (id, employee_id, month, sa lary)VALUES (1, 1001, '2021-01', 5000);4.2.6 计算员工工资SELECT SUM(salary) FROM salary WHERE employee_ id =1001;4.2.7 查询员工工资SELECT*FROM salary;4.2.8 统计部门工资总和SELECT department, SUM(salary) FROM employee JOIN salary ON employee.id= salary.employee_id GROUP BY department;4.2.9 统计员工工资平均值SELECT employee_id, AVG(salary) FROM salary GROUP BY employee_id;5. 系统架构为了提高系统的扩展性和灵活性,我们将采用三层架构来设计该员工工资管理系统。

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统工资管理系统是一个用于管理公司员工工资信息的数据库系统。

该系统旨在提高工资管理的效率和准确性,减少人工管理过程中的错误和延误。

本数据库设计报告将详细介绍工资管理系统的数据库设计方案。

一、需求分析在进行数据库设计之前,首先需要进行详细的需求分析。

根据用户需求,工资管理系统应具备以下功能:1.员工信息管理:包括员工基本信息、职位、部门等。

2.薪资信息管理:包括员工工资、奖金、津贴等。

3.薪资计算:根据员工基本信息和薪资信息,计算每个员工的实际工资。

4.工资发放:记录每次工资发放的日期、金额等信息。

5.统计分析:能够对员工的薪资进行统计分析,如最高工资、最低工资、平均工资等。

二、数据库设计2.1实体分析根据需求分析,确定了以下实体:员工、部门、岗位、薪资、薪资发放记录。

2.2属性分析具体的实体和属性设计如下:员工(Employee):- 员工编号(EmployeeID):主键,自动生成。

- 姓名(Name)- 性别(Gender)- 出生日期(Birthday)- 手机号码(Phone)- 部门编号(DepartmentID):外键,关联部门表。

部门(Department):- 部门编号(DepartmentID):主键,自动生成。

- 部门名称(DepartmentName)岗位(Position):- 岗位编号(PositionID):主键,自动生成。

- 岗位名称(PositionName)薪资(Salary):- 薪资编号(SalaryID):主键,自动生成。

- 员工编号(EmployeeID):外键,关联员工表。

- 岗位编号(PositionID):外键,关联岗位表。

- 基本工资(BasicSalary)- 奖金(Bonus)- 津贴(Allowance)薪资发放记录(Payment):- 记录编号(RecordID):主键,自动生成。

- 员工编号(EmployeeID):外键,关联员工表。

工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告
设计工资管理系统的数据库需要考虑以下几个方面:
1.数据表设计:需要设计一个数据表来存储员工信息,包括员工ID、员工姓名、员工工资、员工职位等字段。

同时还需要设计一个数据表来存储薪资信息,包括薪资ID、员工ID、薪资水平、薪酬结构等字段。

两个数据表需要进行关联关系的设计,以实现员工信息与薪资信息的存储和查询。

2.关系设计:需要设计一个关系来将员工信息和薪资信息进行关联。

可以使用主外键关系来实现,其中员工信息表的主键是员工ID,薪资信息表的主键是薪资ID。

这样可以保证两个数据表的关联关系正确无误。

3.功能设计:需要考虑工资管理系统的各项功能,包括员工信息查询、薪资信息查询、员工信息修改、薪资信息修改等。

需要根据功能设计相应的操作界面和业务逻辑。

4.安全性设计:需要考虑工资管理系统的安全性,包括用户权限管理、数据备份和恢复、安全漏洞检测和修复等。

需要设计合适的安全措施,以保证数据和系统的安全。

5.性能设计:需要考虑工资管理系统的性能,包括查询速度、存储容量、数据更新速度等。

需要根据实际情况进行性能优化,以保证系统正常运行。

6.数据库备份和恢复:需要考虑数据库备份和恢复的能力,包括备份策略、备份文件大小、备份频率、恢复操作等。

需要设计合理的
备份和恢复方案,以保证数据的安全和完整性。

以上是设计工资管理系统数据库课程设计的几个方面,当然还有其他需要注意的问题,需要根据具体情况进行分析和设计。

企业工资管理系统数据库课程设计

企业工资管理系统数据库课程设计

企业工资管理系统数据库课程设计1企业工资管理系统目录第一章绪论 (1)1.1数据库管理系统 (1)1.2企业工资管理系统 (1)1.3开发工具……………………………………………………………………1第二章员工工资管理系统设计分析 (2)2.1应用需求与分析 (2)2.2系统模块划分 (2)22.3系统数据库设计 (3)第三章:企业工资管理系统应用程序设计 (4)3.1系统图 (4)3.1.1系统的数据流图 (4)3.1.2系统的流程图 (5)3.1.3系统模块的具体划分 (6)3.2跳转界面设计 (7)3.2”选择登陆用户模块”详细设计 (8)3.4管理员登录 (10)3.4.1”登录模块”详细设计 (10)3.4.2主窗体模块设计 (13)33.4.3员工注册界面及功能 (15)3.4.4删除员工信息界面及功能 (18)3.4.5修改及查询员工工资界面及功能 (20)3.4.6工资设定界面及功能 (23)3.4.7职位管理界面及功能 (25)3.4.8其它功能 (28)3.5员工登陆模块 (29)第四章:运行与测试 (31)4.1系统运行 (31)4.2系统测试 (31)第五章:实验心得 (32)4第一章绪论1.1数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。

DBMS是数据库系统的核心组成部分。

对数据库的一切操作,包括定义、更新及各种控制,都是经过DBMS进行的。

DBMS总是5。

数据库课程设计-工资管理系统

数据库课程设计-工资管理系统

1 需求分析工资管理系统是提供工资管理人员和职工工资进行管理的系统。

它能自动对不同职务,不同出勤及各个月份的工资进行管理并生成财务表。

工资管理系统的用户需求主要功能有:1各部门的信息情况2各职工的信息情况3考勤信息情况4工资信息情况5定义登陆用户和用户的权限2 概念分析(1)部门E-R图(2)职工信息E-R图(3)职务信息E-R图(4)考勤信息E-R图(5)用户E-R图(6)工资情况E-R图(7)总E-R图3 逻辑设计关系模型:部门(部门编号(主键),部门名称,经理,电话)职工信息(职工编号(主键),职务编号,姓名,性别,电话,住址,部门编号(外键))考勤情况(职工编号(主键),出勤天数,加班天数,出勤奖金,月份)职务(职务编号(主键),职务名称(主键),基本工资)工资计算(职工编号(主键),考勤情况,工资,月份)用户(用户名,密码,权限)4 物理设计1 给职工信息表建立非聚集索引“职工”/*给职工信息表非建立聚集索引*/create nonclustered index职工on职工信息(职工编号) goSELECT*FROM sys.indexesWHERE name='职工'2给工资表建立唯一索引“工资”/*给工资表建立唯一索引“工资”*/create unique index工资on工资情况(职工编号)goSELECT*FROM sys.indexesWHERE name='工资'Go3给考勤信息表建立聚集索引“考勤”/*给考勤信息表建立非聚集索引*/create nonclustered index考勤on考勤信息(职工编号) goSELECT*FROM sys.indexesWHERE name='考勤'5 实施过程(1)创建表结构1 职工信息表create table 职工信息(职工编号char(20) not null, 职务编号char(20) not null, 姓名varchar(20) not null, 性别char(20) not null,电话char(20) not null,住址varchar(20) not null, 部门编号 char(20)not null )2职务信息表create table 职务信息(职务编号char(20) not null, 职务名称char(20) not null, 基本工资money)3工资表create table 工资情况(月份char(20) not null,员工编号char(20) not null, 工资char(20) not null)4考勤信息表create table 考勤信息(职工编号 varchar(40) not null, 出勤天数char(20) not null,加班天数char(20) not null,出勤奖金money)5部门表create table 部门(部门编号char(20) not null, 部门名称char(20) not null, 经理varchar(20) not null, 电话char(20) not null)6用户表create table 用户(用户名char(10) not null,密码char(30) not null,权限char(30))(2)给表定义约束1 给考勤情况中的出勤奖金列定义约束范围0-10002 给部门表添加一个主键3 给职工信息表添加一个主键和外键(3)给表插入信息1 职工信息表插入2 职务信息表插入3 用户信息表插入4工资情况表插入5 部门表插入6考勤情况表插入(4)表的基本操作1 修改职工信息中编号为10001的姓名为张琪2 给职务信息表添加一列3 删除刚才添加的那列4 修改工资情况表中工资的数据类型5 给考勤信息表增加一列(5)定义登录名,用户和权限1 定义第一个登录名和用户,权限对所有的表有所有的权限/*创建用户和赋予权限*/create login 王琦with password='123456',default_database=员工工资管理;/*创建登录账户*/gocreate user 王琦for login 王琦gogrant allon 部门to 王琦grant allon 工资情况to 王琦grant allon 考勤信息to 王琦grant allon 用户to 王琦grant allon 职工信息to 王琦grant allon 职务信息to 王琦2 创建第二个登录名和用户,对所有的表只有查看和删除的权限create login 高汉with password='123456',default_database=员工工资管理;/*创建登录账户*/ gocreate user 高汉for login 高汉gogrant select,deleteon 部门to 高汉grant select,deleteon 工资情况to 高汉grant select,deleteon 考勤信息to 高汉grant select,deleteon 用户to 高汉grant select,deleteon 职工信息to 高汉grant select,deleteon 职务信息to 高汉3 创建第三个登录名和用户,只有查看的权限/*创建第三个用户并赋予所有权限*/create login 王敏with password='123456',default_database=员工工资管理;/*创建登录账户*/gocreate user 王敏for login 王敏gogrant selecton 部门to 王敏grant selecton 工资情况to 王敏grant selecton 考勤信息to 王敏grant selecton 用户to 王敏grant selecton 职工信息to 王敏grant selecton 职务信息to 王敏(6) 建立一个触发器,在工资情况表被修改时使用/*建立一个触发器*/create trigger mon 工资情况for updateasif update(工资)beginrollback tranprint'基本工资不能修改,请联系财务部'end(6) 建立存储过程1创建一个存储过程来存放查询到的职工的信息和工资2创建一个存储过程来存放进行删除操作3创建一个存储过程来存放查询所有职工中工资大于3500的(7) 建立一个视图设计文档目录6 课程设计总结本次课程设计调查从职员的工资,部门的情况,根据其具体情况,设计工资管理系统。

sql数据库课程设计工资管理系统

sql数据库课程设计工资管理系统
数据库物理设计的目标是提高数据库的性能、可靠性和可维护性。
数据库物理设计的主要内容包括:数据库存储结构设计、数据库存储介质设计、数据库存 储方式设计等。
数据库物理设计的主要任务是:根据数据库的逻辑设计,选择合适的存储结构、存储介质 和存储方式,以满足数据库的性能、可靠性和可维护性的要求。
系统功能模块
系统维护: 定期检查 和维护系 统,确保 系统正常 运行
数据库设计
数据库概念设计
概念设计:根据需求分析,确定数据库的逻辑结构 实体关系模型:描述实体、属性和关系的模型 规范化:将数据库设计成符合一定规范的形式 设计原则:遵循一定的设计原则,如第三范式等 设计工具:使用数据库设计工具,如PowerDesigner等 设计文档:编写数据库设计文档,包括数据字典、ER图等
用户管理模块
用户注册:新用户注册,填写个人信息 用户登录:用户登录系统,验证用户名和密码 用户信息修改:用户修改个人信息,如密码、联系方式等 用户权限管理:设置用户权限,如管理员、普通用户等 用户注销:用户注销账户,删除个人信息 用户查询:查询用户信息,如用户名、联系方式等
工资管理模块
员工信息管 理:添加、 修改、删除 员工信息
数据库逻辑设计
实体关系模型(ERM):描述实体、属性和关系的模型 关系模型(RM):描述数据存储和操作的模型 规范化理论:确保数据完整性和一致性的理论 事务处理:保证数据操作的原子性、一致性、隔离性和持久性的技术
数据库物理设计
数据库物理设计是数据库设计的重要组成部分,它涉及到数据库的存储结构、存储介质、 存储方式等方面的设计。
系统维护策略
定期备份数据:确保数据安全,防止数据丢失 定期更新软件:确保系统安全,防止病毒和漏洞攻击 定期检查硬件:确保硬件正常运行,防止硬件故障 定期培训员工:确保员工熟练掌握系统操作,提高工作效率

数据库课程设计说明书工资管理系统

数据库课程设计说明书工资管理系统

数据库课程设计说明书工资管理系统目录第一章系统概述 (3)1.1 公司工资管理系统 (3)第二章需求分析 (4)2.1 信息要求 (4)2.2处理要求 (4)2.3安全性与完整性要求 (4)2.3.1处理要求 (4)2.3.2处理要求 (5)第三章数据库设计 (6)3.1 概念设计 (6)3.1.1实体及属性值 (6)3.1.2 实体图 (6)3.1.3 E—R图 (11)3.2 逻辑设计 (12)3.2.1 ER模型转化为关系模型 (12)3.3物理设计 (12)第四章软件功能设计 (14)4.1 系统功能分析 (14)4.1.1 查询功能 (14)4.1.2 设置计算公式 (15)4.1.3 统计工资 (15)4.2 系统功能模块设计 (15)第五章窗体设计及程序代码 (16)5.1 窗体设计 (16)5.1.1 登录窗体设计 (16)5.1.2 菜单窗体设计 (16)5.1.3 添加查询窗体设计 (17)5.1.5 设置计算公式窗体设计 (19)5.2 代码设计 (19)5.2.1 登录窗体代码设计 (19)5.2.2 菜单窗体代码设计 (20)5.2.3 统计工资窗体代码设计 (21)5.2.4 设置计算公式窗体代码设计 (24)第六章设计心得 (25)参考资料 (26)第一章系统概述1.1 公司工资管理系统随着计算机技术的飞速发展,计算机在企业管理中的应用也越来越普及,利用计算机实现企业工资的管理显得越来越重要。

对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求,推动企业劳动人事管理走向科学化、规范化的必要条件:而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,如果实行手工操作,每月发放工资须填制大量的表格,这就会耗费工作人员大量的精力和时间,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,计算机具有人工无法比拟的优点。

数据库课程设计—企业工资管理系统

数据库课程设计—企业工资管理系统

数据库课程设计—企业工资管理系统课程设计报告201X年X月X日企业工资管理系统姓名XXX班级XXXXX学号XXXXXX课程名称数据库原理及应用指导教师目录一.工资管理系统需求分析…………………………………1.1功能需求…………………………………………………1.1.1功能划分………………………………………1.1.2功能描述……………………………………………1.2性能需求…………………………………………………1.3数据流图………………………………………………二.总体设计…………………………………………………2.1数据库概念设计…………………………………………2.2功能模块…………………………………………………三.系统详细设计……………………………………………3.1数据库逻辑设计…………………………………………3.2各模块功能………………………………………………3.2.1职工信息管理系统…………………………………3.2.2职工工资管理系统…………………………………3.2.3职工津贴管理系统…………………………………四.系统实现…………………………………………………4.1界面截图…………………………………………………4.1.1主界面及工资基本信息界面……………………4.1.2登录界面…………………………………………4.1.3系统主界面………………………………………4.1.4信息录入,修改,删除,查询界面…………4.2设计代码…………………………………………………五.实验总结…………………………………………………1、需求分析1.1功能需求1.1.1功能划分(1)、员工信息表;及时反映员工的基本信息(2)、员工津贴表,反映员工津贴(3)、员工基本工资表1.1.2 功能描述(1)、基本工资的设定(2)、津贴的设定(3)、计算出月工资(4)、录入员工工资信息(5)、添加员工工资信息(6)、更改员工工资信息1.2性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。

数据库课程设计工资管理系统

数据库课程设计工资管理系统

数据库课程设计工资管理系统数据库课程设计报告企业职职员资治理系统摘要企业的工资治理是公司治理的一个重要内容。

工资治理既涉及到企业劳动人事的治理,同时也是企业财务治理的重要组成部分。

工资治理需要和人事治理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的差不多工资、津贴、医疗保险、保险费、实际发放工资等。

资金是企业生存的要紧元素,资金的流淌阻碍到企业的整体运作,企业职员的工资是企业资金治理的一个重要的组成部分。

但考虑到学生的开发时刻,本次设计要紧阐述职职员资治理系统要紧是以企业职职员资情形为对象而开发的。

涉及系统比较小,有利于学生单独编写。

其系统的设计要紧包括数据库的设计、爱护和应用界面的设计与后台数据库的连接。

经分析采纳Microsoft 公司开发的Visual Basic 6.0为开发工具,Microsoft SQL sever 2000 为后台数据库。

Visual Basic (简称VB)是由Microsoft公司推出的在Windows操作平台下最迅速、最简捷的应用开发工具之一。

它引入了面向对象的程序设计思想和“控件”的概念,使得大量差不多编好的Visual Basic 程序能够直截了当拿来使用。

同时VB具有简单、易学的特点,是大多数初学者最理想的编程语言,也是专业人员得心应手的开发工具。

它在一个公共环境里集成了许多不同的功能,例如,设计、编辑、编译和调试。

目前市场上数据库的主流厂商及产品有IBM DB2、Microsoft SQL SERVER 2000、ORACLE 9i、Sybase。

Microsoft SQL Server 2000是在SQL Server 7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。

SQL Server 2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的杰出的数据库平台。

其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便利的数据库治理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告企业工资管理系统姓名XXX班级XXXXX学号XXXXXX课程名称数据库原理及应用指导教师201X年X月X日目录一.工资管理系统需求分析…………………………………1.1功能需求…………………………………………………1.1.1功能划分………………………………………1.1.2功能描述……………………………………………1.2性能需求…………………………………………………1.3数据流图………………………………………………二.总体设计…………………………………………………2.1数据库概念设计…………………………………………2.2功能模块…………………………………………………三.系统详细设计……………………………………………3.1数据库逻辑设计…………………………………………3.2各模块功能………………………………………………3.2.1职工信息管理系统…………………………………3.2.2职工工资管理系统…………………………………3.2.3职工津贴管理系统…………………………………四.系统实现…………………………………………………4.1界面截图…………………………………………………4.1.1主界面及工资基本信息界面……………………4.1.2登录界面…………………………………………4.1.3系统主界面………………………………………4.1.4信息录入,修改,删除,查询界面…………4.2设计代码…………………………………………………五.实验总结…………………………………………………1、需求分析1.1功能需求1.1.1功能划分(1)、员工信息表;及时反映员工的基本信息(2)、员工津贴表,反映员工津贴(3)、员工基本工资表1.1.2 功能描述(1)、基本工资的设定(2)、津贴的设定(3)、计算出月工资(4)、录入员工工资信息(5)、添加员工工资信息(6)、更改员工工资信息1.2性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。

但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。

在时间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。

系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。

当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。

本课程设计是用Java语言编写,mysql数据库。

1.3数据流图根据工资管理要求及用户需求调查分析,得到以下数据流图图1.1第一层数据流图图1.2职工信息的载入图1.4考勤的信息载入2.总体设计2.1数据库概念设计有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图2.2功能模块3.系统详细设计3.1数据库逻辑设计将以上E-R转换成如下关系模式员工(职工号,姓名,密码)工资(职工号,姓名,基本工资,)津贴(职工号,姓名,奖金)其中,标有下划线的字段表示为该数据表的主码,即主关键字。

在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。

工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。

每个表格表示在数据库中的一个表。

表一:员工信息表:3.2各模块功能3.2.1职工信息管理系统功能为:财务部门相关人员录入、修改、删除、查询员工个人信息3.2.2职工工资管理系统功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;3.2.3职工登陆查询系统功能为:员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;4.系统实现4.1界面截图4.1.1主界面4.1.2登录界面4.1.3管理员管理工资界面4.1.4信息录入,修改,删除,查询界面4.1.5职工信息查询界面4.1.6职工密码修改界面4.2设计代码DB.javapackage wage_management;import java.awt.*;import java.awt.event.*;import javax.swing.*;class DB extends JFrame implements ActionListener { JFrame frame = new JFrame("欢迎进入企业工资管理系统");JLabel label = new JLabel("", JLabel.CENTER);JButton button1 = new JButton("进入系统");JButton button2 = new JButton("退出系统");ImageIcon im = new ImageIcon("1.jpg");JLabel a1 = new JLabel(im);void Create() {JPanel pcontentPane = (JPanel) frame.getContentPane();pcontentPane.add(a1);pcontentPane.add(label);pcontentPane.setLayout(new FlowLayout());pcontentPane.add(button1);pcontentPane.add(button2);pcontentPane.setVisible(true);button1.addActionListener(this);button2.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200, 100, 550, 180);frame.setVisible(true);}public static void main(String[] args) {DB dome = new DB();dome.Create();}public void actionPerformed(ActionEvent e) {if (button1.equals(e.getSource())) {DL dl = new DL();dl.create();frame.dispose();}if (button2.equals(e.getSource())) {// 退出System.exit(0);}}}登陆DL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.mysql.jdbc.PreparedStatement;import Query.Querypad;class DL extends JFrame implements ActionListener {ImageIcon im = new ImageIcon("2.jpg");JLabel a2 = new JLabel(im);JFrame frame = new JFrame("职工/管理员登陆");JLabel label1 = new JLabel("用户名");JLabel label2 = new JLabel("密码");JButton logonButton1 = new JButton("管理员登录");JButton logonButton2 = new JButton("职工登录");JButton cancelButton = new JButton("退出");JTextField username = new JTextField(9);JPasswordField password = new JPasswordField(9);static String t1;static String t2;void create(){JPanel p = (JPanel) frame.getContentPane();JPanel p1 = new JPanel();p.setLayout(new FlowLayout());p.add(a2);p.add(label1);p.setSize(5, 5);p.setLocation(4, 8);p.add(username);p.setSize(100, 200);p.setLocation(800, 800);p.add(label2);p.setSize(50, 20);p.setLocation(40, 80);p.add(password);p.setSize(100, 20);p.setLocation(80, 120);p.add(logonButton1);p.add(logonButton2);p.add(cancelButton);p.setBackground(Color.cyan);p.setVisible(true);logonButton1.addActionListener(this);logonButton2.addActionListener(this);cancelButton.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200, 100, 500, 220);frame.setVisible(true);}public void actionPerformed(ActionEvent e){t1 = username.getText();t2 = password.getText();if(e.getSource()==logonButton1){if( username.getText().equals("admin") == true&& (password.getText().equals("admin") == true)){JOptionPane.showMessageDialog(this, "登录成功!");GZGLZJM gz = new GZGLZJM();gz.create();frame.dispose();}else {JOptionPane.showMessageDialog(null, "输入用户名或密码错误!");}}if (e.getSource()==logonButton2){try {Connection con;Statement ps;ResultSet rs;String sql = null;Class.forName("org.gjt.mm.mysql.Driver");Class.forName("org.gjt.mm.mysql.Driver").newInstance();con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql="select * from workerinfo where name='"+t1+"' and mi='"+t2+"'";ps=(PreparedStatement)con.prepareStatement(sql);rs = ps.executeQuery(sql);if(rs.next()){if(rs.getString("name").equals(t1) && rs.getString("mi").equals(t2)){YGDLJM yg = new YGDLJM();yg.create();frame.dispose();JOptionPane.showMessageDialog(this, "登录成功!");this.dispose();}}else {JOptionPane.showMessageDialog(this, "输入用户名或密码错误!");}}catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}if (cancelButton.equals(e.getSource())) // 退出{System.exit(0);}}}GZGLZJM.java//工资管理主界面package wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;class GZGLZJM extends JFrame implements ActionListener {JFrame f = new JFrame("工资管理系统");JButton b1 = new JButton("工资管理");JButton b2 = new JButton("员工信息管理");JButton b3 = new JButton("返回");ImageIcon im = new ImageIcon("3.jpg");JLabel a1 = new JLabel(im);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(a1);p.add(b1);p.add(b2);p.add(b3);p.setBackground(Color.cyan);p.setVisible(true);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setBounds(200, 100, 500, 200);f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b3.equals(e.getSource())) {// 返回DL d = new DL();d.create();f.dispose();}if (b2.equals(e.getSource())) {// 员工信息管理YGGL yg = new YGGL();yg.create();f.dispose();}if (b1.equals(e.getSource())) {// 工资管理GZGL gz = new GZGL();gz.create();f.dispose();}}}//////工资管理GZGL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTextField;public class GZGL extends JFrame implements A ctionListener {JFrame f = new JFrame("工资管理");JButton b1 = new JButton("录入");JButton b2 = new JButton("修改");JButton b3 = new JButton("删除");JButton b4 = new JButton("查询所有");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪"};Object[][] row = new Object[50][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);JPanel p3 = new JPanel();p.setLayout(new FlowLayout());p.add(new JLabel(""));p.add(new JLabel("职工号"));p.add(tf1);p.add(new JLabel("姓名"));p.add(tf2);p.add(new JLabel("津贴"));p.add(tf3);p.add(new JLabel("月基本工资"));p.add(tf4);p.add(new JLabel("月薪"));p.add(tf5);p.add(new JLabel("在此处输入职工号点击查询删除"));p.add(tf6);splitpane.add(p1, splitpane.TOP);splitpane.add(p2, splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);f.setBounds(200, 100, 500, 600);f.setResizable(true);// 可以调整界面大小f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) { // 录入Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con=DriverManager.getConnection("jdbc:mysql://localhost :3306/wage management","root","jxb");sql = con.createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf3.getText()+"');";sql.executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1.getText()+"','"+tf2.getText()+"','"+tf4.getText()+"');";sql.executeUpdate(insertStr1);con.close();JOptionPane.showMessageDialog(this, "入录成功!");} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "入录失败!");}}if (b2.equals(e.getSource())) {// 修改Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr1);JOptionPane.showMessageDialog(this, "修改成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "信息不存在!");}}if (b3.equals(e.getSource())) {// 删除Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate("DELETE FROM wageinfo where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM welfare where no='"+tf6.getText()+"';");JOptionPane.showMessageDialog(this, "删除成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "删除失败!");}}if (b4.equals(e.getSource())) {// 查询全部Connection con;Statement sql;ResultSet rs;//Vector vector = new Vector();try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);rs = sql.executeQuery("select distin ct * from wageinfo ,welfare where =");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b5.equals(e.getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();}}}////////修改管理主界面YGGLZJM.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;public class YGDLJM extends DL implements ActionListener { JFrame f = new JFrame("工资管理");JButton b1 = new JButton("查询个人工资");JButton b2 = new JButton("修改密码");JButton b3 = new JButton("返回");String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪"};Object[][] row = new Object[50][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);JPanel p3 = new JPanel();p.setLayout(new FlowLayout());splitpane.add(p1, splitpane.TOP);splitpane.add(p2, splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setBounds(200, 100, 500, 550);f.setResizable(true);// 可以调整界面大小f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) {// 查询个人工资Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b1.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);//System.out.println(t1);rs = sql.executeQuery("select distinct * fromwageinfo ,welfare,workerinfo where wageinfo.no=welfare.no and wageinfo.no=workerinfo.no and ='"+t1+"' and workerinfo.mi='"+t2+"'");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b2.equals(e.getSource())){// 修改密码XGMM xgmm=new XGMM();xgmm.create();}if (b3.equals(e.getSource())) {// 返回DL dl=new DL();dl.create();f.dispose();}}}///修改管理YGGL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTextField;public class YGGL extends JFrame implements ActionListener {JFrame f = new JFrame("员工信息管理");JButton b1 = new JButton("添加新员工信息");JButton b2 = new JButton("修改员工信息");JButton b3 = new JButton("删除员工信息");JButton b4 = new JButton("查询所有员工信息");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪","登陆密码"};Object[][] row = new Object[50][6];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);p.setLayout(new FlowLayout());p.add(new JLabel(""));p.add(new JLabel("职工号"));p.add(tf1);p.add(new JLabel("姓名"));p.add(tf2);p.add(new JLabel("津贴"));p.add(tf3);p.add(new JLabel("月基本工资"));p.add(tf4);p.add(new JLabel("登陆密码"));p.add(tf5);p.add(new JLabel(" 在此处输入职工号点击查询删除"));p.add(tf6);splitpane.add(p1, splitpane.TOP);splitpane.add(p2, splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);f.setBounds(200, 100, 600, 600);f.setResizable(true);// 可以调整界面大小f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) { // 添加新员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf3.getText()+"');";sql.executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf4.getText()+"');";sql.executeUpdate(insertStr1);String insertStr2 = "INSERT INTO workerinfo (no,name,mi)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf5.getText()+"');";sql.executeUpdate(insertStr2);JOptionPane.showMessageDialog(this, "添加成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "添加失败!");}}if (b2.equals(e.getSource())) {// 修改员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con.createStatement();con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr1);sql.executeUpdate(updateStr1);String updateStr2 = "UPDATE workerinfo SET name='"+tf2.getText()+"',mi='"+tf5.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr2);JOptionPane.showMessageDialog(this, "修改成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "修改失败!");}}if (b3.equals(e.getSource())) {// 删除员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate("DELETE FROM wageinfo where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM welfare where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM workerinfo where no='"+tf6.getText()+"';");JOptionPane.showMessageDialog(this, "删除成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "删除失败!");}}if (b4.equals(e.getSource())) {// 查询全部员工信息Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);rs = sql.executeQuery("select distinct * from wageinfo ,welfare,workerinfo where wageinfo.no=welfare.no and wageinfo.no=workerinfo.no ;");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);String mi = rs.getString(9);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);table.setValueAt(mi,k,5);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b5.equals(e.getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();}}}////修改密码XGMM.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;class XGMM extends DL implements ActionListener{JFrame frame = new JFrame("密码修改");JLabel label1 = new JLabel("原密码");JLabel label2 = new JLabel("新密码");JButton Button1 = new JButton("确定");JButton cancelButton = new JButton("返回");JPasswordField password = new JPasswordField(9);JPasswordField newpassword = new JPasswordField(9);void create(){JPanel p = (JPanel) frame.getContentPane();p.setLayout(new FlowLayout());p.add(label1);p.setSize(5, 5);p.setLocation(4, 8);p.add(password);p.setSize(100, 200);p.setLocation(600, 600);p.add(label2);p.setSize(50, 20);p.setLocation(40, 80);p.add(newpassword);p.setSize(100, 20);p.setLocation(80, 120);p.add(Button1);p.add(cancelButton);p.setBackground(Color.cyan);p.setVisible(true);Button1.addActionListener(this);cancelButton.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200, 100, 500, 220);frame.setVisible(true);。

相关文档
最新文档