java课程设计----课程设计报告

java课程设计----课程设计报告

ID:9392019

大小:138.50 KB

页数:25页

时间:2018-04-30

上传者:U-5097
java课程设计----课程设计报告_第1页
java课程设计----课程设计报告_第2页
java课程设计----课程设计报告_第3页
java课程设计----课程设计报告_第4页
java课程设计----课程设计报告_第5页
资源描述:

《java课程设计----课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

java程序设计课程设计报告课题:雇员信息管理系统设计时间:2011年12月19号----2011年12月2日评阅意见:评定成绩:指导老师签名:年月日 目录1、开发背景22、系统描述23、分析与设计23.1、功能模块划分23.2、数据库结构描述33.3、系统功能模块图…………………………………………………………………………43.4、各模块的实现方法………………………………………………………………………44、系统测试65.总结及体会76、参考文献87、附录(源代码)……………………………………………………………………………………8 1.开发背景二十一世纪是信息的社会,信息作为最主要的资源,将成为战略资源引起人们的广泛关注。尤其在当今的企业,几乎在所有产业的各个领域,信息及信息流通成为必不可少的部分。例如招聘员工、员工培训以及职位调动、工资管理,无不需要信息的存储和参考。面对庞大的信息量,雇员信息管理系统用来提高公司档案管理的工作率,帮助公司对雇员档案进行系统化、计算机化、规范化管理,促进固原档案的完整、规范和全面,保证雇员信息管理工作有条不紊的进行。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字符10 3.3系统功能模块图 雇员信息管理系统雇员信息查询雇员信息修改雇员加薪雇员减薪3.4各模块的实现方法(关键代码)雇员加薪和减薪的实现方法publicvoidpromoteSalary(intdegree){switch(degree){case-1:break;casePromoteDegree.PromoteLeve0:this.Salary=this.getSalary()+100;break;casePromoteDegree.PromoteLeve1:this.Salary=this.getSalary()+500;break;casePromoteDegree.PromoteLeve2:this.Salary=this.getSalary()+1000;break;default: break;}}/***@authorAdministrator*@paramdegree根据员工的违规等级扣薪水*/publicvoiddemoteSalary(intdegree){switch(degree){case-1:break;caseDemoteDegree.DemoteLevel0:if(this.getSalary()<=100.0)this.Salary=0;elsethis.Salary=this.getSalary()-100;break;caseDemoteDegree.DemoteLevel1:if(this.getSalary()<=500.0)this.Salary=0;elsethis.Salary=this.getSalary()-500;break;caseDemoteDegree.DemoteLevel2:if(this.getSalary()<=1000.0)this.Salary=0;elsethis.Salary=this.getSalary()-1000;break;default:break;} }雇员基本信息的修改实现方法publicbooleanupdateEmployeeInfo(){StringupdateSql="UPDATEEmployees"+"SETFIRST_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+"WHERE1=1ANDEMPLOYEE_ID="+this.Employee_ID+"";System.out.println(updateSql);returnnewTableData().UpdateTableData(updateSql)}4、系统测试主界面 雇员加薪、加薪成功5、总结及体会通过为期一周的课程设计,我们小组三人以分工的形式完成了雇员信息管理系统。杨方瑞做用户界面设计和雇员信息查询功能这一块,王霞做类的定义以及成员方法的定义和雇员工资管理这一块,我做的是数据库的设计、表的建立以及数据库的连接。我们在做的过程中都遇到了一些问题,以前我们做课程设计时没有涉及到数据库,做Java实验时很少用到eclipse软件,所以相对来说挑战有点大。经过查阅参考资料,我们一起讨论怎么解决问题,以及在老师的帮助下,终于把这个系统中涉及的知识点弄明白了,并把程序调试出来了。我们了解到,eclipse软件是一款很棒的开发Java工程的软件,它会自动提示错误,让我们把时间主要花在设计的工作上,而不是枯燥乏味的改错上。另外,数据库非常重要,我们接触过的数据库有Access,SQLServer和Oracle,分别为小型,中型,大型数据库。如果我们要做一个成功的实用的系统,数据库的设计是占了比较大的比重的。 这一次课程设计,我们的系统,即雇员信息管理系统,比较不足的地方是实现的功能少,因为雇员信息管理包括培训信息,工资管理,职位调动、离岗信息,部门信息等。在一个企业,人事管理部门需要对以上信息进行有效的管理,员工也可以查询相关信息,各个功能模块间的联系也比较大。由于时间和精力有限,我们只完成了一小部分。6、参考文献李尊朝,苏军.Java语言程序设计(第二版).北京:中国铁道出版社,2004黄晓东.Java课程设计案例精编(第二版).北京:中国水利水电出版社,20047、附录(源代码)packageUI;importrecords.*;importaccessDB.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.*;publicclassDisplayUIextendsJFrame{publicstaticVectorEmpList=null;publicstaticintCurrentPosition=0;privateJTextFieldtxtEmployee_ID;privateJTextFieldtxtFirstName; privateJTextFieldtxtLastName;privateJTextFieldtxtEmail;privateJTextFieldtxtTel;privateJTextFieldtxtEmployeeDate;privateJTextFieldtxtEmployeeJob;privateJTextFieldtxtSalary;privateJTextFieldtxtManagerID;privateJTextFieldtxtDepartmentID;privateCheckboxrdbPromote;privateCheckboxrdbDemote;privateJComboBoxcmbBox;privateCheckboxGroupchkGroup;privatevoidAddControlToPane(){this.setSize(800,600);//设置布局管理器GridBagConstraintscons=newGridBagConstraints();this.setLayout(newGridBagLayout());cons.gridx=0;cons.gridy=0;cons.gridwidth=1;cons.gridheight=1;JLabellblEmployee_ID=newJLabel("雇员编号");this.add(lblEmployee_ID,cons);cons.gridx=1;cons.gridy=0;cons.gridwidth=1;cons.gridheight=1;txtEmployee_ID=newJTextField(10);txtEmployee_ID.setEditable(true);this.add(txtEmployee_ID,cons);cons.gridx=0; cons.gridy=1;cons.gridwidth=1;cons.gridheight=1;JLabellblFirstName=newJLabel("姓:");this.add(lblFirstName,cons);cons.gridx=1;cons.gridy=1;cons.gridwidth=1;cons.gridheight=1;txtFirstName=newJTextField(10);txtFirstName.setEditable(true);this.add(txtFirstName,cons);cons.gridx=2;cons.gridy=1;cons.gridwidth=1;cons.gridheight=1;JLabellblLastName=newJLabel("名:");lblLastName.setAlignmentX(0);this.add(lblLastName,cons);cons.gridx=3;cons.gridy=1;cons.gridwidth=1;cons.gridheight=1;txtLastName=newJTextField(10);txtLastName.setEditable(true);this.add(txtLastName,cons);cons.gridx=0;cons.gridy=2;cons.gridwidth=1;cons.gridheight=1; JLabellblEmail=newJLabel("电子邮件:");this.add(lblEmail,cons);cons.gridx=1;cons.gridy=2;cons.gridwidth=1;cons.gridheight=1;txtEmail=newJTextField(10);this.add(txtEmail,cons);cons.gridx=2;cons.gridy=2;cons.gridwidth=1;cons.gridheight=1;JLabellblTel=newJLabel("电话号码:");this.add(lblTel,cons);cons.gridx=3;cons.gridy=2;cons.gridwidth=1;cons.gridheight=1;txtTel=newJTextField(10);this.add(txtTel,cons);cons.gridx=0;cons.gridy=3;cons.gridwidth=1;cons.gridheight=1;JLabellblEmployeeDate=newJLabel("雇佣日期:");this.add(lblEmployeeDate,cons);cons.gridx=1;cons.gridy=3;cons.gridwidth=1;cons.gridheight=1; txtEmployeeDate=newJTextField(10);this.add(txtEmployeeDate,cons);cons.gridx=2;cons.gridy=3;cons.gridwidth=1;cons.gridheight=1;JLabellblEmployeeJob=newJLabel("从事工作:");this.add(lblEmployeeJob,cons);cons.gridx=3;cons.gridy=3;cons.gridwidth=1;cons.gridheight=1;txtEmployeeJob=newJTextField(10);this.add(txtEmployeeJob,cons);cons.gridx=0;cons.gridy=4;cons.gridwidth=1;cons.gridheight=1;JLabellblManagerID=newJLabel("主管编号:");this.add(lblManagerID,cons);cons.gridx=1;cons.gridy=4;cons.gridwidth=1;cons.gridheight=1;txtManagerID=newJTextField(10);this.add(txtManagerID,cons);cons.gridx=2;cons.gridy=4;cons.gridwidth=1;cons.gridheight=1; JLabellblDepartmentID=newJLabel("部门编号:");this.add(lblDepartmentID,cons);cons.gridx=3;cons.gridy=4;cons.gridwidth=1;cons.gridheight=1;txtDepartmentID=newJTextField(10);this.add(txtDepartmentID,cons);cons.gridx=0;cons.gridy=5;cons.gridwidth=1;cons.gridheight=1;JLabellblSalary=newJLabel("薪水:");this.add(lblSalary,cons);cons.gridx=1;cons.gridy=5;cons.gridwidth=1;cons.gridheight=1;txtSalary=newJTextField(10);txtSalary.setEditable(true);this.add(txtSalary,cons);cons.gridx=0;cons.gridy=6;cons.gridwidth=1;cons.gridheight=1;rdbPromote=newCheckbox("提升工资:");this.add(rdbPromote,cons);cons.gridx=1;cons.gridy=6;cons.gridwidth=1; cons.gridheight=1;rdbDemote=newCheckbox("降低工资");this.add(rdbDemote,cons);chkGroup=newCheckboxGroup();rdbPromote.setCheckboxGroup(chkGroup);rdbDemote.setCheckboxGroup(chkGroup);chkGroup.setSelectedCheckbox(null);cons.gridx=2;cons.gridy=6;cons.gridwidth=1;cons.gridheight=1;JLabellblGrade=newJLabel("变动等级:");this.add(lblGrade,cons);cons.gridx=3;cons.gridy=6;cons.gridwidth=1;cons.gridheight=1;cmbBox=newJComboBox(newString[]{"","一级","二级","三级"});this.add(cmbBox,cons);//当下拉列表框选项内容发生变化时,调用DisplaySalary函数,正确显示当前设定的薪水数目cmbBox.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){DisplaySalary();}});cons.gridx=0;cons.gridy=7;cons.gridwidth=1;cons.gridheight=1;JButtonbtnSubmit=newJButton("提交:"); this.add(btnSubmit,cons);//注册失败,处理提交情况btnSubmit.setActionCommand("Submit");btnSubmit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("Submit")){//读取数据并保存if(txtEmployee_ID.getText().equals("")==false){Employeeemp=newEmployee();//显示雇员的相关信息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);//向数据库中保存记录BooleaniRet=((Employee)(EmpList.elementAt(DisplayUI.CurrentPosition))).updateEmployeeInfo();if(iRet==true){JOptionPane.showMessageDialog(null,"更新成功","正确",JOptionPane.INFORMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"更新失败","错误",JOptionPane.ERROR_MESSAGE);}}elseJOptionPane.showMessageDialog(null,"更新失败","错误",JOptionPane.ERROR_MESSAGE);}} });cons.gridx=1;cons.gridy=7;cons.gridwidth=1;cons.gridheight=1;JButtonbtnPrex=newJButton("前一条");this.add(btnPrex,cons);//注册事件btnPrex.setActionCommand("PrexRecord");btnPrex.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("PrexRecord")){if(DisplayUI.EmpList==null||DisplayUI.EmpList.size()<=0)return;//前一个位置intposition=(DisplayUI.CurrentPosition-1+DisplayUI.EmpList.size())%(DisplayUI.EmpList.size());DisplayUI.CurrentPosition=position;//System.out.println("CurrentPosition:"+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;JButtonbtnNext=newJButton("下一条");this.add(btnNext,cons);//注册事件btnNext.setActionCommand("NextRecord"); btnNext.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(DisplayUI.EmpList==null||DisplayUI.EmpList.size()<=0)return;intposition=(DisplayUI.CurrentPosition+1)%(DisplayUI.EmpList.size());DisplayUI.CurrentPosition=position;//System.out.println("CurrentPosition:"+DisplayUI.CurrentPosition);DisplayDataOnUi((Employee)(DisplayUI.EmpList.elementAt(DisplayUI.CurrentPosition)));chkGroup.setSelectedCheckbox(null);cmbBox.setSelectedIndex(0);}});cons.gridx=3;cons.gridy=7;cons.gridwidth=1;cons.gridheight=1;JButtonbtnCancel=newJButton("取消");this.add(btnCancel,cons);//注册事件btnCancel.setActionCommand("Cancel");btnCancel.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("Cancel")){System.out.println("Exiting~~~~~~~");System.exit(1);}} });this.pack();this.setTitle("员工工资信息管理");this.setVisible(true);}privatevoidFillEmpList(){this.EmpList=newEmployeeList().getEmployeeList();}privatevoidInitDisplayData(){//显示第一条数据if(this.EmpList!=null&&this.EmpList.size()>0){Employeeemp=(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());}}privatevoidDisplayDataOnUi(Employeeemp){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());}privatevoidDisplaySalary(){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()));}} publicstaticvoidmain(Stringargs[]){DisplayUIui=newDisplayUI();ui.AddControlToPane();ui.FillEmpList();ui.InitDisplayData();}}packageaccessDB;importjava.util.*;importjava.sql.*;importjavax.sql.*;importjava.io.*;importjavax.naming.*;publicclassDBConnection{publicDBConnection(){}publicjava.sql.ConnectionconnectDbByThin(){java.sql.Connectionconn=null;try{conn=DriverManager.getConnection(DBConstantVariable.ConnStr,DBConstantVariable.UserName,DBConstantVariable.Password);if(conn!=null){System.out.println("Hello,Connectok!");returnconn;}else{System.out.println("DatabaseConnectionError!");}}catch(Exceptione){System.out.println("Error:"+e.getMessage()); }returnconn;}publicjava.sql.ConnectionconnectByJdbc(StringuserId,Stringpassword){java.sql.Connectionconn=null;try{Class.forName(DBConstantVariable.DBDriver);conn=DriverManager.getConnection(DBConstantVariable.ConnStr,userId,password);if(conn!=null){System.out.println("Hello,Connectok!");returnconn;}else{System.out.println("DatabaseConnectionError!");}}catch(Exceptione){System.out.println("ERROR:"+e.getMessage());}returnconn;}publicclassDBConstantVariable{finalstaticStringConnStr="jdbc:odbc:dbmm";finalstaticStringDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";finalstaticStringUserName="sa";finalstaticStringPassword="";publicfinalstaticStringEmployeeTable="employees";}importjava.util.*;importjava.sql.*;importjavax.sql.*;publicclassTableData{privateConnectionconn=newDBConnection().connectByJdbc(DBConstantVariable.UserName,DBConstantVariable.Password);privateResultSetdataSet=null;publicResultSetgetAllTableData(StringtableName) {StringtableQuery="SELECT*FROM"+tableName;try{Statementstat=conn.createStatement();if(conn==null){System.out.println("DatabaseConnectionError!");System.exit(-1);}dataSet=stat.executeQuery(tableQuery);System.out.println("QueryOK!");}catch(SQLExceptionex){System.out.println("SqlexceptionTableData.java24"+ex.getMessage()+"!");System.exit(-1);}catch(Exceptionex){System.out.println("Exception"+ex.getMessage()+"!");System.exit(-1);}returndataSet;}publicbooleanColseResultSet(){try{if(this.dataSet!=null)this.dataSet.close();if(this.conn.isClosed()==true)returntrue;else{this.conn.close();returntrue;}}catch(SQLExceptionex){System.out.println("CloseConnectionError!");System.exit(-1);} catch(Exceptionex){System.out.println("UnhandleExceptionError!");}returnfalse;}publicbooleanUpdateTableData(StringsqlState){StringtableUpdate=sqlState;try{Statementstat=conn.createStatement();if(conn==null){System.out.println("DatabaseConnectionError!");returnfalse;}stat.executeUpdate(tableUpdate);stat.close();returntrue;}catch(SQLExceptionex){System.out.println("SqlexceptioUpdateTableData"+ex.getMessage()+"!");}catch(Exceptionex){System.out.println("Exception"+ex.getMessage()+"!");}returnfalse;}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