职工管理系统java课程设计简单实现样本.doc
《职工管理系统java课程设计简单实现样本.doc》由会员分享,可在线阅读,更多相关《职工管理系统java课程设计简单实现样本.doc(36页珍藏版)》请在咨信网上搜索。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 目录 一、 绪论 1 1.1关键技术介绍 1 1.1.1JAVA技术 1 1.1.2SQL数据库 1 二、 需求分析 2 三、 系统概要设计: 3 3.1问题描述 3 3.2要求 3 3.3数据库设计 3 四、 系统详细设计 5 4.1新员工信息录入 5 4.2显示员工信息 6 4.3修改员工信息 7 4.4查询员工信息 9 4.5删除员工信息 10 4.6员工信息排序 11 4.7员工信息统计 12 4.8注销 13 五、 系统测试 14 5.1系统登录 14 5.2系统主界面 14 5.3新员工信息录入 15 5.4显示员工信息 16 5.5修改员工信息 17 5.6查询员工信息 18 5.7删除员工信息 19 5.8排列系统 20 5.9统计界面 20 5.10注销 21 六、 总结 22 八、 附录 23 职工信息管理系统设计 一、 绪论 1.1关键技术介绍 Java是一种能够撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、 高效性、 平台移植性和安全性, 广泛应用于PC、 数据中心、 游戏控制台、 科学超级计算机、 移动电话和互联网, 同时拥有全球最大的开发者专业社群。主要工作是经过编程语言来制作互联网页面、 制作动态效果以及网站等技术。 1.1.1JAVA技术 Java是当前最为流行的程序设计语言。Java中的高级技术, 其中的多线程、 集合、 泛型、 RTTI等。实际编程中GUI程序设计、 多媒体程序设计、 数据库和网络程序设计。 1.1.2SQL数据库 数据库指的是以一定方式储存在一起、 能为多个用户共享、 具有尽可能小的冗余度的特点、 是与应用程序彼此独立的数据集合。在经济管理的日常工作中, 常常需要把某些相关的数据放进这样的”仓库”, 并根据管理的需要进行相应的处理。 二、 需求分析 职工管理系统是一个工作单位不可缺少的管理工具, 它管理的数据对于公司的决策者和管理者来说都至关重要, 因此职工管理系统应该能够为用户提供充分的信息和快捷的查询手段。但一直以来各个公司基本上都是靠传统的人工方式来管理职工信息, 这种管理方式存在着许多缺点, 如: 效率低、 保密性差, 另外时间一长, 将产生大量的文件和数据, 这对于信息的查找、 更新和维护都带来了不少的困难。 当今社会, 信息迅速膨胀, 随着各个公司的规模增大, 有关信息管理工作所涉及的数据量越来越大, 职工信息量也大大增加, 利用传统的手工查询、 登记、 修改等方法的处理速度远远跟不上公司的需求, 有的公司不得不靠增加人力、 物力来进行信息管理。 随着计算机技术的不断提高, 计算机作为知识经济时代的产物, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个行业和领域并发挥着越来越重要的作用, 成为人们工作和生活中不可缺少的一部分。 而作为计算机应用的一部分, 使用计算机对职工进行管理, 具有手工管理所无法比拟的优点。例如: 检索迅速、 查找方便、 可靠性高、 存储量大、 保密性好、 寿命长、 成本低等。这些优点能够极大地提高职工管理的效率, 也是公司的科学化、 正规化管理和与世界接轨的重要条件。 职工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用, 且已达到了良好效果。 三、 系统概要设计: 3.1问题描述 对单位的职工进行管理, 包括插入、 删除、 查找、 排序等功能。 3.2要求 职工对象包括员工号( 员工号不重复) , 姓名( 字符串) , 性别( 字符) , 年龄( 数字) , 学历( 字符串) , 部门( 字符串) , 工资( 数字) , 住址( 字符串) , 电话( 数字) 等信息。 ( 1) 新增一名职工: 将新增职工各项资料加入数据库。 ( 2) 删除一名职工: 从数据库中删除一名职工对象。 ( 3) 查询: 按照员工号、 姓名、 部门查询已存在的员工信息。 ( 4) 修改: 检索某个职工对象, 对其某些属性进行修改。 ( 5) 排序: 按某种需要对职工对象文件进行排序。 系统功能结构图 3.3数据库设计 共设计包括Manager、 Employees两个表。表项如下: Manager表: 员工号 int 姓名 Char 性别 Char 年龄 int 学历 char 部门 char 工资 Int 住址 Varchar 电话 varchar Mnager表: Username Char Password char 四、 系统详细设计 4.1新员工信息录入 此部分在添加员工信息之前检索数据库有关表项, 检查是否存在重复员工号, 若存在, 提示员工号码存在并停止录入操作, 若不存在, 则进行录入。也可经过设置数据库主键形式, 对员工号的唯一性加以确认。关键代码如下: public void actionPerformed(ActionEvent e) { String sql1="select EmployeeID from Employees where EmployeeID="+jTextField.getText(); ResultSet rs=DbConnection.dbQuery(sql1); try{if(rs.next()){//对select结果的判断, 若存在重复, 则运行下面提示 JOptionPane.showMessageDialog(null,"该员工号码存在, 请重新输入! ","警告",JOptionPane.PLAIN_MESSAGE);} else{ String Sex=null; if(jRadioButton.isSelected()) Sex=jRadioButton.getText(); else Sex=jRadioButton1.getText(); String DepartmentName=(String) jComboBox.getSelectedItem(); String sql="insert into Employees(EmployeeID,Name,Education,Birthday,Sex,WorkYear,Address,PhoneNumber,DepartmentName,InCome,Age)values('"+jTextField.getText()+"','"+jTextField1.getText()+"','"+jTextField2.getText()+"','"+jTextField3.getText()+"','"+Sex+"','"+jTextField8.getText()+"','"+jTextField4.getText()+"','"+jTextField5.getText()+"','"+DepartmentName+"','"+jTextField6.getText()+"','"+jTextField7.getText()+"')"; int n=DbConnection.dbUpdate(sql); if(n==1) { JOptionPane.showMessageDialog(null,"新员工录入信息成功! ","查询结果",JOptionPane.PLAIN_MESSAGE); } } }catch(Exception se){ se.printStackTrace(); }} private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(35, 531, 107, 31)); jButton.setText("确定"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { } });} return jButton; } private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(165, 532, 107, 31)); jButton1.setText("取消"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { dispose();//点击取消按钮, 关闭窗口 } }); } return jButton1; } 4.2显示员工信息 此部分使用jTable显示员工各项信息。关键代码如下: private JTable getJTable() { if (jTable == null) { String a[][]=new String[30][11];//定义数组用来存放员工信息 String colname[]={"员工号","姓名","文化程度","出生日期","性别","工作年份","地址","电话","部门","收入","年龄"}; int i=0; String sql="select * from Employees"; ResultSet rs=DbConnection.dbQuery(sql); try{ while(rs.next()){//a[1][0]表示第一个员工的11项信息 a[i][0]=rs.getString(1); a[i][1]=rs.getString(2); a[i][2]=rs.getString(3); a[i][3]=rs.getString(4); a[i][4]=rs.getString(5); a[i][5]=rs.getString(6); a[i][6]=rs.getString(7); a[i][7]=rs.getString(8); a[i][8]=rs.getString(9); a[i][9]=String.valueOf(rs.getFloat(10)); a[i][10]=String.valueOf(rs.getInt(11)); i++; } }catch(SQLException e){ e.printStackTrace(); }finally{ DbConnection.close(); } jTable = new JTable(a,colname); jTable.setShowHorizontalLines(true); jTable.setShowVerticalLines(true); jTable.setBounds(new Rectangle(34, 61, 645, 342)); jTable.setShowGrid(true); } return jTable; } public void actionPerformed(ActionEvent arg0) { } } 4.3修改员工信息 此部分包括修改员工家庭住址、 部门、 学历、 收入、 电话号码等信息。在修改信息之前, 能够检索数据库检查修改人员是否存在。由于时间有限, 没有设计同时修改多项纪录的操作, 是本设计的不足。由于修改功能各项代码大致相似, 下文只贴出修改地址的关键代码: public void actionPerformed(ActionEvent e) { String sql1="select EmployeeID from Employees where EmployeeID="+jTextField.getText(); ResultSet rs=DbConnection.dbQuery(sql1); try { if(rs.next()){//检索输入员工是否存在的判断语句 String sql="select * from Employees where EmployeeID="+jTextField.getText(); ResultSet n=DbConnection.dbQuery(sql); String sql2="update Employees set Address='"+jTextField1.getText()+"' where EmployeeID="+jTextField.getText();//修改员工信息的SQL语句 DbConnection.dbUpdate(sql2); JOptionPane.showMessageDialog(this,"地址修改成功!","information",JOptionPane.INFORMATION_MESSAGE); } else JOptionPane.showMessageDialog(null,"该员工不存在, 请重新输入! ","警告",JOptionPane.PLAIN_MESSAGE); } catch (Exception e1) { e1.printStackTrace(); } if(jTextField1.getText()==null){ JOptionPane.showMessageDialog(null,"新地址不能为空! ","错误",JOptionPane.PLAIN_MESSAGE); } } private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(70, 199, 100, 40)); jButton.setText("确定"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { } }); } return jButton; } private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(217, 199, 100, 40)); jButton1.setText("取消"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { dispose();//点击取消按钮, 关闭窗口 } }); } return jButton1; } private JButton getJButton2() { if (jButton2 == null) { jButton2 = new JButton(); jButton2.setBounds(new Rectangle(364, 199, 100, 40)); jButton2.setText("清除"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { jTextField.setText(""); jTextField1.setText("");//点击清除按钮, 将其置空 } }); } return jButton2; } } 4.4查询员工信息 此部分包括经过员工号、 姓名、 部门, 查询员工其它信息。在查询信息之前, 能够检索数据库检查修改人员是否存在。关键代码如下: //经过员工号查询其它信息 public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String sql="select * from Employees where EmployeeID='"+jTextField.getText()+"'"; ResultSet rs=DbConnection.dbQuery(sql); try { if(rs.next()) { jTextField1.setText(rs.getString("EmployeeID")); jTextField2.setText(rs.getString("Name")); jTextField3.setText(rs.getString("Sex")); jTextField4.setText(rs.getString("WorkYear")); jTextField5.setText(rs.getString("Education")); jTextField6.setText(rs.getString("DepartmentName")); jTextField7.setText(rs.getString("InCome")); jTextField8.setText(rs.getString("Address")); jTextField9.setText(rs.getString("PhoneNumber")); jTextField10.setText(rs.getString("Birthday")); } else JOptionPane.showMessageDialog(null,"本公司无该职工! ","查找结果", JOptionPane.PLAIN_MESSAGE); } catch (Exception e1) { e1.printStackTrace(); } } //经过部门名称, 查询部门员工信息 public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String DepartmentName=(String) jComboBox.getSelectedItem(); String sql="select * from Employees where DepartmentName='"+DepartmentName+"'"; ResultSet rs=DbConnection.dbQuery(sql); int i=0; try { while(rs.next()){ a[i][0]=rs.getString(1); a[i][1]=rs.getString(2); a[i][2]=rs.getString(3); a[i][3]=rs.getString(4); a[i][4]=rs.getString(5); a[i][5]=String.valueOf(rs.getInt(6)); a[i][6]=rs.getString(7); a[i][7]=rs.getString(8); a[i][8]=rs.getString(9); a[i][9]=String.valueOf(rs.getFloat(10)); a[i][10]=rs.getString(11); i++; } } catch (Exception e1) { e1.printStackTrace(); } } private JComboBox getJComboBox() {//经过下拉菜单选择部门 if (jComboBox == null) { jComboBox = new JComboBox(); jComboBox.addItem("经理办公室"); jComboBox.addItem("人力资源部"); jComboBox.addItem("市场部"); jComboBox.addItem("研发部"); jComboBox.addItem("财务部"); jComboBox.setBounds(new Rectangle(353, 19, 157, 42)); jComboBox.setFont(new Font("Dialog", Font.BOLD, 18)); } return jComboBox; } 4.5删除员工信息 此部分包括删除员工全部信息, 删除员工地址、 学历、 电话等信息。由于时间有限, 没有设计同时删除多项纪录的操作, 是本系统的不足。在删除信息之前, 能够检索数据库检查修改人员是否存在。关键代码如下: //删除员工全部信息 public void actionPerformed(ActionEvent e) { String sql1="select EmployeeID from Employees where EmployeeID="+jTextField.getText(); ResultSet rs=DbConnection.dbQuery(sql1); try { if(rs.next()){ String sql="select * from Employees where EmployeeID="+jTextField.getText(); DbConnection con=new DbConnection(); ResultSet rs2= con.dbQuery(sql); JOptionPane.showMessageDialog(this,"您确定要删除该员工的基本信息吗?","警告 ",JOptionPane.QUESTION_MESSAGE); int ok=JOptionPane.showConfirmDialog(this,"基本信息将被删除!","确认 ",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(e.getSource()==jButton||e.getSource()==jTextField) { try{ if(ok==JOptionPane.YES_OPTION) { sql="Delete from Employees where EmployeeID="+jTextField.getText(); con.dbUpdate(sql); JOptionPane.showMessageDialog(null,"删除成功! ","提示",JOptionPane.PLAIN_MESSAGE); } }catch(Exception e1){ e1.printStackTrace(); } } if(ok==JOptionPane.NO_OPTION) { delect m=new delect(); m.setEnabled(true); } } else JOptionPane.showMessageDialog(null,"该员工不存在, 请重新输入! ","警告",JOptionPane.PLAIN_MESSAGE); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } 4.6员工信息排序 此部分包括按照员工号、 工资顺序对员工信息进行排列, 并经过表格的形式将信息显示出来。由于两部分代码相似, 下文只给出收入排序关键代码: private JTable getJTable() { if (jTable == null) { String a[][]=new String[30][11]; String colname[]={"EmployeeID","Name","Education","Birthday","Sex","WorkYear","Address","PhoneNumber","DepartmentName","InCome","Age"}; //表头显示信息 int i=0; String sql="select * from Employees ORDER BY InCome DESC"; ResultSet rs=DbConnection.dbQuery(sql); try{ while(rs.next()){ a[i][0]=rs.getString(1); a[i][1]=rs.getString(2); a[i][2]=rs.getString(3); // a[i][3]=rs.getLong(rs.getDate(4)); a[i][3]=rs.getString(4); a[i][4]=rs.getString(5); a[i][5]=rs.getString(6); a[i][6]=rs.getString(7); a[i][7]=rs.getString(8); a[i][8]=rs.getString(9); a[i][9]=String.valueOf(rs.getFloat(10)); a[i][10]=String.valueOf(rs.getInt(11)); i++; } }catch(SQLException e){ e.printStackTrace(); }finally{ DbConnection.close(); } jTable = new JTable(a,colname); jTable.setShowHorizontalLines(true); jTable.setShowVerticalLines(true); jTable.setBounds(new Rectangle(34, 61, 645, 342)); jTable.setShowGrid(true); } return jTable; } 4.7员工信息统计 此部分能够统计在用户给出的工资段内的员工人数。关键代码如下: public void actionPerformed(ActionEvent e) { String sql="select count(InCome) from Employees where InCome >='"+jTextField.getText()+"' and InCome<='"+jTextField1.getText()+"'"; ResultSet rs=DbConnection.dbQuery(sql); try { while(rs.next()) { jTextField2.setText(rs.getString(1)); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } 4.8注销 此部分能够注销登录, 并关闭系统。关键代码如下: private JMenuItem getJMenuItem17() { if (jMenuItem17 == null) { jMenuItem17 = new JMenuItem(); jMenuItem17.setText("注销"); jMenuItem17.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { int n=JOptionPane.showConfirmDialog(null,"是否注销","确认",JOptionPane.YES_NO_CANCEL_OPTION); if(n==0) dispose(); } }); } return jMenuItem17; } 五、 系统测试 5.1系统登录 将java文件分别编译生成相应的字节码(class)文件。然后, 用java解释器运行主类, 输入数据库Manger表内存在的对应username、 password, 即可登录系统。 六、 总结 职工信息管理系统在插入图片美化界面的过程中使用简单的插入方法, 需使用绝对路径, 如果图片更换路径, 就无法显示在界面上。在增加、 删除、 查询功能中, 要对存在员工进行查重。从开始的数据库设置主键防止员工号重复到后来想到使用代码查询方式防止重复, 中间遇到了很多困难。但经过查阅资料、 询问老师和同学得到了基本的解决。系统不够美观, 无法实现同时删除、 查询多项信息是本系统的不足。 七、- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 管理 系统 java 课程设计 简单 实现 样本
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文