(员工管理)java版员工
管理系统设计报告
第一章、设计任务书
一、课程设计目的和要求
1.目的:
1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:
1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; 2)系统设计要实用,编程简练,可用,功能全面 3)说明书、流程图要清楚
4)记录设计情况(备查,也为编写设计说明书作好准备);
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序文件。
二、设计项目:
1、项目名称:公司员工管理系统
2、项目概述:在人才过剩的今天,企业对于有用人才的需求逐步加大,企业内部的人事
变动和部门规划也开始加速,传统的人事档案已经不能满足各个企业的人员流动速度,迫使人们起用新的管理方法来管理员工的相关信息。科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普
及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,员工管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入各个行业和领域,将传统的员工管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。
3、项目功能简介:
—增加—
增加用户、员工的基本信息(基本信息和工资信息)、部门信息、薪资信息
—删除—
可根据员工的编号及姓名等资料的删除
—修改—
用户可以对员工的姓名和编号、进行修改。
—查询—
用户可以根据姓名、编号,准确的查到要找的员工,也可以选择部门,查看选中的部门
的所有员工。 —辅助—
可以调用单独制作的计算器进行数字计算,节省操作时间
—关于—
可以了解本系统的运行环境,开发理念、开发人员等信息
三、设计时间及内容
序号 1 2 时间 1月4日 1月5日 内容 班级分组,选定课题,查阅相关资料 划分模块、小组成员分工,编制源程序 3 4 5 6 7 8 9 10 1月6日 1月7日 1月8日 1月11日 1月12日 1月13日 1月14日 1月15日 编制源程序 编制源程序 编制源程序 上机调试,修改、完善系统 上机调试,修改、完善系统 撰写课程设计报告,上机调试,修改、完善系统 撰写课程设计报告,作品答辩 实习成绩的评定 四、设计方式和安排
1、项目承接:筑梦小组
2、小组成员:王英(组长)、涂云跃、孙胜胜、夏春碧、刘玮、周玉琳、华云平、王英良 3、项目选题:根据小组成员的深入讨论后,结合当今市场需求,决定以员工管理为设计
方向,以人性化管理操作为设计理念,根据课题工作量大小,合理分配人数(后台数据库开发:夏春碧、孙胜胜、王英良、周玉琳,前台开发:王英、涂云跃、刘玮、华云平,全组成员参加总体调试改进,组长负责本组设计工作的协调、分工等。
4、设计过程:
1)分析设计准备阶段(按组讨论、对系统功能进行分析,确定算法,并进行明确分工); 2)编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)
五、考核内容和方式
1、在设计期间,小组成员要按时上机,设计结束根据记录的设计材料整理成设计说明书。设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。 2、通过设计答辩方式,并结合小组成员的动手能力,独立分析解决问题的能力和创新精神,
设计成绩由指导教师根据考勤、设计说明书质量、答辩表现以及学习态度按五级分制综合评定。成绩分优、良、中、及格和不及格五等。
第二章、项目总体设计
一、总体设计思路:
本系统管理的是大量的员工信息,涉及到员工各方面的信息安全,从系统的设计理念出发,我们必须保障系统内信息的安全,所以我们采取了通过密码验证的方式进入系统。设计流程介绍如下:
二、后台数据库设计
1、数据库名称:yggl(员工管理 缩写) 2、数据字典:
库名(yggl) 用户信息表(UserInformation) 字段 User_ID User_Name Password Popedom 字段 D_Number D_Name D_Count 字段 E_Number E_Name E_Sex E_BornDate E_Marriage E_PoliticsVisage 类型 Int varchar varchar varchar 类型 int varchar varchar 类型 int varchar varchar varchar varchar varchar 说明 员工编号 员工姓名 密码 权限 说明 部门编号 部门名称 部门人数 说明 --员工编号 --姓名 --性别 --出生日期 --婚姻状态 政治面貌 大小 20 20 20 大小 20 20 大小 20 2 30 4 20 是否为空 NOT NULL NOT NULL NOT NULL NOT NULL 是否为空 NOT NULL NOT NULL NOT NULL 是否为空 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 部门信息管理(DepartmentInformation) 员工基本信息表(EmployeeInformation) E_SchoolAge E_EnterDate E_InDueFormDate E_Department E_Headship E_Estate E_Remark 字段 W_Number W_Name W_BasicWage W_Boon W_Bonus W_CountMethod W_FactWage varchar varchar varchar varchar varchar varchar varchar 类型 int varchar int int int varchar int 学历 进入公司时间 转正时间 部门 职务 状态 备注 说明 员工编号 员工姓名 基本工资 福利 奖金 计算方法 实发工资 20 30 30 20 20 20 500 大小 30 50 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 是否为空 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 薪资信息表(WageInformation) 3、问题与难点:表与表之间的相互级联与更新
三、前台效果图发布与设计过程
(一)、登录窗口设计
1、设计思路:
本窗口是整个系统的入口,关系到系统内部各个员工的信息安全,在整个设计中有着重要的作用。具体可以分为用户名密码是否为空的判断和用户名密码是否正确判断。 2、介绍与图解:
当用户密码为空时,给出相应提示信息,当用户密码输入并且正确时才能成功进入系统
主窗体。 3、关键代码:
1)登录按钮的监听(为空判断)
buttonEnter.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
if(textName.getText().equals(\"\")){
new JOptionPane().showMessageDialog(null,\"用户名不能为
空!\");}
else if(textage.getText().equals(\"\")){
new JOptionPane().showMessageDialog(null,\"密码不能为空!\");}
else{
String sql=\"select * from UserInformation where User_Name =
'\" + textName.getText() + \"' and Password = '\" + textage.getText()+ \"'\";
System.out.println(sql); Judge(sql);}}});
2)登录按钮的监听(为空判断)
private void Judge(String sqlString) { if (database.joinDB()) {
if (database.query(sqlString)) try{
if(database.rs.isBeforeFirst()) { System.out.println(\"密码正确\"); jf.setVisible(false);
System.out.println(\"main\"); //关闭数据库连接 database.cn.close(); new main();}
else {
System.out.println(\"错误\");
new JOptionPane().showMessageDialog(null,\"用户名或密码错
误!\ }
}catch(Exception ex) {
System.out.println(ex.getMessage());}} else{
System.out.println(\"连接数据库不成功!!!\"); new
JOptionPane().showMessageDialog(null,\"
连
接
数
据
库
失
败!!!\
(二)系统主窗体设计
1、设计思路:
本界面是整个系统操作主界面,是各个模块的操作的入口。具体分析如下:
主 窗 体 系统管理 信息管理 信息查询 关于 重改新密登码 录 修修加改删密除 码 添员工信息管理(基本信息工资信息) 部门信息管理 员工信息查询(基本信息工资信息) 部门信息查询
2、图解与介绍: (1)主窗体 1)效果图
2)关键代码: //主函数类 import java.awt.*;//倒包 import java.awt.event.*;//倒包 import javax.swing.*;//倒包 import java.sql.*;//倒包
public class main extends JFrame implements Runnable { Thread t = new Thread(this);//在窗体里创建线程并实例化
JDesktopPane deskpane = new JDesktopPane();//在窗体里建立虚拟桌面并实例化 JPanel p = new JPanel();//创建一个面板并实例化
Label lp1 = new Label(\"欢 迎 进 入 员 工 管 理 系 统! 如 有 不
明 白 之 处 请 询 问 开 发 人 员!\"); //
菜
单
上
的
图
标
创
建
并
实
例
化
---------------------------------------------------------------------------- ImageIcon icon1 = new ImageIcon(\"image//tjsc.gif\"); ImageIcon icon2 = new ImageIcon(\"image//cxdl.gif\"); ImageIcon icon3 = new ImageIcon(\"image//xgmm.gif\"); ImageIcon icon4 = new ImageIcon(\"image//tcxt.gif\");
ImageIcon icon5 = new ImageIcon(\"image//jj.gif\"); ImageIcon icon6 = new ImageIcon(\"image//help.gif\"); ImageIcon icon7 = new ImageIcon(\"image//cx.gif\"); ImageIcon icon8 = new ImageIcon(\"image//gl.gif\"); ImageIcon icon9 = new ImageIcon(\"image//xt.gif\"); ImageIcon icon10 = new ImageIcon(\"image//xxgl.gif\"); ImageIcon icon11 = new ImageIcon(\"image//xxcx.gif\"); ImageIcon icon12 = new ImageIcon(\"image//bz.gif\"); ImageIcon icon13 = new ImageIcon(\"image//gy.gif\"); ImageIcon icon14 = new ImageIcon(\"image//glxx.gif\"); ImageIcon icon15 = new ImageIcon(\"image//cxxx.gif\"); public main() {//构造函数
setTitle(\"员工管理系统\");//设置窗体标题 Container con = getContentPane();
con.setLayout(new BorderLayout());//创建一个布局
con.add(deskpane, BorderLayout.CENTER);//实例虚拟桌面的布局
Font f = new Font(\"新宋体\设置一个字体,以后设置字体全
部调用这种字体,懒得弄那么花花哨哨的
JMenuBar mb = new JMenuBar();//实例化菜单栏 //实例化菜单开始
JMenu systemM = new JMenu(\"系统管理\"); systemM.setFont(f);
JMenu manageM = new JMenu(\"信息管理\"); manageM.setFont(f);
JMenu employeeMM = new JMenu(\"员工信息管理\");//这个是信息管理的二级
菜单
employeeMM.setFont(f);
JMenu selectM = new JMenu(\"信息查询\"); selectM.setFont(f);
JMenu employeeSM = new JMenu(\"员工信息查询\");//这个是信息查询的二级
菜单
employeeSM.setFont(f);
JMenu aboutM = new JMenu(\"关于\"); aboutM.setFont(f); //实例化菜单结束
//实例化系统管理菜单的菜单项
JMenuItem password = new JMenuItem(\"密码修改\"); password.setFont(f);
JMenuItem login = new JMenuItem(\"重新登陆\"); login.setFont(f);
JMenuItem addDelete = new JMenuItem(\"添加/删除用户\"); addDelete.setFont(f);
JMenuItem exit = new JMenuItem(\"退出系统\"); exit.setFont(f);
systemM.add(password); systemM.add(login); systemM.add(addDelete); systemM.add(exit);
//实例化系统管理菜单的菜单项结束 //
为
系
统
管
理
菜
单
加
事
件
----------------------------------------------------------------------------- password.addActionListener(new ActionListener() {//密码修改监听 public void actionPerformed(ActionEvent e) { System.out.println(\"xiugaiPassword\"); deskpane.add(new xiugaiPassword());}});
login.addActionListener(new ActionListener() {//重新登陆监听 public void actionPerformed(ActionEvent e) { System.out.println(\"denglu\"); setVisible(false); new denglu();}});
addDelete.addActionListener(new ActionListener() {//添加/删除用户监听 public void actionPerformed(ActionEvent e) { deskpane.add(new AddDeleteUser());}});
exit.addActionListener(new ActionListener() {//退出系统监听 public void actionPerformed(ActionEvent e) { //new JOptionPane().showMessageDialog(
setVisible(false);}}); //实例化信息管理的菜单项
JMenuItem departmentM = new JMenuItem(\"部门信息管理\"); departmentM.setFont(f);
JMenuItem employeeM = new JMenuItem(\"基本信息管理\"); employeeM.setFont(f);
JMenuItem wageM = new JMenuItem(\"薪资信息管理\"); wageM.setFont(f);
employeeMM.add(employeeM); employeeMM.add(wageM); manageM.add(employeeMM); manageM.add(departmentM); //实例化信息管理的菜单项结束 //
为
管
理
菜
单
加
事
件
------------------------------------------------------------------------------ departmentM.addActionListener(new ActionListener() {//部门信息管理监听 public void actionPerformed(ActionEvent e) { System.out.println(\"Departmentmanage\"); deskpane.add(new bumenmanage());}});
employeeM.addActionListener(new ActionListener() {//基本信息管理监听 public void actionPerformed(ActionEvent e) { System.out.println(\"Employeemanage\");
deskpane.add(new Employeemanage());}});
wageM.addActionListener(new ActionListener() {//薪资信息管理监听 public void actionPerformed(ActionEvent e) { System.out.println(\"gongziManage\"); deskpane.add(new gongziManage());}}); //实例化信息查询的菜单项
JMenuItem departmentS = new JMenuItem(\"部门信息查询\"); departmentS.setFont(f);
JMenuItem employeeS = new JMenuItem(\"基本信息查询\"); employeeS.setFont(f);
JMenuItem wageS = new JMenuItem(\"薪资信息查询\"); wageS.setFont(f);
employeeSM.add(employeeS); employeeSM.add(wageS); selectM.add(employeeSM); selectM.add(departmentS); //实例化信息查询的菜单项结束
//为查询菜单加事件---------------------------------------------------------
departmentS.addActionListener(new ActionListener() {//部门信息查询监听 public void actionPerformed(ActionEvent e) { System.out.println(\"bumenchaxun\"); deskpane.add(new bumenchaxun());}});
employeeS.addActionListener(new ActionListener() {//基本信息查询监听 public void actionPerformed(ActionEvent e) { System.out.println(\"yuangongxxchaxun\"); deskpane.add(new yuangongxxchaxun());}});
wageS.addActionListener(new ActionListener() {//薪资信息查询监听 public void actionPerformed(ActionEvent e) { System.out.println(\"gongzichaxun\"); deskpane.add(new gongzichaxun());}}); JMenuItem about = new JMenuItem(\"关于\"); about.setFont(f); aboutM.add(about); //
为
帮
助
菜
单
加
事
------------------------------------------------------------------------- about.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { deskpane.add(new About());}}); mb.add(systemM); mb.add(manageM); mb.add(selectM); mb.add(aboutM); setJMenuBar(mb); //
以
下
全
都
是
在
添
加
图
件
标
---------------------------------------------------------------------------------- //窗口图标
Image img = Toolkit.getDefaultToolkit().getImage(\"image\\\\main.gif\"); setIconImage(img); //添加菜单图标
systemM.setIcon(icon9);
manageM.setIcon(icon8); selectM.setIcon(icon7); addDelete.setIcon(icon1); password.setIcon(icon3); exit.setIcon(icon4);
employeeMM.setIcon(icon5); employeeSM.setIcon(icon5);
departmentM.setIcon(icon10); departmentS.setIcon(icon11); aboutM.setIcon(icon13); about.setIcon(icon13); employeeM.setIcon(icon14); wageM.setIcon(icon14); employeeS.setIcon(icon15); wageS.setIcon(icon15);
JToolBar jToolBar1 = new JToolBar();//创建一个工具栏 jToolBar1.setLayout(new GridLayout(9, 1));//设置成网格布局 JButton jButton1 = new JButton();//创建并实例化按钮
jButton1.setToolTipText(\"员工基本信息管理\");//设置按钮悬停信息 JButton jButton2 = new JButton();
jButton2.setToolTipText(\"员工基本信息查询\"); JButton jButton3 = new JButton(); jButton3.setToolTipText(\"修改密码\"); JButton jButton5 = new JButton();
jButton5.setToolTipText(\"计算器\"); JButton jButton6 = new JButton(); jButton6.setToolTipText(\"退出系统\");
jToolBar1.setMaximumSize(new java.awt.Dimension(600, 50));//设置工具栏
最大值
jToolBar1.setMinimumSize(new java.awt.Dimension(600, 50));//设置工具栏
最小值
jButton1.setIcon(new ImageIcon(\"image//1.png\"));//添加左边第一个按钮1
图标
jButton1.addActionListener(new ActionListener() {//监听该按钮1图表显示 public void actionPerformed(ActionEvent e) { System.out.println(\"Employeemanage\"); deskpane.add(new Employeemanage());}});
jToolBar1.add(jButton1);//将按钮添加到JToolBar1中,以下同理添加按钮2 jButton2.setIcon(new ImageIcon(\"image//2.png\")); jButton2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { deskpane.add(new yuangongxxchaxun());}}); jToolBar1.add(jButton2);
jButton3.setIcon(new ImageIcon(\"image//3.png\")); jButton3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
deskpane.add(new xiugaiPassword());}}); jToolBar1.add(jButton3);
jButton5.setIcon(new ImageIcon(\"image//5.png\")); jButton5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(\"Calculator\"); deskpane.add(new jisuanqi());}}); jToolBar1.add(jButton5);
jButton6.setIcon(new javax.swing.ImageIcon(\"image//6.png\")); jButton6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0);}}); jToolBar1.add(jButton6); //添加工具栏中按钮的方法结束
jToolBar1.setBounds(0, 0, 30, 600);//工具栏位置 jToolBar1.setEnabled(false);//禁止更改大小 con.add(jToolBar1, BorderLayout.WEST);//布局
Label lb2 = new Label(\"欢 迎 使 用 员 工 管 理 系 统 !\"); lb2.setForeground(Color.black); p.setLayout(new BorderLayout()); p.add(lp1, BorderLayout.EAST); p.add(lb2, BorderLayout.CENTER);
t.start();
con.add(p, BorderLayout.SOUTH);
Toolkit t = Toolkit.getDefaultToolkit();//这个类是抽象的,一切实际实现的抽象
窗口工具包。类的工具包是用来约束的,实现各个组成部分的具体本地工具箱。 int width = t.getScreenSize().width - 200; int height = t.getScreenSize().height - 100; setSize(width, height); setLocation(150, 100); setVisible(true); setResizable(false);} //线程的方法 public void run() {
System.out.println(\"线程启动了!\");//友好提示 Toolkit t = Toolkit.getDefaultToolkit(); int x = t.getScreenSize().width; lp1.setForeground(Color.red); while (true) { if (x < -600) {
x = t.getScreenSize().width; } lp1.setBounds(x, 0, 700, 20); x -= 10; try {
Thread.sleep(100); } catch (Exception e) {}}}} (2)密码修改窗口 1)效果图
2)关键代码
//将所有用用户名读出来 database.joinDB();
String sql=\"select * from UserInformation\"; try{
if(database.query(sql)){
while(database.rs.next()){
String name=database.rs.getString(\"User_Name\"); tf.addItem(name);}}}
catch(Exception e){} //为确定按钮加事件
b1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String name=\"\" + tf.getSelectedItem(); System.out.println(name);
String sql=\"select * from UserInformation where User_Name='\"+ name +\"'\";
String
System.out.println(sql);
try{
if(database.query(sql)){ database.rs.next();
String ps1=pas1.getText();
String password=database.rs.getString(\"Password\"); if(ps1.equals(password)){
if(pas2.getText().equals(pas3.getText())){
UserInformation
set
Password='\"+
supdate=\"update
pas3.getText()+\"' where User_Name='\"+ name +\"'\"; database.executeSQL(supdate); 同!\");}} \");}}}
catch(Exception el){
System.out.println(el);}}});
else{
new JOptionPane().showMessageDialog(null,\"密码更改成功!\");}
else{
new JOptionPane().showMessageDialog(null,\"两次密码不
new JOptionPane().showMessageDialog(null,\"旧密码不正确!
(3)添加删除用户窗口 1)效果图
2)关键代码:
//将所有用用户名读出来 database.joinDB();
String sql = \"select * from UserInformation\"; try {
if (database.query(sql)) {
while (database.rs.next()) {//顺序读出所有用户名
String name = database.rs.getString(\"User_Name\"); cbUserName.addItem(name);}}} catch (Exception e) {} //为添加和取消按钮加事件----------------------------------------- butOk.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (txtname.getText().equals(\"\")) {
new JOptionPane().showMessageDialog(null, \"用户名不能为空!\");
} else if (pas1.getText().equals(\"\")) {
new JOptionPane().showMessageDialog(null, \"密码不能为空!\");
} else if (pas1.getText().equals(pas2.getText())) {String sql = \"insert UserInformation values('\" + txtname.getText() + \"','\" + pas1.getText() + \"','B')\"; try {
if (database.executeSQL(sql)) {
new JOptionPane().showMessageDialog(null, \"添加成功!\");
txtname.setText(\"\"); pas1.setText(\"\"); pas2.setText(\"\");
cbUserName.addItem(txtname.getText()); }} catch (Exception ea) {}}}});
butACancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { txtname.setText(\"\"); pas1.setText(\"\"); pas2.setText(\"\");}});
//为删除和取消按钮加事件--------------------------------------- butDelete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
String name = \"\" + cbUserName.getSelectedItem();
String sql = \"select * from UserInformation where User_Name='\" + name + \"'\";
try {
if (database.query(sql)) { database.rs.next();
String pas = pas3.getText();
String password = database.rs.getString(\"Password\"); System.out.println(password); if (pas.equals(password)) {
String sdelete = \"delete from UserInformation where User_Name='\" + name + \"'\";
if (database.executeSQL(sdelete)) {
new JOptionPane().showMessageDialog(null, \"删除成功!\");
pas3.setText(\"\");
cbUserName.removeAllItems();
String sql1 = \"select * from UserInformation\"; if (database.query(sql1)) { while (database.rs.next()) { String database.rs.getString(\"User_Name\");
cbUserName.addItem(name1);}}}} else {
new JOptionPane().showMessageDialog(null, \"原始密码不正确!\");
}}} catch (Exception el) { System.out.println(el);}}});
name1
=
butDCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pas3.setText(\"\");}});}} (4)员工基本信息窗口 1)效果图
2)关键代码
//连接数据库--------------------------------------- database.joinDB(); //
初
始
化
窗
体
数
---------------------------------------------------------------------------- String csql=\"select * from EmployeeInformation\"; try{
if(database.query(csql)){ database.rs.next();
txt_number.setText(\"\" + database.rs.getInt(\"E_Number\")); txt_name.setText(database.rs.getString(\"E_Name\")); if(database.rs.getString(\"E_Sex\").equals(\"男\")){
sex_cb.setSelectedIndex(0);}
else{
sex_cb.setSelectedIndex(1);}
txt_borndate.setText(database.rs.getString(\"E_BornDate\"));
据
tdepartment.setText(database.rs.getString(\"E_Department\")); if(database.rs.getString(\"E_Marriage\").equals(\"未婚\")){
marriage_cb.setSelectedIndex(0);}
else if(database.rs.getString(\"E_Marriage\").equals(\"已婚\")){
marriage_cb.setSelectedIndex(1);}
else{
txt_InDueFormDate.setText(database.rs.getString(\"E_InDueFormDate\")); if(database.rs.getString(\"E_PoliticsVisage\").equals(\"党员\")){
politicsVisage_cb.setSelectedIndex(0);} marriage_cb.setSelectedIndex(2);}
theadship.setText(database.rs.getString(\"E_Headship\"));
else{
politicsVisage_cb.setSelectedIndex(1);}
tschoolage.setText(database.rs.getString(\"E_SchoolAge\")); txt_enterdate.setText(database.rs.getString(\"E_EnterDate\")); if(database.rs.getString(\"E_Estate\").equals(\"在职\")){
estate_cb.setSelectedIndex(0);}
else if(database.rs.getString(\"E_Estate\").equals(\"停薪留职\")){
estate_cb.setSelectedIndex(1);}
else{
estate_cb.setSelectedIndex(2);}
remark_ta.setText(database.rs.getString(\"E_Remark\"));}} catch(Exception e){System.out.println(e);}; (5)员工基本信息查询窗口 1)效果图
2)关键代码
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent eBIQ) { System.out.println(\"按钮事件\"); String esql;
int rc = dtm.getRowCount(); for (int i = 0; i < rc; i++) { dtm.removeRow(0);}
if (btxtid.getText().equals(\"\") && btxtname.getText().equals(\"\")) {
esql = \"select * from EmployeeInformation\"; } else if (btxtname.getText().equals(\"\")) {
esql = \"select * from EmployeeInformation where E_Number = '\" + btxtid.getText() + \"'\"; } else {
esql = \"select * from EmployeeInformation where E_Number = '\" + btxtid.getText() + \"' or E_Name like '%\" + btxtname.getText() +
\"%'\";}
System.out.println(esql); if (database.query(esql)) { try {
while (database.rs.next()) { String database.rs.getInt(\"E_Number\"));
System.out.println(eNumber);
String eName = database.rs.getString(\"E_Name\"); System.out.println(eName);
String eSex = database.rs.getString(\"E_Sex\"); System.out.println(eSex); String database.rs.getString(\"E_BornDate\");
System.out.println(eBornDate); String database.rs.getString(\"E_Marriage\");
System.out.println(eMarriage); String
database.rs.getString(\"E_PoliticsVisage\");
System.out.println(ePoliticsVisage); String
eSchoolAge
=
ePoliticsVisage
=
eMarriage
=
eBornDate
=
eNumber
=
(\"\"
+
database.rs.getString(\"E_SchoolAge\");
System.out.println(eSchoolAge); String database.rs.getString(\"E_EnterDate\");
System.out.println(eEnterDate); String
database.rs.getString(\"E_InDueFormDate\");
System.out.println(eInDueFormDate); String database.rs.getString(\"E_Department\");
System.out.println(eDepartment); String database.rs.getString(\"E_Headship\");
System.out.println(eHeadship);
String eEstate = database.rs.getString(\"E_Estate\"); System.out.println(eEstate); String
eRemark
=
eHeadship
=
eDepartment
=
eInDueFormDate
=
eEnterDate
=
database.rs.getString(\"E_Remark\");
System.out.println(eRemark); Vector v = new Vector(); v.add(eNumber);
v.add(eName); v.add(eSex); v.add(eBornDate); v.add(eMarriage);
v.add(ePoliticsVisage); v.add(eSchoolAge);
v.add(eHeadship); v.add(eEstate);
v.add(eEnterDate); v.add(eRemark); v.add(eInDueFormDate); dtm.addRow(v); v.add(eDepartment); }} catch (Exception eB) {}}}}); (6)数据连接关键代码
public static boolean joinDB() { boolean joinFlag; try {
joinFlag = true;
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
cn = DriverManager.getConnection(\"jdbc:odbc:yggl\ cn.setCatalog(\"yggl\");
System.out.println(\"数据库连接成功\");
st = cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); return joinFlag;
} catch (SQLException sqlEx) {
System.out.println(sqlEx.getMessage()); joinFlag = false; return joinFlag;
} catch (ClassNotFoundException notfoundEX) { System.out.println(notfoundEX.getMessage()); joinFlag = false; return joinFlag;}}
public static boolean executeSQL(String sqlString) { boolean executeFlag; try {
st.execute(sqlString); executeFlag = true; } catch (Exception e) { executeFlag = false;
System.out.println(\"sql exception:\" + e.getMessage());} return executeFlag;}
public static boolean query(String sqlString) { try {
rs = null;
rs = st.executeQuery(sqlString); } catch (Exception Ex) {
System.out.println(\"sql exception:\" + Ex); return false;} return true;}}
第三章 总结与提高
员工管理是企事业单位内部必须切实面对的一项重要工作,但多年来人们一直在使用传统的人工方式进行有关管理。这种管理方式存在着许多众所周知的缺点,如效率低、保密性差且较为烦琐,另外随着职工数量的增加、人员层次的复杂化,管理人员的工作量也将大大增加。这必然增加了管理者的工作量和劳动强度,给员工资料信息的查找、更新和维护都带来了很多困难。
经过详细的调查,目前我国各类企事业单位中有相当一部分员工资料管理还停留在人工管理的基础上。尤其是中、小企业的情况更是如此,这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
员工管理系统主要针对一般企事业单位作为使用对象而开发的。系统开发的主要任务包括:数据库设计与维护、应用程序开发两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用JAVA 作为前端开发工具,利用其提供的集成开发环境及各种控件,完成对数据库的各种操作,达到对员工信息进行管理的目的。设计时首先需要建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统为止。
员工资料管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高资料管理的效率。因此,开发一套能够为用户提供充足信息和快捷的查询手段的员工资料管理系统,将是非常必要的,也是十分及时的。
在设计过程中,我除了对专业知识有了进一步的了解和运用,同时还学会了许多课外拓展的知识,也深刻认识到书本上的知识只是很浅的简单运用,真正开发实际运用软件的时候,
需要我们搜集和学习大量的相关知识,做出大量的市场数据调查,做好准确的项目可行性分析报告。只有在掌握了全面的数据信息以后,才能更好地开发符合市场需求的运用软件。当然一个项目的研发,需要各个开发人员的很好配合,在本次设计当中,我真切的体会到了小组成员之间的团结协作精神,这也是我们能够很好完成项目的一个关键之一。在这次设计中,我们学到了一些上课期间没学到的东西,比如虚拟窗口的加载(JDesktopPane deskpane = new JDesktopPane();deskpane.add(new bumenchaxun());)、数据的虚拟连接(cn = DriverManager.getConnection(\"jdbc:odbc:yggl\),窗体的反布局模式、各个窗口之间的相互调用、以及数据库与前台代码之间的乱码的解决方法(修改源包编码为gb2312或者GBk)等等。在我们取得成功的同时,我们也不能忽略遇到的问题,在设计当中,主要困难是在分析报告当中,不能考虑到很多需求,其次是在开发的过程中,我们不能很好的编写功能代码,不得不借助先关资料信息,这在独立开发的过程中存在一些困难。不管怎么样,通过小组成员的团结努力,查阅了大量的资料以后,都能基本上逐一的解决了所遇到的问题。
这次设计估计就是我们在学校实验室开发的最后一次设计了,以后面向的就是实际运用的设计了,走出了学校,并不意味着我们的学习就此停止,我们还得自主学习很多知识,以便将来在社会生产中能运用自己的专业知识创造更多的财富!
第四章 参考文献
【1】李锐、周巧婷.项目化Java教程.中国科学技术出版社
【2】赵杰 、杨柳、高巍.新编Java程序设计入门。天津科学技术出版社 【3】互联网资料
因篇幅问题不能全部显示,请点此查看更多更全内容