Java人事管理系统.docx

上传人:小飞机 文档编号:1894066 上传时间:2022-12-24 格式:DOCX 页数:42 大小:871.24KB
返回 下载 相关 举报
Java人事管理系统.docx_第1页
第1页 / 共42页
Java人事管理系统.docx_第2页
第2页 / 共42页
Java人事管理系统.docx_第3页
第3页 / 共42页
Java人事管理系统.docx_第4页
第4页 / 共42页
Java人事管理系统.docx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Java人事管理系统.docx》由会员分享,可在线阅读,更多相关《Java人事管理系统.docx(42页珍藏版)》请在三一办公上搜索。

1、长沙理工大学城南学院数据库系统应用课程设计报告 JAVA人事管理信息系统蒋映喆系 别 水利计通系 专 业 计算机科学与技术 班 级 计算机1001 学 号 24 学生姓名 蒋映喆 指导教师 唐汇国 课程成绩 完成日期 2012年10月13日 课程设计成绩评定系 别 水利计通系 专 业 计算机科学与技术班 级 计算机1001 学 号 24 学生姓名 蒋映喆 指导教师 唐汇国 课程成绩 完成日期 2012.10.13 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师

2、对课程设计的评定意见综合成绩 指导教师签字 年 月 日课程设计任务书城南学院水利计通系 计算机科学与技术专业 课程名称数据库系统应用课程设计时间20122013学年第1学期12周学生姓名蒋映喆指导老师唐汇国题 目JAVA人事管理系统 公司人员管理实现主要内容:本课程设计主要完成一个公司人事管理信息系统,本系统分为三个大模块,两人完成,三个模块分别为:1. 应用层界面模块。其中包括登陆界面与主要管理界面的实现。2. 系统数据库模块。这里主要实现对数据库的创建。3. 程序消息响应模块。主要实现程序的运行,连接数据库等功能。要求:(1)要求能独立地运用程序语言和数据库方面知识,编制一个功能简单的小型

3、信息模拟系统。(2)学生按要求编写课程设计报告书,能正确阐述设计和实验结果。(3)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中。 应当提交的文件:(1)课程设计报告。(2)课程设计附件(源程序、各类图纸、实验数据、运行截图等)。JAVA人事管理信息系统学生姓名:蒋映喆、阳坚 指导老师:唐汇国摘 要 在当前的信息化管理浪潮下,我国的人事管理模式也由传统的手工业务办理模式逐渐转向信息化,现代化的高效管理模式。结合人事办公管理的实际情况和实践操作,研发的新一代人事管理系统,使一直沿袭传统办公模式而产生的管理效率较低,经营管理

4、水平相对滞后等现象得改善已经成为各个单位的必然需求;为了提高人事办公行业整体的科技含量与管理效率,加快人事行业的信息化建设;为了提高公司的管理水平,他们急需一套安全可靠的人事管理系统,所以我与同学阳坚一起开发了这套人事管理系统。关键词 JAVA;人事管理系统;oracle1 开发环境与项目组介绍1.1硬件环境1、内存:256MB以上2、CPU:酷睿 i5 M4601.2 软件环境1、操作系统:Microsoft Windows XP2、数据库系统:Oracle + PL/SQL3、开发工具包:JDK Version 1.4.24、开发软件: Eclipse1.3 项目组成员 1、蒋映喆:主要负

5、责程序的界面与消息响应。2、阳 坚:负责数据库的创建与优化。2 系统设计2.1 应用程序界面设计由于公司人事管理并非普通员工管理、系统必须具有较高的安全性,只有具有管理员身份的用户才能允许对员工信息的编辑,修改等权限,所以我们必须为管理者设定一个登陆框,通过登录才能进入主界面实现对员工信息的操作,这样即使管理者不在电脑旁别人也无法私自修改员工信息,大大的增加了系统的安全可靠性。进入主界面以后,管理者能实现对员工的档案进行管理,可以查看、添加、修改、删除员工信息等。同时主界面也必须实现管理者的用户管理,用于修改当前密码等。同时系统要具有较高的适应性,能够适应应用要求的变化与修改,具有灵活可扩充性

6、。程序在性能上必须可以方便快捷有效地完成编辑、查询等地各项操作,录入数据合法性校验程序高,查询速度快。保证信息的正确及时更新,并降低信息访问的成本。操作方便可大大提高工作效率。程序主要流程图如图1所示: 图1 程序流程图2.2 数据库的选择Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器端(Client/Server)或B/S体系结构的数据库之一。作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品。所以在此课程设计中,我和阳坚同学采用Or

