工资管理系统设计报告(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
延安大学
课程设计报告
科目:数据库系统概论
题目:工资管理系统
学院:数学与计算机科学学院
班级:软件12
成员:邓茂记:
王晓武:
宋彤彤:
彭文丽:
设计时间:2013年11月12日——
2013年12月20日
目录第一章开发背景及意义
1.1项目开发背景
1.2项目开发的目标及意义
1.3系统开发方法
第二章可行性研究
2.1 目标方案可行性
2.2 技术可行性
2.3 经济可行性
2.4 操作可行性
2.5 系统流程图
第三章系统分析
3.1 需求分析
3.2 数据流图
3.3 数据字典
第四章数据库设计
4.1 概念结构设计
4.2 逻辑结构设计
4.3 物理结构设计
4.4 数据库结构的实现
第五章工资管理系统功能实现
5.1 功能界面设计
5.2实现工资管理系统的java代码第六章总结与体会
第一章开发背景及意义
1.1 项目开发背景
众所周知当今时代的世界经济正从工业经济向知识经济转变,而知识经济的两个重要特征就是信息化合全球化。
要实现信息化和全球化就必须依靠完善的网络和数据库机制。
处于现在这样一个飞速发展的信息时代,在各行各业中都离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境,使用计算机进行信息控制不仅提高了工作效率,而且大大的提
高了其安全性。
尤其是对于复杂的信息管理,计算机能够充分发挥其优越
性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发时
系统管理的前提。
因此,对于企业或是事业单位来说开发一套工资管理系统是很必要的。
虽然企业事业单位的管理已经进入信息化管理,但对于不同的单位所
需要的功能是不一样的,这样通用的软件使用效率不高,还会造成人力,财力的浪费,这样就不能满足所有单位和部门的需求。
所以必须做好客户
的需求分析工作,设计符合用户要求的系统。
1.2 系统开发的目标及意义
企业和事业单位工资管理系统唯有采用自动化,高效率,人性化的管理,才能满足服务员工的需求。
工资管理系统的主要目标在于加强服务而
不在于精简人力。
所以系统要能提供更自动化的服务,期望以最快的速度
将人事工资信息做最适当的运用。
主要目标有:以自动化、系统化、高效管理代替分散重复操作;提高单位效益和现代化信息管理水平;提高员工
的自律性,促进员工人才的成长和流动;减轻人事工资管理员的负担,节省人力物力的开支等。
引进以计算机信息管理技术和网络通讯技术,是加快人事工资管理信息服务进程的重要手段。
新的管理系统的使用会给人事管理体系发生变
化。
这促进了工资数据管理方式和理念的转变,提高了企业单位的现代化
和信息化水平,为企业带来更多的效益。
1.3 系统开发方法
1.开发工具:eclipse sql server 2005
2.开发语言:java语言 sql语言
第二章可行性研究
2.1 目标方案可行性
(1).计算机设备处理繁杂的工资增减问题,大幅度减少人力,物力,极大地提高企业的管理水平和管理效率。
(2).管理水平和管理效率的提高能直接产生经济效益。
(3).高效率的管理形成了良好的经营氛围,为企业打造优良形象,提高企业竞争力。
(4).本系统安全保密性可靠,实施独立的局域网络,人员进入系统需要登录,需输入账户和密码。
(5).本系统的管理,可以根据市场需要进行调整,实用性强。
2.2 技术可行性
(1).工作人员一般都要求掌握计算机技术,会使用各种管理软件。
(2).员工及工作人员需要熟悉系统的功能和使用方法使系统能够顺利运行。
2.3 经济可行性
(1).企业有能力承担系统开发费用。
(2).新系统将为企业带来经济效益。
管理系统是一个信息化,智能化和先进理念的集合体,其主要表现就是减少了企业管理费用和人力开发。
2.4 操作可行性
该系统是大家熟悉的Windows操作系统,简单明了,操作方便,不需要对数据库进行深入了解,对于那些有一般的计算机知识的人员都可以轻松使用。
2.5 系统流程图
第三章系统分析
工资管理系统是一个企业单位不可或缺的部分,它能为用户提供充足的信息和快捷的查询手段,可以高效能、大容量的收集、处理、存储工资管理信息,能
够为企业管理人员及时掌握整个工资管理系统的全面情况,提供系统的准确的工资管理信息,可以促进工资管理工作的规范化及各项管理制度与指标体系的建立与健全,为企业提供各种工资管理信息,以满足工资管理的特殊要求。
主要任务是对员工信息和工资信息的输入、查询、修改、增加、删除,迅速准确地完成工资信息的统计计算和汇总,快速打印出报表。
3.1 需求分析
3.1.1 员工基本档案信息管理功能需求:
凡属于本部门的员工,都需要对其基本的档案信息做好记录存储处理。
以方便高级管理人员时时的了解或查阅其员工基本信息。
对员工基本信息的操作包括添加信息、修改信息、查询信息,同时在数据库中要形成员工基本信息表。
3.1.2 工资管理功能需求:
(1).工资计算:
在进行工资计算之前,管理员首先应该根据部门的实际业务情况确定好各个部门中所需要的工资项目及分别对工资项目进行计算的方式,然后按照系统工资种类的设定,对每个员工分别依次实际工资项目构成情况,如基本工资、工龄工资、奖金、津贴工资、加班工资等项目,录入相应的工资金额数,再计算出总的实得工资的工资项目。
在数据的录入过程中系统会根据用户误输、错误输入智能提示引导用户录入数据的正确性。
要形成的数据库中的表为员工工资信息表。
(2).工资统计分析:
对员工工资数据计算完后,同时要将工资信息统计分析,如汇总统计,工资项目明细数据的汇总等,又分为对员工个人工资统计分析、部门工资统计分析、月份工资统计分析。
且统计分析以报表形式显示统计结果。
通过报表的方式反馈到高级管理人员处,这时,在数据库中要形成员工个人工资信息统计表、部门工资信息统计表、统计员工年终奖。
3.1.3 工资查询功能描述:
在查询这个模块里,系统能支持用户在客户端按照各种不同的字段名称进行工资信息的查询。
同时,迅速的响应用户的查询请求,不同级别的人系统会根据其权限级别的大小享有不同程度的功能。
不同级别的人不能越权进行操作。
3.1.4 报表生成与打印:
在员工领取工资时,能为个人生成个人工资组成及相应金额的工资条。
同时形成部门月报表。
3.1.5 工资管理系统是针对企事业单位的大量业务处理工作用计算机进行全面现代化管理,主要包括:
(a)员工每个工种基本工资的设定
(b)加班津贴管理,根据加班时间和类型给予不同的加班津贴;
(c)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
(d)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
(e)企业工资报表。
能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;
3.1.6 员工月工资是指各单位在一个月时期内支付给本单位全体员工的全部劳动报酬。
员工月工资=基本工资+工龄工资+津贴+加班工资+奖金
3.1.7 系统功能模块
该系统分为员工管理功能模块,工资管理功能模块,工资统计功能模块,工资报表查询功能模块。
对工资管理系统各个功能模块的说明:
(1).员工管理功能模块:实现对员工信息的查询、修改、添加、删除。
(2).工资管理功能模块:实现对员工基本工资的设定与查询,对员工加班、请假、旷工标准工资的设定,对员工总工资的计算。
(3).工资统计功能模块:实现对员工工资的统计功能。
(4).工资报表查询功能模块:产生每个员工的月工资报表,提交到相应部门。
3.2 数据流图
根据系统功能的描述,得到工资管理系统的数据流图如下:
1.顶层数据流图与0层数据流图
图3.1 顶层数据流图
图3.2 0层数据流图
2.各层功能模块数据流图
工
资 表
图3.3 工种基本工资设定
工 资 表
图3.4 员工津贴设定 工
资 表 图3.5 员工年终奖生成
图3.6 工资核算
图3.7 信息查询
3.3 数据字典
数据字典是系统中各类数据描述的集合
简要说明工资管理系统的数据字典。
(1).名字:员工编号
别名:员工号
描述:员工号唯一地标识数据库中职工信息相关表中的一个特定员工的关键域
定义:职工号=6{char}
位置:员工信息表
考勤表
工资表
(2).名字:职务
别名:员工职务
描述:职务能唯一地标识数据库中职务基本工资信息相关表中的一个特定职务的关键域
定义:职务=10{char}
位置:员工信息表
职务工资表
(3).名字:加班类型
别名:加班类型
描述:加班类型能唯一地标识数据库中员工津贴信息相关表中的一个特定加班类型的关键域
定义:加班类型=10{char}
位置:员工津贴表
员工考勤表
(4).名字:员工信息表
别名:员工基本信息
描述:用户指定条件下的员工基本信息情况查询结果的信息表
定义:员工信息表=员工号+员工姓名+性别+出生日期+职务+学历+电话号码+住址+身份证号
位置:输出到员工工资表
(5).名字:考勤信息表
别名:考勤信息
描述:用户指定条件下的员工考勤信息查询结果的信息表
定义:员工考勤信息表=考勤编号+员工号+员工姓名+加班天数+请假天数+旷工天数+考勤日期+加班类型
位置:输出到员工工资表
(6)名字:员工津贴表
别名:员工津贴信息表
描述:用户指定条件下的员工加班类型给予不同加班津贴的信息表
定义:员工津贴表=加班类型+加班津贴
位置:输出到员工工资表
(7).名字:职务工资表
别名:职务基本工资信息表
描述:用户指定条件下的职务基本工资信息查询结果的信息表
定义:职务工资表=职务+基本工资+加班标准+请假标准+旷工标准+ 奖金
位置:输出到员工工资表
(8).名字:员工工资表
别名:工资信息
描述:记录工资的组成部分以及员工的工资情况的信息
定义:工资信息报表=员工编号+员工姓名+基本工资+加班津贴+加班费+请假扣款+旷工扣款+奖金+实发工资
位置:输出到打印机
第四章数据库设计
4.1 概念结构设计
图4.1 E-R图
图4.2 总E-R图
4.2 逻辑结构设计
(1)员工考勤表(Checkstat):
考勤编号(CheckID),员工编号(Eno),员工姓名(Ename),加班天数(OvertimeDay),旷工天数(AbsentDay),请假天数(LeaveDay),考勤日期(CheckDate),加班类型(OvertimeType)
(2)员工津贴表(Allowance):
加班类型(OvertimeType),加班津贴(Osubsidy)
(3)员工信息表(Emplogee):
员工编号(Eno),员工姓名(Ename),性别(Esex),出生年月(Ebirth),职务(Eduty),学历(Eedu),电话(Etel),身份证号(IDidentity),住址(Eaddr)(4)员工工种表(Wageconfig):
职务(Eduty),基本工资(BaseWage),加班标准(OverDay),请假标准(LeaveDay),旷工标准(AbsentDay),奖金(Bonus)
(5)员工工资表(Wage):
员工编号(Eno),员工姓名(Ename),基本工资(BaseWage),加班津贴
(Osubsidy0),加班费(OvertimeWage),请假扣款(LeaveDayWage),旷工扣款(AbsentDayWage),奖金(Bonus),实发工资(ActWage)
依据上面的关系模式,设计数据表如下:
(1
(2
(3
(4
(5)员工工资表(Wage):记录保存计算出来的工资
列名数据类型长度属性描述
Eno Char 6 主键员工编号Ename Char 15 不为空员工姓名BaseWage Money 不为空基本工资Osubsidy Money 不为空加班津贴OvertimeDayWage Money 不为空加班费
LeaveDayWage Money 不为空请假扣款AbsentDayWage Money 不为空旷工扣款Bonus Money 不为空奖金
ActWage Money 不为空实发工资4.3 物理结构设计
1.员工基本信息数据表定义
其中,“E no”是表的主键,唯一标识。
“Eduty”是外键。
此表取名为“Emplogee”。
2.员工考勤信息数据表定义
其中,“CheckID”是主键,唯一标识。
“OvertimeType”为外键。
此表取名为”Checkstat“。
3.员工津贴信息数据表定义
其中,”OvertimeType“为主键,唯一标识。
此表取名为”Allowance“。
4.职务基本工资信息数据表定义
其中,”Eduty”为主键,唯一标识。
此表取名为“Wageconfig”
5.工资信息数据表定义
其中,“Eno”为主键,唯一标识。
此表取名为“Wage”
4.4 数据库结构的实现
1. 数据库表的创建
(1)创建Wageconfig表:
create table Wageconfig
(Eduty char(10) primary key,
BaseWage money,
OverDay money,
LeaveDayWage money,
AbsentDayWage money,
Bonus money,
);
(2)创建Allowance表:
create table Allowance (OvertimeType char(10) primary key, Osubsidy money,
);
(3)创建Checkstat表:
create table Checkstat
(CheckID int primary key,
Eno char(6) not null,
Ename char(15) not null, OvertimeDay smallint, AbsentDay smallint,
LeaveDay smallint,
CheckDate smalldatetime, OvertimeTtpe char(10),
);
(4)创建Emplogee表:
create table Emplogee
(Eno char(6) primary key,
Ename char(15) not null,
Esex char(10) not null,
Ebirth datetime,
Eduty char(10),
Eedu char(10),
Etel nvarchar(50),
IDidentity nvarchar(50),
Eaddr char(10),
);
(5)创建Wage表:
create table Wage
(WageID int primary key,
Eno char(6) not null,
Ename char(15) not null, BaseWage money not null , Osubsidy money not null, OvertimeWage money not null, LeaveDayWage money not null, AbsentDayWage money not null, Bonus money not null,
ActWage money not null,
);
2. 数据库关系图:
第五章工资管理系统功能实现5.1 功能界面设计
5.1 .1系统登录界面的设计
输入用户名和密码,点击登录可以进入工资管理系统。
5.1.2 系统主界面功能设计
各个菜单按钮下的子系统有:
系统(退出)
员工管理(添加员工基本信息,修改员工基本信息,删除员工基本信息)工资管理(设定职务工资,工资报表生成,月工资查询,年终奖查询)
员工查询(员工基本信息查询,员工考勤信息查询)
5.1.3 添加员工基本信息界面设计
输入员工编号,姓名,性别,出生日期,职务,学历,电话,身份证号码,住址能将员工的基本信息添加到数据库表中。
5.1.4 删除员工基本信息界面设计
输入员工编号可以删除数据库表中员工的基本信息。
5.1.5修改员工基本信息界面设计
输入员工编号将员工信息显示出来,然后进行修改。
5.1.6 设定职务基本工资界面设计
输入职务名称将职务各项标准显示出来,然后进行重新设定。
5.1.7. 工资报表生成界面设计
通过员工编号查出员工姓名,职务,加班天数,请假天数,旷工天数及加班类型,填入到对应框中,然后通过职务名称查出基本工资,加班标准,请假标准,旷工标准及奖金,填入对应框中,通过加班类型查出加班津贴,最后计算出加班费,请假减薪,旷工减薪,实发工资。
产生员工工资。
5.1.8 员工月工资查询界面设计
输入员工编号可以查询员工的月工资。
5.1.9 员工年终奖查询界面设计
输入员工编号可以查询员工的年终奖。
5.1.10 员工基本信息查询界面设计
输入员工编号可以查询员工基本信息。
5.1.11 员工考勤及员工加班津贴查询界面设计
输入员工编号可以查询员工考勤信息,输入员工加班类型可以查询员工加班津贴。
5.2实现工资管理系统的java代码(1)登录界面代码
package gzgl;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection;
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; import javax.swing.JTextField; import gzgl.MainFrame;
import gzgl.DBConnect;
public class LogOn {
public static void main(String[] args){
final JFrame jfrmlogin=new JFrame("系统登录");//框标题是系统登录
jfrmlogin.setSize(400,280);//设置框的大小
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
jfrmlogin.setLocation((int)
(screenSize.width-400)/2,(int)(screenSize.height-300)/2);//设置框出现的位置//构建面板p1、p2、p3
//p1->用户名+文本框
JPanel p1=new JPanel();
p1.add(new JLabel("用户名:"));
final JTextField jtxtuser=new JTextField(14);
//p2->密码+文本框
JPanel p2=new JPanel();
p2.add(new JLabel("密码:"));
final JPasswordField jspwd=new JPasswordField(14);
//p3->登陆+退出两按钮
JPanel p3=new JPanel();
JButton jbtok=new JButton("登录");
JButton jbtexit=new JButton("退出");
//将组件加入到面板中
p1.add(jtxtuser);
p2.add(jspwd);
p3.add(jbtok);
p3.add(jbtexit);
//,登陆键的监听器设置
jbtok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String a,b;
a=jtxtuser.getText();
//获取用户输入的信息
//密码框置为不可见的字符
b=jspwd.getText();
if((a.equals("dmj")==true)&&(b.equals("123456")==true))
{
//如果成功则调用系统程序隐藏当前登陆框
JOptionPane.showMessageDialog(null,"你已成功登陆系统!","系统提示",RMATION_MESSAGE);
MainFrame mf=new MainFrame();
mf.setVisible(true);
jfrmlogin.dispose();
}
else{
JOptionPane.showMessageDialog(null,"用户名或密码不一致,
请重新输入!","系统提示",JOptionPane.ERROR_MESSAGE);
//不正确则将用户框和密码框都置空
jtxtuser.setText("");
jspwd.setText("");
}
}
});
jbtexit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"您已成功退出系统!","系统提示",JOptionPane.CANCEL_OPTION);
System.exit(0);
}
});
//采用网格布局
jfrmlogin.getContentPane().setLayout(new GridLayout(3,1));
jfrmlogin.getContentPane().add(p1);
jfrmlogin.getContentPane().add(p2);
jfrmlogin.getContentPane().add(p3);
jfrmlogin.setVisible(true);
}
}
(2)主函数代码
package gzgl;
import java.awt.Dimension;
import java.awt.Toolkit;
import gzgl.MainFrame;
public class Main {
public static void main (String[] args)
{
//创建主界面,调用MainFrame()构造函数和方法
MainFrame frame=new MainFrame();
//获取屏幕尺寸
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
//获取主界面的窗体尺寸
Dimension frameSize =frame.getSize();
//令主界面窗体居中
if(frameSize.height>screenSize.height)
frameSize.height=screenSize.height;
if(frameSize.width>screenSize.width)
frameSize.width=screenSize.width;
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-fra meSize.height)/2);
//令主界面显示
frame.setVisible(true);
}
}
(3)用JDBC连接java与数据库的代码
package gzgl;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnect {
//静态方法提高数据库的连接效率
public static Connection getConn() throws Exception
{
//加载JDBC驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//以系统默认用户身份,连接数据库StudentManager
return DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=gzglxt","gzglxt","123456");
}
}
(4)系统主框架界面代码
package gzgl;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import gzgl.AddEmployee;
import gzgl.AddSalary;
import gzgl.DeleteEmployee;
import gzgl.EmployeeHelp;
import gzgl.InquireOnGH;
import gzgl.InquireOnName;
import gzgl.ModifyEmployee;
import gzgl.ModifySalary;
import gzgl.SalaryInquire;
public class MainFrame extends JFrame implements ActionListener{ //创建内容面板
JPanel contentPane;
//创建菜单栏组件的对象
JMenuBar jMenuBar1=new JMenuBar();//菜单条
JMenu jMenu0=new JMenu("系统");//菜单
JMenuItem jMenuItem0=new JMenuItem("退出");//子菜单
JMenu jMenu1=new JMenu("员工管理");
JMenuItem jMenuItem1=new JMenuItem("添加员工信息");
JMenuItem jMenuItem2=new JMenuItem("修改员工信息");
JMenuItem jMenuItem3=new JMenuItem("删除员工信息");
JMenu jMenu2=new JMenu("工资管理");
JMenuItem jMenuItem4=new JMenuItem("工资查询");
JMenuItem jMenuItem5=new JMenuItem("设定职务工资");
JMenuItem jMenuItem8=new JMenuItem("工资生成");
JMenuItem jMenuItem9=new JMenuItem("年终奖查询");
JMenu jMenu3=new JMenu("员工查询");
JMenuItem jMenuItem6=new JMenuItem("员工信息查询");
JMenuItem jMenuItem7=new JMenuItem("员工考勤查询");
//创建标签,用于显示信息
JLabel jLabel1=new JLabel(" 欢迎使用工资管理系统");
JLabel jLabel2=new JLabel(" 延安大学软件12课程设计");
//创建构造方法
public MainFrame()
{
try{
//关闭框架窗口时的默认事件方法
setDefaultCloseOperation(EXIT_ON_CLOSE);
//调用初始化方法
jbInit();
}
catch(Exception exception){
exception.printStackTrace();
}
}
//界面初始化方法
private void jbInit() throws Exception
{
//创建内容面板
contentPane =(JPanel) getContentPane();
//设置内容面板的布局为空
contentPane.setLayout(null);
//主框架的大小
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
setLocation((int)
(screenSize.width-400)/2,(int)(screenSize.height-360)/2);
setSize(new Dimension(400,500));
//主框架的标题
setTitle("工资管理系统");
//添加事件监听器
jMenuItem0.addActionListener(this);
jMenuItem1.addActionListener(this);
jMenuItem2.addActionListener(this);
jMenuItem3.addActionListener(this);
jMenuItem4.addActionListener(this);
jMenuItem5.addActionListener(this);
jMenuItem6.addActionListener(this);
jMenuItem7.addActionListener(this);
jMenuItem8.addActionListener(this);
jMenuItem9.addActionListener(this);
//添加菜单条到主框架
setJMenuBar(jMenuBar1);
//添加菜单到菜单条
jMenuBar1.add(jMenu0);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
//添加菜单项到菜单
jMenu0.add(jMenuItem0);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
jMenu2.add(jMenuItem4);
jMenu2.add(jMenuItem5);
jMenu2.add(jMenuItem8);
jMenu2.add(jMenuItem9);
jMenu3.add(jMenuItem6);
jMenu3.add(jMenuItem7);
//添加标签到主框架内容面板
contentPane.add(jLabel1);
contentPane.add(jLabel2);
//设置标签组件的大小和字体
jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,20));
jLabel1.setBounds(new Rectangle(65,70,275,55));
jLabel2.setFont(new java.awt.Font("黑体",Font.BOLD,16));
jLabel2.setBounds(new Rectangle(90,150,200,35));
}
//菜单项事件对应的处理方法
public void actionPerformed(ActionEvent actionEvent)
{
//点击“系统”菜单下的“退出”菜单项
if(actionEvent.getSource()==jMenuItem0)
{
JOptionPane.showMessageDialog(null,"您已成功退出系统!","系统提示",JOptionPane.CANCEL_OPTION);
System.exit(0);
}
//点击“职工管理”菜单下的“添加职工”菜单项
if(actionEvent.getSource()==jMenuItem1)
{
//创建“添加职工”面板对象
AddEmployee AddEmp=new AddEmployee();
//移除主框架上原有的内容
this.remove(this.getContentPane());
//加载“添加职工”面板的对象到主框架
this.setContentPane(AddEmp);
//令界面可见
this.setVisible(true);
}
//点击“职工管理”菜单下的“修改职工”菜单项
if(actionEvent.getSource()==jMenuItem2)
{
//创建“修改职工”面板对象
ModifyEmployee ModifyEmp=new ModifyEmployee();
this.remove(this.getContentPane());
//加载“修改职工”面板的对象到主框架
this.setContentPane(ModifyEmp);
this.setVisible(true);
}
//点击“职工管理”菜单下的“删除职工”菜单项
if(actionEvent.getSource()==jMenuItem3)
{
//创建“删除职工”面板对象
DeleteEmployee DeleteEmp=new DeleteEmployee();
this.remove(this.getContentPane());
//加载“删除职工”面板的对象到主框架
this.setContentPane(DeleteEmp);
this.setVisible(true);
}
//点击“工资管理”菜单下的“添加工资”菜单项
if(actionEvent.getSource()==jMenuItem4)
{
//创建工资添加的面板对象
AddSalary AddSal=new AddSalary();
this.remove(this.getContentPane());
//加载工资添加面板的对象到主框架
this.setContentPane(AddSal);
this.setVisible(true);
}
//点击“工资管理”菜单下的“修改工资”菜单项
if(actionEvent.getSource()==jMenuItem5)
{
//创建工资修改的面板对象
ModifySalary ModifySal=new ModifySalary();
this.remove(this.getContentPane());
//加载工资修改面板的对象到主框架
this.setContentPane(ModifySal);
this.setVisible(true);
}
//点击“工资管理”菜单下的“工资查询”菜单项
if(actionEvent.getSource()==jMenuItem8)
{
//创建工资修改的面板对象
SalaryInquire SalaryInq=new SalaryInquire();
this.remove(this.getContentPane());
//加载工资修改面板的对象到主框架
this.setContentPane(SalaryInq);
this.setVisible(true);
}
//点击“职工查询”菜单下的“按工号查询”菜单项
if(actionEvent.getSource()==jMenuItem6)
{
//创建“按工号查询”面板对象
InquireOnGH OnGH=new InquireOnGH();
//移除主框架上原有的内容
this.remove(this.getContentPane());
this.setContentPane(OnGH);
this.setVisible(true);
}
//点击“职工查询”菜单下的“按姓名查询”菜单项
if(actionEvent.getSource()==jMenuItem7)
{
//创建“按姓名查询”面板对象
InquireOnName OnName=new InquireOnName();
//移除主框架上原有的内容
this.remove(this.getContentPane());
this.setContentPane(OnName);
this.setVisible(true);
}
if(actionEvent.getSource()==jMenuItem9)
{
//创建“按姓名查询”面板对象
YearBonus Year=new YearBonus();
//移除主框架上原有的内容
this.remove(this.getContentPane());
this.setContentPane(Year);
this.setVisible(true);
}
}
}
(5)添加员工基本信息功能代码
package gzgl;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.Statement;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import gzgl.DBConnect;
public class AddEmployee extends JPanel implements ActionListener{ //声明连接数据库对象
Connection con;
//声明SQL语句对象
Statement st;
//创建组件对象:标签、文本行、单选
JLabel jLabel1=new JLabel("员工编号");
JLabel jLabel2=new JLabel("员工姓名");
JLabel jLabel3=new JLabel("性别");
JLabel jLabel4=new JLabel("出生日期");
JLabel jLabel5=new JLabel("职务");
JLabel jLabel6=new JLabel("学历");
JLabel jLabel7=new JLabel("电话");
JLabel jLabel8=new JLabel("身份证号");
JLabel jLabel9=new JLabel("住址");
JTextField jTextField1=new JTextField();
JTextField jTextField2=new JTextField();
JTextField jTextField3=new JTextField();
JTextField jTextField4=new JTextField();
JTextField jTextField5=new JTextField();
JTextField jTextField6=new JTextField();
JTextField jTextField7=new JTextField();
JTextField jTextField8=new JTextField();
JRadioButton jRadioButton1=new JRadioButton("男"); JRadioButton jRadioButton2=new JRadioButton("女"); ButtonGroup buttonGroup1=new ButtonGroup();
JButton jButton1=new JButton("添加职工");
//构造方法
public AddEmployee()
{
try{
//调用初始化方法
jbInit();
}
catch(Exception exception){
exception.printStackTrace();
}
}
//界面初始化方法
private void jbInit() throws Exception
{
//连接数据库
con=DBConnect.getConn();
st=con.createStatement();
//框架的布局
this.setLayout(null);
//设置各组件的大小
jLabel1.setBounds(new Rectangle(21,17,64,24));
jLabel2.setBounds(new Rectangle(21,51,53,22));
jLabel3.setBounds(new Rectangle(21,86,61,27));
jLabel4.setBounds(new Rectangle(21,122,59,25));
jLabel5.setBounds(new Rectangle(21,168,54,24));
jLabel6.setBounds(new Rectangle(21,205,54,24));
jLabel7.setBounds(new Rectangle(21,245,54,24));
jLabel8.setBounds(new Rectangle(21,285,54,24));
jLabel9.setBounds(new Rectangle(21,325,54,24));
jTextField1.setBounds(new Rectangle(102,10,200,30));
jTextField2.setBounds(new Rectangle(102,49,200,30));
jTextField3.setBounds(new Rectangle(102,117,200,33));
jTextField4.setBounds(new Rectangle(102,163,200,29));
jTextField5.setBounds(new Rectangle(102,200,200,29));
jTextField6.setBounds(new Rectangle(102,240,200,29));
jTextField7.setBounds(new Rectangle(102,280,200,29));
jTextField8.setBounds(new Rectangle(102,320,200,29));
jRadioButton1.setBounds(new Rectangle(102,83,65,30));
jRadioButton2.setBounds(new Rectangle(190,85,85,30));
jButton1.setBounds(new Rectangle(130,380,150,32));
//设置单选按钮被选中
jRadioButton1.setSelected(true);
//添加按钮动作事件
jButton1.addActionListener(this);
//添加组件到面板
this.add(jLabel1);
this.add(jTextField1);
this.add(jLabel2);
this.add(jTextField2);
this.add(jLabel3);
buttonGroup1.add(jRadioButton1);
buttonGroup1.add(jRadioButton2);
this.add(jRadioButton1);
this.add(jRadioButton2);
this.add(jLabel4);
this.add(jTextField3);
this.add(jLabel5);
this.add(jTextField4);
this.add(jLabel6);
this.add(jTextField5);
this.add(jLabel7);
this.add(jTextField6);
this.add(jLabel8);
this.add(jTextField7);
this.add(jLabel9);
this.add(jTextField8);
this.add(jButton1);
}
//点击按钮事件
public void actionPerformed(ActionEvent e)
{
//获取用户输入的信息
String Eno=jTextField1.getText();
String Ename=jTextField2.getText();
String Esex="";
if(jRadioButton1.isSelected())
Esex+="男";
if(jRadioButton2.isSelected())
Esex+="女";
String Ebirth=jTextField3.getText();
String Eduty=jTextField4.getText();
String Eedu=jTextField5.getText();
String Etel=jTextField6.getText();
String IDidentity=jTextField7.getText();
String Eaddr=jTextField8.getText();
try{
//设置日期格式
st.execute("set dateformat ymd");
//利用st对象执行SQL语句,进行插入操作
st.executeUpdate("insert into Emplogee values('"+Eno+"','"+Ename+"','"+Esex+"','"+Ebirth+"','"+Eduty+"','"+Eedu+"','"+Etel +"','"+IDidentity+"','"+Eaddr+"')");
//利用消息对话框提示职工添加成功
JOptionPane.showMessageDialog(this,"职工添加成功!");
//清空文本行的内容
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jTextField7.setText("");
jTextField8.setText("");
}
catch(Exception ex){
//利用消息对话框提示异常的信息
JOptionPane.showMessageDialog(this,"职工添加失败!");
ex.printStackTrace();
}
}
}
(6)修改员工基本信息功能代码
package gzgl;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import gzgl.DBConnect;
public class ModifyEmployee extends JPanel implements ActionListener{ //声明连接数据库对象
Connection con;
//声明SQL语句对象
Statement st;
//创建组件对象:标签、文本行、单选
JLabel jLabel1=new JLabel("请输入职工的编号:");
JTextField jTextField1=new JTextField();
JButton jButton1=new JButton("查找该职工");
JLabel jLabel2=new JLabel("员工编号:");
JTextField jTextField2=new JTextField();
JLabel jLabel3=new JLabel("员工姓名:");
JTextField jTextField3=new JTextField();
JLabel jLabel4=new JLabel("性别:");
JTextField jTextField4=new JTextField();
JLabel jLabel5=new JLabel("出生日期:");
JTextField jTextField5=new JTextField();
JLabel jLabel6=new JLabel("职务:");
JTextField jTextField6=new JTextField();
JLabel jLabel7=new JLabel("学历:");
JTextField jTextField7=new JTextField();
JLabel jLabel8=new JLabel("电话:");
JTextField jTextField8=new JTextField();
JLabel jLabel9=new JLabel("身份证号:");
JTextField jTextField9=new JTextField();
JLabel jLabel10=new JLabel("住址:");
JTextField jTextField10=new JTextField();
JButton jButton2=new JButton("修改职工信息");
//构造方法
public ModifyEmployee()
{
try{
//调用初始化方法
jbInit();
}。