欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java课程设计报告.pdf

    • 资源ID:75949424       资源大小:1.67MB        全文页数:40页
    • 资源格式: PDF        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java课程设计报告.pdf

    JAVA 程序设计 课程设计报告 课 题:雇员信息管理系统 姓 名:柳豪 学 号:200717030216 同组姓名:曹彪、刘建 专业班级:网络 07102 班 指导教师:刘国清 设计时间:评阅意见:评定成绩:指导老师签名:年 月 日 2 目 录 一、系统描述.3 1.1 课程设计的目的.3 1.2 课程设计的意义.3 二、系统分析与设计.4 2.1 系统需求分析.4 2.2 数据模型设计.4 2.3 系统的功能框架分析.6 2.4 数据流程分析.6 三、系统实施 附源代码.9 四、测试结果.33 五、总结.39 参考文献.40 3 一、系统描述 1.1 课程设计的目的 随着现代经济的高速发展,各种企业的不断崛起,企业员工的不断增加,企业在管理方面对需求越来越大。伴随着计算机的迅速发展和广泛使用,企业雇员信息管理转向电子化成为必然。传统的雇员信息管理存在很大的不足:利用人进行信息的增减,容易导致信息的错误,而且管理的效率低下,导致资源的可利用性低,劳动力大,安全性也不够,加上,随着时间的递增,信息量不断增大,对信息的增加、删除、检索、查找就会存在很大的问题。因此,随着企业的强大和发展,传统的管理方式不再适应企业的需要。因此,雇员信息管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入各个行业和领域,将传统的员工管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。本系统实现目标如下:界面设计简洁、友好、美观大方。操作简单、快捷方便 数据存储安全、可靠。信息分类清晰、准确。强大的查询功能,保证数据查询的灵活性。提供销售排行榜,为管理员提供真实的数据信息。提供灵活、方便的权限设置功能,使整个系统的管理分工明确。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。1.2 课程设计的意义 雇员信息管理系统的开发需要就 Java 语言和数据库两方面的知识,因此设计一个实用性强的雇员信息管理系统,对于我们进行课程设计方面知识的提高有很大的推动作用。雇员信息管理系统的开发需要用到多方面的知识,包括数据库的选用、数据库的建立和维护、信息的存储、管理界面的设计。这些对于设计者的知识水平有较高的要求。因此,如何规划、设计和开发好这个雇员信息管理系统,对于提高我们的 Java 开发水平有极大的帮助。同时,在设计开发过程中,我们可以选用适当的数据库和数据库连接驱动程序,建立合适的数据库表格和设计好美观大方的管理界面。4 二、系统分析与设计 2.1 系统需求分析 2.1.1 雇员信息管理系统的客户功能需求 该开发系统的设计主要用于实现以下几个功能:(1)雇员信息管理系统主界面 雇员信息系统主界面主要包括系统设计,系统管理、信息管理、信息查询、帮助等内容,可以进行各种信息的添加、查询,删除等操作。(1)信息管理模块描述 信息管理子系统主要包括部门信息管理界面,员工信息管理界面,其中员工信息管理又包括培训信息管理界面,基本信息管理界面,奖罚信息管理界面和薪资信息管理界面。信息管理模块主要是对数据表中数据的添加、修改和删除。(2)信息查询模块描述 信息查询子系统主要包括部门信息查询界面,员工信息查询界面,其中员工信息查询又包括培训信息查询界面,基本信息查询界面,奖罚信息查询界面和薪资信息查询界面。信息查询模块主要输对数据表中数据的查询。(3)系统管理模块描述 系统管理子系统主要实现用户密码修改,用户的添加和删除以及重新登录系统。2.2 数据模型设计 本系统的数据库名为 EmployeeInformationMS,整个数据库系统的数据结构如下所示:用户信息表(UserInformation)字段 类型 说明 大小 是否为空 User_ID Int 员工编号 NOT NULL User_Name varchar 员工姓名 20 NOT NULL Password varchar 密码 20 NOT NULL Popedom varchar 权限 20 NOT NULL 部门信息管理(DepartmentInformation)字段 类型 说明 大小 是否为空 D_Number int 部门编号 NOT NULL varchar 部门名称 20 NOT NULL D_Count varchar 部门人数 20 NOT NULL 5 员工基本信息表(EmployeeInformation)字段 类型 说明 大小 是否为空 E_Number int-员工编号 NOT NULL E_Name varchar-姓名 20 NOT NULL E_Sex varchar-性别 2 NOT NULL E_BornDate varchar-出生日期 30 NOT NULL E_Marriage varchar-婚姻状态 4 NOT NULL E_PoliticsVisage varchar 政治面貌 20 NOT NULL E_SchoolAge varchar 学历 20 NOT NULL E_EnterDate varchar 进入公司时间 30 NOT NULL E_InDueFormDate varchar 转正时间 30 NOT NULL E_Department varchar 部门 20 NOT NULL E_Headship varchar 职务 20 NOT NULL E_Estate varchar 状态 20 NOT NULL E_Remark varchar 备注 500 NOT NULL 培训信息表(TrainInformation)字段 类型 说明 大小 是否为空 T_Number varchar 培训编号 20 NOT NULL T_Content varchar 培训内容 100 NOT NULL T_Name varchar 培训员工姓名 20 NOT NULL T_Date int 培训天数 NOT NULL T_Money int 培训费用 NOT NULL 奖罚信息表(EncouragementPunishInformation)字段 类型 说明 大小 是否为空 EP_Number int 员工编号 NOT NULL EP_Name varchar 员工姓名 30 NOT NULL EP_Date varchar 奖罚时间 30 NOT NULL EP_Address varchar 奖罚地点 50 NOT NULL EP_Causation varchar 奖罚原因 200 NOT NULL EP_Remark varchar 备注 500 NOT NULL 薪资信息表(WageInformation)字段 类型 说明 大小 是否为空 6 W_Number int 员工编号 NOT NULL W_Name varchar 员工姓名 30 NOT NULL W_BasicWage int 基本工资 NOT NULL W_Boon int 福利 NOT NULL W_Bonus int 奖金 NOT NULL W_CountMethod varchar 计算方法 50 NOT NULL W_FactWage int 实发工资 NOT NULL 2.3 系统的功能框架分析 构建一个雇员信息管理系统,该系统主要由三个子系统组成,分别包括员工信息管理子系统,系统管理子系统、查询管理子系统,。同时,为了增强系统的安全性,首先需要通过用户权限认证,只有在登陆界面上输入正确的用户名和密码,才能的功能路本系统进行操作。通过了系统功能框架的分析,得到了如图 2-1 的系统功能模块。重新登录 雇员信息管理系统 信息管理 信息查询 系统管理 关于 员工信息管理 部门信息管理 员工信息查询 部门信息查询 添加删除用户 密码修改 重新登录 退出系统 系统关于 培训信息管理 基本信息管理 奖罚信息管理 薪资信息管理 培训信息管理 基本信息管理 奖罚信息管理 薪资信息管理 7 2.4 数据流程分析 总的系统流程图如图 2.4.1 所示:图 2.4.1 总的系统流程 业务流程图(Transaction Flow Diagram,TFD)是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理的流向。通过前面对企业雇员管理情况进行的一系列调研与分析,得到如图 2.4.2 所示的业务流程图。图 2.4.2 业务流程图 雇员管理系统的业务处理过程如下:企业认识管理系统记录基本的信息并能对系统的的已有信息进行查询;信息添加记录中对基本信息添加;信息输出记录对基本信息并能进行查询。根据业务流程图分析,对于其中的数据流向,处理及存储进行逐层分解,可以得到数据系统现有信息 汇总处理 各部门需求 新增信息 信息需求 信息添加 信息输出 用户登录 是否合法 系统主窗口 退出系统 Y N 8 流程图(Data Flow Diagram,DFD)。数据流程图是分层次的,绘制是采取自顶向下逐层分解的方法。顶层数据流程图只有一张,它说明了系统总的处理功能、输入和输出。下一步是对顶层数据流程图中的“处理”进行分解,也就是对第一层数据流程图的再分解。数据流程图如图 2.4.3 所示。图 2.4.3 数据流程图 信息添加 信息查找 管理员 定位编号 定位信息 添加操作 信息修改 定位信息 修改操作 信息输出 9 三、系统实施 附源代码 在此雇员信息管理系统中,我主要负责的功能模块是信息管理子系统,以及数据库的创建和数据关系的处理。其中信息管理子系统的功能实现代码如下:(一)主界面的设计开发 虽说程序设计最核心的地方是程序的功能,但程序的界面设计是不可忽视的,它直接影响到程序的易用性。尤其在 Windows 时代,一个良好的应用界面会给你的程序锦上添花,甚至有画龙点睛之韵味。一般来说,在完成核心算法的编制后,就要开始精心设计应用界面了。1.修改密码类 package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class AmendPassword extends JInternalFrame JLabel lbe1=new JLabel(修改密码);JPanel p=new JPanel();public AmendPassword()setTitle(修改密码);p.add(lbe1);AmendPanel panel=new AmendPanel();Container contentPane=getContentPane();contentPane.add(p,North);contentPane.add(panel,Center);setBounds(100,100,280,260);this.setClosable(true);setVisible(true);class AmendPanel extends JPanel JButton b1,b2;JLabel lbe2,lbe3,lbe4,lbe5;JPasswordField pas1,pas2,pas3;JComboBox tf;public AmendPanel()10 lbe2=new JLabel(用户名:);lbe3=new JLabel(输入旧密码:);lbe4=new JLabel(输入新密码:);lbe5=new JLabel(确定新密码:);tf=new JComboBox();pas1=new JPasswordField();pas2=new JPasswordField();pas3=new JPasswordField();b1=new JButton(确定);b2=new JButton(清空);/把组件加在内容窗格中 add(lbe2);lbe2.setBounds(16,10,90,25);this.add(tf);tf.setBounds(100,10,120,25);add(lbe3);lbe3.setBounds(16,45,90,25);add(pas1);pas1.setBounds(100,45,120,25);add(lbe4);lbe4.setBounds(16,80,80,25);add(pas2);pas2.setBounds(100,80,120,25);add(lbe5);lbe5.setBounds(16,115,80,25);add(pas3);pas3.setBounds(100,115,120,25);add(b1);b1.setBounds(100,160,60,30);add(b2);b2.setBounds(160,160,60,30);setLayout(null);/将所有用用户名读出来 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);11 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+;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()String supdate=update UserInformation set Password=+pas3.getText()+where User_Name=+name+;Database.executeSQL(supdate);new JOptionPane().showMessageDialog(null,密码更改成功!);else new JOptionPane().showMessageDialog(null,两次密码不同!);else new JOptionPane().showMessageDialog(null,旧密码不正确!);catch(Exception el)System.out.println(el););b2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)pas1.setText();pas2.setText();12 pas3.setText(););(二)部门信息查询 package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;import java.util.*;import java.sql.*;public class DIQ extends JInternalFrame JLabel lb1=new JLabel(部 门 信 息 查 询);JLabel lb2=new JLabel(部门编号:);JLabel lb3=new JLabel(部门名称:);JTextField setxtid=new JTextField(10);JTextField setxtname=new JTextField(10);JButton btn1=new JButton(查询);JTable table;DefaultTableModel dtm;String columns=部门编号,部门名称,部门人数;public DIQ()setTitle(部 门 信 息 查 询);dtm=new DefaultTableModel();table=new JTable(dtm);/table.set PreferredScrollableViewportSize(new Dimension(400,80);JScrollPane sl=new JScrollPane(table);dtm.setColumnCount(3);dtm.setColumnIdentifiers(columns);/dtm.insertRow(0,columns);getContentPane().setLayout(null);lb1.setBounds(200,10,300,30);lb1.setFont(new Font(宋体,Font.BOLD,24);getContentPane().add(lb1);Font f=new Font(宋体,Font.PLAIN,12);13 lb2.setBounds(10,60,80,25);lb2.setFont(f);getContentPane().add(lb2);setxtid.setBounds(80,60,80,23);setxtid.setFont(f);getContentPane().add(setxtid);lb3.setBounds(10,90,80,25);lb3.setFont(f);getContentPane().add(lb3);setxtname.setBounds(80,90,80,23);setxtname.setFont(f);getContentPane().add(setxtname);btn1.setBounds(90,130,60,25);btn1.setFont(f);getContentPane().add(btn1);sl.setBounds(180,60,425,290);/getContentPane().add(table);getContentPane().add(sl);/设置边框 setxtid.setBorder(BorderFactory.createLineBorder(Color.black);setxtname.setBorder(BorderFactory.createLineBorder(Color.black);btn1.setBorder(BorderFactory.createRaisedBevelBorder();sl.setBorder(BorderFactory.createLineBorder(Color.black);/连接数据库 Database.joinDB();/为表格初使化数据-String csf=select*from DepartmentInformation;if(Database.query(csf)try while(Database.rs.next()String num=(+Database.rs.getInt(D_Number);System.out.println(num);String name=Database.rs.getString(D_Name);System.out.println(name);String count=Database.rs.getString(D_Count);System.out.println(count);/String result=new String3;/result1=num;14 /result2=name;/result3=count;/1 用集合 Vector v=new Vector();v.add(num);v.add(name);v.add(count);dtm.addRow(v);catch(Exception ecsf)System.out.println(初使化表格数据出错!);/-/为查询按钮加事件-btn1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String sql;int rc=dtm.getRowCount();/System.out.println(dtm.getRowCount();for(int i=0;irc;i+)dtm.removeRow(0);if(setxtid.getText().equals()&setxtname.getText().equals()sql=select*from DepartmentInformation;else if(setxtname.getText().equals()sql=select*from DepartmentInformation where D_Number=+setxtid.getText()+;else sql=select*from DepartmentInformation where D_Number=+setxtid.getText()+or D_Name like%+setxtname.getText()+%;System.out.println(sql);if(Database.query(sql)try while(Database.rs.next()String num=(+Database.rs.getInt(D_Number);System.out.println(num);String name=Database.rs.getString(D_Name);15 System.out.println(name);String count=Database.rs.getString(D_Count);System.out.println(count);/String result=new String3;/result1=num;/result2=name;/result3=count;/1 用集合 Vector v=new Vector();v.add(num);v.add(name);v.add(count);dtm.addRow(v);/2 用数组 /String result=num,name,count;/dtm.addRow(result);catch(Exception ee);/-setSize(630,400);this.setClosable(true);setVisible(true);(三)员工信息查询 package classsource;import java.awt.*;import javax.swing.*;import javax.swing.table.*;import java.awt.event.*;import java.util.*;import javax.swing.JScrollPane.*;import java.sql.*;public class BIQ extends JInternalFrame 16 JLabel lbl1=new JLabel(基 本 信 息 查 询);JLabel lbl2=new JLabel(员工编号:);JLabel lbl3=new JLabel(员工姓名:);JTextField btxtid=new JTextField(10);JTextField btxtname=new JTextField(10);JButton btn1=new JButton(查询);JTable table;DefaultTableModel dtm;String columns=员工编号,员工姓名,性别,出生日期,婚姻状况,政治面貌,学历,进入公司时间,转正时间,部门,职务,员工状态,备注;public BIQ()setTitle(基 本 信 息 查 询);dtm=new DefaultTableModel();table=new JTable(dtm);JScrollPane sl=new JScrollPane();sl.getViewport().add(table);dtm.setColumnCount(5);dtm.setColumnIdentifiers(columns);/sl.getViewport().add(table,null);/sl.setVerticalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);/sl.setver/sl.HORIZONTAL_SCROLLBAR_ALWAYS;/sl.VERTICAL_SCROLLBAR_ALWAYS;/new JScrollPane().add(table);/dtm.setColumnCount(columns.length);/dtm.insertRow(0,columns);/sl.setAutoscrolls(true);/设列头/*dtm.setColumnIdentifiers(columns);TableColumnModel tcm=table.getColumnModel();for(int i=0;icolumns.length;i+)tcm.getColumn(i).setWidth(180);-17-*/getContentPane().setLayout(null);lbl1.setBounds(240,10,300,30);lbl1.setFont(new Font(宋体,Font.BOLD,24);getContentPane().add(lbl1);Font f=new Font(宋体,Font.PLAIN,12);lbl2.setBounds(10,60,80,25);lbl2.setFont(f);getContentPane().add(lbl2);btxtid.setBounds(80,60,80,23);btxtid.setFont(f);getContentPane().add(btxtid);lbl3.setBounds(10,90,80,25);lbl3.setFont(f);getContentPane().add(lbl3);btxtname.setBounds(80,90,80,23);btxtname.setFont(f);getContentPane().add(btxtname);btn1.setBounds(90,130,60,25);btn1.setFont(f);getContentPane().add(btn1);sl.setBounds(180,60,500,370);getContentPane().add(sl);/设置边框 btxtid.setBorder(BorderFactory.createLineBorder(Color.black);btxtname.setBorder(BorderFactory.createLineBorder(Color.black);btn1.setBorder(BorderFactory.createRaisedBevelBorder();sl.setBorder(BorderFactory.createLineBorder(Color.black);/-连接数据库-Database.joinDB();String sql=select*from EmployeeInformation;if(Database.query(sql)System.out.println(sql);try while(Database.rs.next()String eNumber=(+Database.rs.getInt(E_Number);System.out.println(eNumber);String eName=Database.rs.getString(E_Name);System.out.println(eName);18 String eSex=Database.rs.getString(E_Sex);System.out.println(eSex);String eBornDate=Database.rs.getString(E_BornDate);System.out.println(eBornDate);String eMarriage=Database.rs.getString(E_Marriage);System.out.println(eMarriage);String ePoliticsVisage=Database.rs.getString(E_PoliticsVisage);System.out.println(ePoliticsVisage);String eSchoolAge=Database.rs.getString(E_SchoolAge);System.out.println(eSchoolAge);String eEnterDate=Database.rs.getString(E_EnterDate);System.out.println(eEnterDate);String eInDueFormDate=Database.rs.getString(E_InDueFormDate);System.out.println(eInDueFormDate);String eDepartment=Database.rs.getString(E_Department);System.out.println(eDepartment);String eHeadship=Database.rs.getString(E_Headship);System.out.println(eHeadship);String eEstate=Database.rs.getString(E_Estate);System.out.println(eEstate);String eRemark=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(eEnterDate);v.add(eInDueFormDate);v.add(eDepartment);v.add(eHeadship);v.add(eEstate);v.add(eRemark);dtm.addRow(v);catch(Exception eBIQ)System.out.println(初始化数据失败!);19 /为查询按钮加事件-btn1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent eBIQ)System.out.println(按钮事件);String esql;int rc=dtm.getRowCount();for(int i=0;irc;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 eNumber=(+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 eBornDate=Database.rs.getString(E_BornDate);System.out.println(eBornDate);String eMarriage=Database.rs.getString(E_Marriage);System.out.println(eMarriage);String ePoliticsVisage=Database.rs.getString(E_PoliticsVisage);System.out.println(ePoliticsVisage);String eSchoolAge=Database.rs.getString(E_SchoolAge);System.out.println(eSchoolAge);String 20 eEnterDate=Database.rs.getString(E_EnterDate);System.out.println(eEnterDate);String eInDueFormDate=Database.rs.getString(E_InDueFormDate);System.out.println(eInDueFormDate);String eDepartment=Database.rs.getString(E_Department);System.out.println(eDepartment);String eHeadship=Database.rs.getString(E_Headship);System.out.println(eHeadship);String eEstate=Database.rs.getString(E_Estate);System.out.println(eEstate);String eRemark=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(eEnterDa

    注意事项

    本文(Java课程设计报告.pdf)为本站会员(深夜****等你...)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开