7、acle作为我们的开发数据库来开发这个人事管理系统。2.3 系统数据实体结构描述管理员信息表(Manager):用以登陆对员工信息的管理。具体设计结构如表1所示:表1 管理者信息表功能名称:管理者信息表(Manager)数据元素数据采集方式说明 Name 人工采集 主键,必须输入 SSID 人工采集 非空,必须输入 员工信息表(worker):用以记录员工基本信息,具体设计如表2所示:表2 员工信息表功能名称:员工信息表(worker)数据元素数据采集方式说明nId人工采集主键,必须输入Name人工采集非空,必须输入Job人工采集允许空Sal人工采集允许空 由于某些特定的公司拥有一些特殊职业,

8、所以我们在工作与工资这两栏设置允许空,方便管理者管理。3 系统详细设计3.1系统工作原理在登陆框处使用代码连接Manager数据库,采用JDBC方法连接数据库,从Edit框获取用户输入的用户名与密码与Manager表中数据对比,如果为数据库中的数据则允许登陆进行员工管理,若非数据库中的数据则报错。在主界面处分别连接worker与Manager两个数据库进行不同操作,如修改密码时则连接Manager,对员工进行操作则连接worker进行数据库操作,从而达到人事管理系统的需求。由于Oracle为C/S或者B/S模式的数据库,B/S模式即流浪器/服务器模式,是一种从传统的的二层C/S(客户端/服务端

9、)模式发展起来的新的网络结构模式,其本质是三层结构的C/S模式,安全性与方便性高。所以我们整个员工管理系统也采用C/S或者B/S模式的系统构架,我们的数据库放在公司服务器上,管理者客户端通过代码远程连接至数据库服务器,从而获取数据并修改数据。而我们的数据库处在服务器的防火墙之后,更增加了数据的可靠性与安全性。应用界面的工作原理如图2所示: 图2 应用界面工作原理3.2数据库详细设计要操作数据库的方法有很多,这里我们采用方便的PL/SQL来操作Oracle数据库,在系统服务中打开Oracle数据库的Server之后,我们使用默认的 scott账号登陆并创建表单。Manager表单的创建:Crea

