已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java程序设计 课程设计报告课 题: 雇员信息管理系统 设计时间:2011年12月19号-2011年12月2日评阅意见:评定成绩: 指导老师签名: 年 月 日目 录1、开发背景22、系统描述23、分析与设计23.1、功能模块划分23.2、数据库结构描述33.3、系统功能模块图43.4、各模块的实现方法44、系统测试65. 总结及体会76、参考文献87、附录(源代码)81.开发背景二十一世纪是信息的社会,信息作为最主要的资源,将成为战略资源引起人们的广泛关注。尤其在当今的企业,几乎在所有产业的各个领域,信息及信息流通成为必不可少的部分。例如招聘员工、员工培训以及职位调动、工资管理,无不需要信息的存储和参考。面对庞大的信息量,雇员信息管理系统用来提高公司档案管理的工作率,帮助公司对雇员档案进行系统化、计算机化、规范化管理,促进固原档案的完整、规范和全面,保证雇员信息管理工作有条不紊的进行。2、系统描述雇员信息管理系统实现的功能主要是雇员信息管理,如雇员基本信息查询、修改、添加、删除,雇员职位调动时工资的调整,可以对雇员的姓名、部门号、职务、经理号等信息进行修改。3、分析与设计3.1功能模块划分界面设计根据需要,界面应该提供如下功能:雇员编号、姓、名、电子邮件、电话号码、雇佣日期、从事工作编号、薪水、有关薪水的升降操作、所属主管的编号、部门编号等。查阅模块通过主界面的“前一条”、“下一条”按钮可以查阅整个员工工资及信息情况。工资管理模块单击主界面上的“提升工资”、“降低工资”,并选择工资变动的等级,然后单击“提交”按钮,就可以对员工的薪水进行设置。3.2数据库结构描述数据库名称:雇员信息表表名称: Employees字段名数据类型长度备注EMPLOYEE_ID字符10主码FIRST_NAME字符20非空LAST_NAME字符20非空EMAIL字符20PHONE_NUMBER字符20True或者falseHire_DatedatetimeJOB_ID字符20SALARYRealMANAGER_ID字符10DEPARTMENT_ID字符103.3系统功能模块图雇员信息管理系统雇员信息查询雇员信息修改雇员加薪雇员减薪3.4各模块的实现方法(关键代码)雇员加薪和减薪的实现方法public void promoteSalary(int degree)switch(degree)case -1:break;case PromoteDegree.PromoteLeve0:this.Salary = this.getSalary()+100;break;case PromoteDegree.PromoteLeve1:this.Salary = this.getSalary()+ 500;break;case PromoteDegree.PromoteLeve2:this.Salary = this.getSalary() + 1000;break;default:break;/* author Administrator* param degree 根据员工的违规等级扣薪水*/public void demoteSalary(int degree)switch(degree)case -1:break;case DemoteDegree.DemoteLevel0:if( this.getSalary() = 100.0 )this.Salary = 0;elsethis.Salary = this.getSalary() - 100;break;case DemoteDegree.DemoteLevel1:if( this.getSalary() = 500.0 )this.Salary = 0;elsethis.Salary = this.getSalary()- 500;break;case DemoteDegree.DemoteLevel2:if( this.getSalary() = 1000.0 )this.Salary = 0;elsethis.Salary = this.getSalary() - 1000;break;default:break;雇员基本信息的修改实现方法public boolean updateEmployeeInfo()String updateSql = UPDATE Employees + SET FIRST_NAME= + this.FirstName + , LAST_NAME =+ this.LastName +, EMAIL= + this.Email + , PHONE_NUMBER = + this.Phone_Number +, JOB_ID= + this.Job_ID + , SALARY= + this.Salary +, MANAGER_ID= +this.Manager_ID + ,DEPARTMENT_ID =+ this.Department_ID + WHERE 1=1 AND EMPLOYEE_ID= + this.Employee_ID+ ;System.out.println(updateSql);return new TableData().UpdateTableData( updateSql )4、系统测试主界面雇员加薪、加薪成功5、总结及体会通过为期一周的课程设计,我们小组三人以分工的形式完成了雇员信息管理系统。杨方瑞做用户界面设计和雇员信息查询功能这一块,王霞做类的定义以及成员方法的定义和雇员工资管理这一块,我做的是数据库的设计、表的建立以及数据库的连接。我们在做的过程中都遇到了一些问题,以前我们做课程设计时没有涉及到数据库,做Java实验时很少用到eclipse软件,所以相对来说挑战有点大。经过查阅参考资料,我们一起讨论怎么解决问题,以及在老师的帮助下,终于把这个系统中涉及的知识点弄明白了,并把程序调试出来了。我们了解到,eclipse软件是一款很棒的开发Java工程的软件,它会自动提示错误,让我们把时间主要花在设计的工作上,而不是枯燥乏味的改错上。另外,数据库非常重要,我们接触过的数据库有Access,SQL Server和Oracle,分别为小型,中型,大型数据库。如果我们要做一个成功的实用的系统,数据库的设计是占了比较大的比重的。这一次课程设计,我们的系统,即雇员信息管理系统,比较不足的地方是实现的功能少,因为雇员信息管理包括培训信息,工资管理,职位调动、离岗信息,部门信息等。在一个企业,人事管理部门需要对以上信息进行有效的管理,员工也可以查询相关信息,各个功能模块间的联系也比较大。由于时间和精力有限,我们只完成了一小部分。6、参考文献李尊朝,苏军.Java语言程序设计(第二版).北京:中国铁道出版社,2004黄晓东.Java课程设计案例精编(第二版).北京:中国水利水电出版社,20047、附录(源代码)package UI;import records.*;import accessDB.*;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;import java.util.*;public class DisplayUI extends JFramepublic static Vector EmpList = null;public static int CurrentPosition = 0;private JTextField txtEmployee_ID;private JTextField txtFirstName;private JTextField txtLastName;private JTextField txtEmail;private JTextField txtTel;private JTextField txtEmployeeDate;private JTextField txtEmployeeJob;private JTextField txtSalary;private JTextField txtManagerID;private JTextField txtDepartmentID;private Checkbox rdbPromote;private Checkbox rdbDemote;private JComboBox cmbBox;private CheckboxGroup chkGroup;private void AddControlToPane() this.setSize(800,600);/设置布局管理器GridBagConstraints cons = new GridBagConstraints();this.setLayout(new GridBagLayout();cons.gridx = 0;cons.gridy = 0;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblEmployee_ID = new JLabel(雇员编号);this.add(lblEmployee_ID,cons);cons.gridx = 1;cons.gridy = 0;cons.gridwidth = 1;cons.gridheight = 1;txtEmployee_ID = new JTextField(10);txtEmployee_ID.setEditable(true);this.add(txtEmployee_ID, cons);cons.gridx = 0;cons.gridy = 1;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblFirstName = new JLabel(姓:);this.add(lblFirstName,cons);cons.gridx = 1;cons.gridy = 1;cons.gridwidth = 1;cons.gridheight = 1;txtFirstName = new JTextField(10);txtFirstName.setEditable(true);this.add( txtFirstName , cons);cons.gridx = 2;cons.gridy = 1;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblLastName = new JLabel(名:);lblLastName.setAlignmentX(0);this.add( lblLastName,cons);cons.gridx = 3;cons.gridy = 1;cons.gridwidth = 1;cons.gridheight = 1;txtLastName = new JTextField(10);txtLastName.setEditable(true);this.add( txtLastName , cons);cons.gridx = 0;cons.gridy = 2;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblEmail = new JLabel(电子邮件:);this.add( lblEmail,cons);cons.gridx = 1;cons.gridy = 2;cons.gridwidth = 1;cons.gridheight = 1;txtEmail = new JTextField(10);this.add( txtEmail,cons);cons.gridx = 2;cons.gridy = 2;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblTel = new JLabel(电话号码:);this.add( lblTel,cons);cons.gridx = 3;cons.gridy = 2;cons.gridwidth = 1;cons.gridheight = 1;txtTel = new JTextField(10);this.add(txtTel,cons);cons.gridx = 0;cons.gridy = 3;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblEmployeeDate = new JLabel(雇佣日期:);this.add( lblEmployeeDate, cons);cons.gridx = 1;cons.gridy = 3;cons.gridwidth = 1;cons.gridheight = 1;txtEmployeeDate = new JTextField(10);this.add( txtEmployeeDate, cons);cons.gridx = 2;cons.gridy = 3;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblEmployeeJob = new JLabel(从事工作:);this.add( lblEmployeeJob,cons);cons.gridx = 3;cons.gridy = 3;cons.gridwidth = 1;cons.gridheight = 1;txtEmployeeJob = new JTextField(10);this.add( txtEmployeeJob,cons);cons.gridx = 0;cons.gridy = 4;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblManagerID = new JLabel(主管编号:);this.add( lblManagerID,cons);cons.gridx = 1;cons.gridy = 4;cons.gridwidth = 1;cons.gridheight = 1;txtManagerID = new JTextField(10);this.add( txtManagerID,cons);cons.gridx = 2;cons.gridy = 4;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblDepartmentID = new JLabel(部门编号:);this.add( lblDepartmentID,cons);cons.gridx = 3;cons.gridy = 4;cons.gridwidth = 1;cons.gridheight = 1;txtDepartmentID = new JTextField(10);this.add( txtDepartmentID,cons);cons.gridx = 0;cons.gridy = 5;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblSalary = new JLabel(薪水:);this.add( lblSalary ,cons);cons.gridx = 1;cons.gridy = 5;cons.gridwidth = 1;cons.gridheight = 1;txtSalary = new JTextField(10);txtSalary.setEditable(true);this.add( txtSalary ,cons);cons.gridx = 0;cons.gridy = 6;cons.gridwidth = 1;cons.gridheight = 1;rdbPromote = new Checkbox(提升工资:);this.add( rdbPromote,cons);cons.gridx=1;cons.gridy=6;cons.gridwidth=1;cons.gridheight=1;rdbDemote=new Checkbox(降低工资);this.add(rdbDemote,cons);chkGroup = new CheckboxGroup();rdbPromote.setCheckboxGroup( chkGroup );rdbDemote.setCheckboxGroup(chkGroup);chkGroup.setSelectedCheckbox( null );cons.gridx = 2;cons.gridy = 6;cons.gridwidth = 1;cons.gridheight = 1;JLabel lblGrade = new JLabel(变动等级:);this.add( lblGrade,cons);cons.gridx = 3;cons.gridy = 6;cons.gridwidth = 1;cons.gridheight = 1;cmbBox = new JComboBox(new String,一级,二级,三级);this.add( cmbBox,cons);/当下拉列表框选项内容发生变化时,调用DisplaySalary函数,正确显示当前设定的薪水数目cmbBox.addActionListener( new ActionListener()public void actionPerformed(ActionEvent e)DisplaySalary(););cons.gridx = 0;cons.gridy = 7;cons.gridwidth = 1;cons.gridheight = 1;JButton btnSubmit = new JButton(提交:);this.add( btnSubmit,cons);/注册失败,处理提交情况btnSubmit.setActionCommand(Submit);btnSubmit.addActionListener( new ActionListener()public void actionPerformed(ActionEvent e)if( e.getActionCommand().equals(Submit)/读取数据并保存if( txtEmployee_ID.getText().equals() = false)Employee emp =new Employee();/显示雇员的相关信息emp.setEmployee_ID(Integer.parseInt(txtEmployee_ID.getText();emp.setFirstName( txtFirstName.getText();emp.setLastName( txtLastName.getText();emp.setEmail( txtEmail.getText();emp.setPhone_Number( txtTel.getText();emp.setJob_ID( txtEmployeeJob.getText();emp.setSalary( Float.parseFloat (txtSalary.getText();emp.setManager_ID( Integer.parseInt (txtManagerID.getText();emp.setDepartment_ID( txtDepartmentID.getText();EmpList.setElementAt( emp,DisplayUI.CurrentPosition);/向数据库中保存记录Boolean iRet =(Employee)(EmpList.elementAt (DisplayUI.CurrentPosition).updateEmployeeInfo();if( iRet = true)JOptionPane.showMessageDialog(null,更新成功,正确,JOptionPane.INFORMATION_MESSAGE);elseJOptionPane.showMessageDialog(null,更新失败,错误,JOptionPane.ERROR_MESSAGE);elseJOptionPane.showMessageDialog(null,更新失败,错误,JOptionPane.ERROR_MESSAGE); );cons.gridx = 1;cons.gridy = 7;cons.gridwidth = 1;cons.gridheight = 1;JButton btnPrex = new JButton(前一条);this.add(btnPrex,cons);/注册事件btnPrex.setActionCommand(PrexRecord);btnPrex.addActionListener( new ActionListener()public void actionPerformed(ActionEvent e)if (e.getActionCommand().equals(PrexRecord)if(DisplayUI.EmpList = null | DisplayUI.EmpList.size()=0)return;/前一个位置int position = (DisplayUI.CurrentPosition -1 + DisplayUI.EmpList.size()%(DisplayUI.EmpList.size();DisplayUI.CurrentPosition = position;/System.out.println(Current Position :+DisplayUI.CurrentDataOnUi);DisplayDataOnUi( (Employee) (DisplayUI.EmpList.elementAt(DisplayUI.CurrentPosition);chkGroup.setSelectedCheckbox( null );cmbBox.setSelectedIndex(0););cons.gridx = 2;cons.gridy = 7;cons.gridwidth = 1;cons.gridheight = 1;JButton btnNext = new JButton(下一条);this.add( btnNext, cons);/注册事件btnNext.setActionCommand(NextRecord);btnNext.addActionListener( new ActionListener()public void actionPerformed(ActionEvent e)if(DisplayUI.EmpList = null | DisplayUI.EmpList.size()0 )Employee emp = (Employee)this.EmpList.elementAt(0);this.txtEmployee_ID.setText(Integer.toString(emp.getEmployee_ID();this.txtFirstName.setText( emp.getFirstName();this.txtLastName.setText(emp.getLastName();this.txtEmail.setText( emp.getEmail();this.txtTel.setText( emp.getPhone_Number();this.txtEmployeeDate.setText( emp.getHire_Date().toString();this.txtEmployeeJob.setText( emp.getJob_ID();this.txtSalary.setText( Float.toString( emp.getSalary();this.txtManagerID.setText( Integer.toString(emp.getManager_ID();this.txtDepartmentID.setText( emp.getDepartment_ID();private void DisplayDataOnUi(Employee emp)this.txtEmployee_ID.setText(Integer.toString(emp.getEmployee_ID();this.txtFirstName.setText( (emp.getFirstName();this.txtLastName.setText( emp.getLastName();this.txtEmail.setText(emp.getEmail();this.txtTel.setText( emp.getPhone_Number().toLowerCase();this.txtEmployeeDate.setText(emp.getHire_Date();this.txtEmployeeJob.setText( emp.getJob_ID();this.txtSalary.setText(Float.toString( emp.getSalary();this.txtManagerID.setText( Integer.toString(emp.getManager_ID();this.txtDepartmentID.setText(emp.getDepartment_ID();private void DisplaySalary()if( chkGroup.getSelectedCheckbox() = rdbPromote & cmbBox.getSelectedIndex()0)/升薪(Employee)EmpList.elementAt(DisplayUI.CurrentPosition).promoteSalary(cmbBox.getSelectedIndex()-1);/显示txtSalary.setText( Float.toString(Employee)EmpList.elementAt(DisplayUI.CurrentPosition).getSalary();if( chkGroup.getSelectedCheckbox() = rdbDemote & cmbBox.getSelectedIndex()0)/降薪(Employee)EmpList.elementAt(DisplayUI.CurrentPosition).demoteSalary(cmbBox.getSelectedIndex()-1);/显示txtSalary.setText( Float.toString(Employee)EmpList.elementAt(DisplayUI.CurrentPosition).getSalary();public static void main(String args)DisplayUI ui =new DisplayUI();ui.AddControlToPane();ui.FillEmpList();ui.InitDisplayData();package accessDB;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import javax.naming.*;public class DBConnection public DBConnection()public java.sql.Connection connectDbByThin()java.sql.Connection conn=null;tryconn=DriverManager.getConnection(DBConstantVariable.ConnStr, DBConstantVariable.UserName, DBConstantVariable.Password);if(conn!=null)System.out.println(Hello,Connect ok!);return conn;elseSystem.out.println(Database Connection Error!);catch(Exception e)System.out.println(Error:+e.getMessage();return conn;public java.sql.Connection connectByJdbc(String userId ,String password)java.sql.Connection conn=null;tryClass.forName(DBConstantVariable.DBDriver);conn=DriverManager.getConnection(DBConstantVariable.ConnStr, userId, password);if(conn!=null)System.out.println(Hello,Connect ok!);return conn;elseSystem.out.println(Database Connection Error!);catch(Exception e)System.out.println(ERROR:+e.getMessage();return conn;public class DBConstantVariable final static String ConnStr=jdbc:odbc:dbmm;final static String DBDriver=sun.jdbc.odbc.JdbcOdbcDriver;final static String UserName=sa;final static String Password=;public final static String EmployeeTable=employees;import java.util.*;im
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工方案安全落实措施(3篇)
- 更换消防管路施工方案(3篇)
- 桥面铺张安全施工方案(3篇)
- 水泥增强剂施工方案(3篇)
- 洗浴中心营销管理方案(3篇)
- 清淤补偿专项施工方案(3篇)
- 特殊悬挂吊篮施工方案(3篇)
- 社区阿姨活动策划方案(3篇)
- 粉店活动营销方案策划(3篇)
- 美甲店快餐式营销方案(3篇)
- 2025年外贸跟单员招聘面试题库及参考答案
- 《概念验证服务规范》
- DB45-T 2714-2023 消防车道和消防车登高操作场地管理规范
- 2026届新高考语文热点冲刺复习:《审题细斟酌+答题明指向》-文学类文本阅读情境鉴赏类题目破解
- IT部门安全培训课件
- 征信从业人员上岗考试题及答案解析
- 邮储银行2025泰州市秋招无领导小组面试案例题库
- 东北电网调度运行规程与操作策略解析
- 《金相检验》课件-第七单元 钢的化学热处理及表面淬火的金相检验
- 互联网银行课件
- 人教版高中高二《美术》选择性必修一-为眼睛做导游(建构画面)-教学设计
评论
0/150
提交评论