10、te Table Manager(Name varchar(20),SSID varchar(20) Not NULL,PRIMARY KEY (Name)Worcker表单的创建:Create Table worker(NID VARCHAR2(4) , NAME VARCHAR2(20) Not NULL, JOB VARCHAR2(20) , SAL NUMBER(8,2),PRIMARY KEY (NID)在表单创建后用Insert into语句向两个表单中分别插入数据,因为数据量比较大,我这就不一一赘述我的数据了,插入数据如图3所示: 图3 两个表中所插入的数据3.3程序界面详细设计

11、界面设计我们采用了网格布局方法,使得界面简洁美观易于操作。界面主要分为登陆框界面与主程序界面,主界面使用了一个Table控件分割员工管理与用户管理来方便管理员管理,同时也为程序节省了占用的资源。3.4程序消息响应详细设计程序的消息响应主要为登陆框的登录响应与主程序的添加删除查询等Button的KeyDown响应,只要为Button添加成员函数addActionLisener并在函数内书写响应代码即可,如登陆框的消息响应如下:JButton okBtn = new JButton(登陆);/ 为登陆按钮添加事件okBtn.addActionListener(new ActionListener(

12、)public void actionPerformed(ActionEvent e)/ 获取用户在文本框中输入的值,去掉前后的空格,匿名内部类访问外部成员,外部成员必须使用final修饰String name = txt_name.getText().trim();String pwd = txt_pwd.getText().trim();LoginSql u = new LoginSql();int flag = 1;tryflag = u.findByName(name,pwd);/System.out.println(flag);catch (Exception e1)/ TODO A

13、uto-generated catch block/e1.printStackTrace(); /判断用户是否合法/System.out.println(flag); if(flag = 1) / System.out.println(登陆成功。); if(JOptionPane.showConfirmDialog(loginFrame, 登陆成功!,提示,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)=JOptionPane.YES_OPTION) loginFrame.setVisible(false);new MainFra

14、me(); else JOptionPane.showConfirmDialog(loginFrame, 用户名或者密码错误!,错误通知, 0); );3.5连接数据库详细设计使用Java连接Oracle数据库需要驱动库,因此先Import从网上下载的Java Oracle驱动库classes.jar文件,如图4所示:图4 工程文件目录使用Java连接Oracle数据库的步骤:1、 加载数据库驱动:Class.forName(oracle.jdbc.driver.OracleDriver);2、连接数据库:Connection connection = DriverManager.getCon

15、nection(jdbc:oracle:thin:127.0.0.1:1521:WAIT,scott,tiger);采用本机回路IP默认本机为主机端口为配置Oracle时所填写的1521,主机名:wait,登录数据库账户与密码:scott,tiger;3、 查询数据库:ResultSet rSet = statement.executeQuery(select * from Manager);在完成以上三步以后我们就可以通过ResultSet的对象 rSet.next来读取数据库中的数据了。4 测试和运行结果截图4.1登录界面图5 登录界面运行截图4.2主程序界面图6 主程序界面图7 添加新员

16、工界面图8 删除提示图9 修改与查询后的界面图10 管理人员修改密码界面5 结束语在这次课程设计中,小组每个成员分工明确,互相帮助,为设计的开发成功营造了良好的氛围。在日后的工作与学习中,我们应继续发扬这样的工作精神。通过这次的课程设计,我们学习到了整个开发软件的标准流程与数据库在实际操作中的应用,以及在开发过程中团队合作分工的重要性。更能深刻地理解开发软件的相关知识,锻炼了开发能力,知识得到了很大的拓展。在进行分析、设计、编码、调试、维护这几部分的工作的时候,最核心的就是文档的编写。文档的编写有助于我们整理思路不做无头苍蝇,同样也便于团队交流与日后维护的参考。通过这次课程设计,我学习到了不少

17、的知识,如Java、Oracle的使用,将对我在今后的软件开发过程中起到极大的作用。其实开发软件也可以用到我们现实生活中来,这次课程设计改变了我以往的思维方式,以前我总认为做软件就是一个人对着电脑无限地敲打代码,现在明白了团队的分工、合作的重要性,团队的力量要远远超过个人的力量!附录1 程序源代码1、LoginFrame.javapackage com.JiangYzh;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Container;import jav

18、a.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.sql.SQLClientInfoException;import javax.swing.BorderFactory;import jav

19、ax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;/import com.sun.org.apache.xml

20、.internal.utils.SuballocatedIntVector;/* * 登陆界面 */public class LoginFrameprivate JFrame loginFrame = new JFrame();private JPanel loginPanel = null;public LoginFrame()initFrame();public void initFrame()/ 设置窗口大小loginFrame.setBounds(400, 300, 400, 250);/ 左上角的坐标,宽/高loginFrame.setBackground(Color.blue);/

21、 设置背景颜色loginFrame.setTitle(欢迎使用城南学院人事管理系统);/ 设置标题loginFrame.setVisible(true);/ 设置可见loginFrame.setDefaultCloseOperation(0); /设置选择关闭时不执行任何操作loginFrame.addWindowListener(new WindowListener()public void windowClosing(WindowEvent e)/ TODO Auto-generated method stubif(JOptionPane.showConfirmDialog(loginFr

22、ame, 确定退出?,提示,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)=JOptionPane.YES_OPTION)System.exit(0);Overridepublic void windowClosed(WindowEvent e)/ TODO Auto-generated method stubOverridepublic void windowOpened(WindowEvent e)/ TODO Auto-generated method stubOverridepublic void windowIconif

23、ied(WindowEvent e)/ TODO Auto-generated method stubOverridepublic void windowDeiconified(WindowEvent e)/ TODO Auto-generated method stubOverridepublic void windowActivated(WindowEvent e)/ TODO Auto-generated method stubOverridepublic void windowDeactivated(WindowEvent e)/ TODO Auto-generated method

24、stub);loginFrame.setLayout(new BorderLayout();/ 为整个窗口设置边框布局,分为东西南北中Container mainFrame = loginFrame.getContentPane();mainFrame.setBackground(Color.blue);/ 登陆面板loginPanel = new JPanel();loginPanel.setBounds(100, 300, 250, 200);loginPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK);GridBagCo

25、nstraints gbc = new GridBagConstraints();/ 以网格作为基础的布局形式GridBagLayout gbl = new GridBagLayout();loginPanel.setLayout(gbl);/ 设置登陆面板的布局为网格gbc.fill = GridBagConstraints.NONE; / 定义组件的放置形式,如果面板改变不重新调整组件的大小gbc.weighty = 0.001;JLabel jL_Title = new JLabel();jL_Title.setText( 用户登录);jL_Title.setFont(new Font(

26、用户登录, Font.BOLD, 30);/ 设置字体为粗体,大小为30磅/ 设置字体位置add(jL_Title, gbc, 0, 0, GridBagConstraints.REMAINDER, 1);/ 第一该组件为最后一个组件/ 用户名JLabel jL_user = new JLabel();jL_user.setText(用户名);/ jL_Title.setFont(new Font(用户名,Font.BOLD,25);add(jL_user, gbc, 0, 3, 1, 1);/ 用户名文本框final JTextField txt_name = new JTextField(

27、10);/ 文本框,长度为10add(txt_name, gbc, 1, 3, 1, 1);/ 密码JLabel jL_pwd = new JLabel();jL_pwd.setText(密码);add(jL_pwd, gbc, 0, 4, 1, 1);/ 密码框final JPasswordField txt_pwd = new JPasswordField(10);/ 密码框,长度10add(txt_pwd, gbc, 1, 4, 1, 1);/ 登陆按钮JButton okBtn = new JButton(登陆);/ 为登陆按钮添加事件okBtn.addActionListener(n

28、ew ActionListener()public void actionPerformed(ActionEvent e)/ 获取用户在文本框中输入的值,去掉前后的空格,匿名内部类访问外部成员,外部成员必须使用final修饰String name = txt_name.getText().trim();String pwd = txt_pwd.getText().trim();LoginSql u = new LoginSql();int flag = 1;tryflag = u.findByName(name,pwd);/System.out.println(flag);catch (Exc

29、eption e1)/ TODO Auto-generated catch block/e1.printStackTrace(); /判断用户是否合法/System.out.println(flag); if(flag = 1) / System.out.println(登陆成功。); if(JOptionPane.showConfirmDialog(loginFrame, 登陆成功!,提示,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)=JOptionPane.YES_OPTION) loginFrame.setVisible(

30、false);new MainFrame(); else JOptionPane.showConfirmDialog(loginFrame, 用户名或者密码错误!,错误通知, 0); );add(okBtn, gbc, 0, 6, 1, 2);/ 取消按钮JButton cancleBtn = new JButton(确定);cancleBtn.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e)/ TODO Auto-generated method stubif(JO

31、ptionPane.showConfirmDialog(loginFrame, 确定退出?,提示,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)=JOptionPane.YES_OPTION)System.exit(0););add(cancleBtn, gbc, 1, 6, 1, 2);mainFrame.add(loginPanel, BorderLayout.CENTER);/ 将面板加入到中部loginFrame.setResizable(false);/ 不允许调整窗口的大小/* 为组件定位 */public void

32、add(Component c, GridBagConstraints gbc, int x, int y, int w,int h)gbc.gridx = x;/ 定义第几行,一行中的开始单元格 gridx=0gbc.gridy = y;/ 一列中开始的单元格 gridy=0gbc.gridwidth = w;/ 一行中单元格的格数gbc.gridheight = h;/ 一列中单元格的格数loginPanel.add(c, gbc);/ 加入布局public static void main(String args)new LoginFrame();2、LoginSql.javapacka

33、ge com.JiangYzh;import java.sql.*;public class LoginSqlprivate String myName;private String mySsid;public int findByName(String str1,String str2) throws Exception Class.forName(oracle.jdbc.driver.OracleDriver);Connection connection = DriverManager.getConnection(jdbc:oracle:thin:127.0.0.1:1521:WAIT,s

34、cott,tiger);Statement statement = connection.createStatement();ResultSet rSet = statement.executeQuery(select * from Manager);while(rSet.next()myName = rSet.getString(1);mySsid = rSet.getString(2);if(str1.equals(myName) & str2.equals(mySsid)/System.out.println(进了循环!);connection.close();statement.clo

35、se();rSet.close();return 1;connection.close();statement.close();rSet.close();return 0;3、MainFram.javapackage com.JiangYzh;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.aw

36、t.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Vector;import javax.activation.FileDataSource;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;

37、import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTabbedPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;import org.omg.CORBA

38、.PUBLIC_MEMBER;public class MainFrame extends JFrameJTabbedPanejtp= new JTabbedPane();JPanelfield= new JPanel();SuppressWarnings(unused)JPanelmaJPanel= new JPanel();JTabletable= null;JTextFieldtextField= new JTextField(10);JPanelpanel;ButtonGroupconditionGroup;DefaultTableModeldtm;JScrollPanemJScrol

39、lPane;public MainFrame()mInit();public void add(Component c, GridBagConstraints constraints, int x, int y,int w, int h)/ 此方法用来添加控件到容器中constraints.gridx = x;constraints.gridy = y;constraints.gridwidth = w;constraints.gridheight = h;panel.add(c, constraints);public void mInit()field.setLayout(new BorderLayout();final JFrame frame = new JFrame();JSplitPane mSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);mSplitPane.setDividerLocation(150);mSplitPane.setDividerSize(4);field.add(mSplitPane);VectorVectorS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号