还剩56页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Java语言程序设计课程设计实验报告实验工程名称人事管理系统摘要该系统能够对某单位的职工进行管理,主要功能如下a、人事资料输入输入员工信息,如姓名、身份证号、地址、、部门、工资、参加工作时间、专业、职务、备注等b、信息查询可根据职工编号、职工名称、出生年月范围、工资范围、参加工作时间范围等条件查询c、登陆检测、用户管理、密码修改、权限设置d、系统初始化包括操作员信息初始化和职工信息初始化e、用户信息修改拥有权限的操作员可以修改、冻结、删除普通用户f、简单的帮助文档对软件的简单介绍和编制说明关键词信息管理、Java、文档正文
一、问题重述import com.mwq.hibernate.Dao;import com.mwq.hibernate,mapping.TbRecord;public classIndexFrame extendsJFrame{private JTreetree;final JPanelrightPanel=new JPanel;private TbRecord record;private finalDao dao=Dao.getlnstance;/***Launch theapplication**©param args*/public staticvoid mainStringargs[]{tryIndexFrame frame=new IndexFramenull;frame.setVisibletrue;}catch Exceptione{e.printStackTrace;/***Create theframe*/public IndexFrameTbRecordtbRecord{super;this.record=tbRecord;setResizablefalse;setExtendedStateIndexFrame.MAXIMIZED BOTH;//设置窗口以最大化翻开setTitleC T科技〃;setBounds0,0,950,700;setBounds0,0,1024,768;setDefaultCloseOperationJFrame.EXIT_0N_CL0SE;final JPaneltopPanel=new JPanel;topPanel.setLayoutnew BorderLayout;topPanel.setPreferredSizenew Dimension0,100;getContentPane.addtopPanel,BorderLayout.NORTH;final JLabellabel=new JLabel;label.setHorizontalAlignmentSwingConstants.CENTER;label.setHorizontalTextPositionSwingConstants.CEN TER;URL resource=IndexFrame.this.getClass.getResource〃/img/logo.JPG〃;Imageicon icon=new Imageiconresource;label,seticonicon;label.setBordernew TitledBordernull,、TitledBorder.DEFAULT,JUSTIFICATION,TitledBorder.DEFAULT_POSITION,null,null;label.setPreferredSizenew Dimension160,0;topPanel,addlabel,BorderLayout.WEST;final JPanelbuttonPanel=new JPanel;//创立工具栏面板final GridLayoutgridLayout=new GridLayout1,0;//创立一个水平箱式布局管理器对象gridLayout.setVgap6;//箱的垂直间隔为6像素gridLayout.setHgap6;//箱的水平间隔为6像素buttonPanel.setLayoutgridLayout;//设置工具栏面板采用的布局管理器为箱式布局buttonPanel.setBackgroundnew Color90,130,189;//设置工具栏面板的背景色buttonPanel.setBordernew TitledBordernull,〃〃,TitledBorder.DEFAULTJUSTIFICATION,TitledBorder.DEFAULT_POSITION,null,null;//设置工具栏面板采用的边框样式topPanel,addbuttonPanel,BorderLayout.CENTER;//将工具栏面板添加到上级面板中final JButtonrecordShortcutKeyButton new JButtonO;//创立进入“档案管理〃的快捷按钮resource this.getClass.getResource〃/img/record.JPG〃;icon=new Imageiconresource;recordShortcutKeyButton.seticonicon;//为按钮添加事件监听器,用来捕获按钮被点击的事件recordShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{rightPanel.removeAll;//移除内容面板中的所有内容rightPanel.add newRecordSelectedPanelrightPanel,BorderLayout.CENTER;//将档案管理面版添加到内容面板中SwingUtilities.updateComponentTreeUIrightPanel;//刷新内容面板中的内容};buttonPanel.addrecordShortcutKeyButton;final JButton timecardShortcutKeyButton new JButton;resource this.getClass.getResource C/img/timecard.JPG〃;icon=new Imageiconresource;timecardShortcutKeyButton.seticonicon;timecardShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{rightPanel.removeAll;rightPanel.addnew TimecardPanel,BorderLayout.CENTER;SwingUtilities.updateComponentTreeUI rightPanel;;buttonPanel.addtimecardShortcutKeyButton;final JButtonrewardsAndPunishmentShortcutKeyButton=new JButton;resource二/z this.getClass.getResource/img/rewAndPun.JPG〃;icon=new Imageiconresource;rewardsAndPunishmentShortcutKeyButton.seticonicon rewardsAndPunishmentShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent erightPanel.removeAll;rightPanel.add new RewardsAndPunishmentPanel,BorderLayout.CENTER;SwingUtilities.updateComponentTreeUI rightPanel;};buttonPanel.addrewardsAndPunishmentShortcutKeyBut ton;final JButtonreportFormsShortcutKeyButton=new JButtonO;resource=this.getClass.getResource〃/img/stat.JPG〃;icon=new Imageiconresource;reportFormsShortcutKeyButton.seticonicon;reportFormsShortcutKeyButton.addActionListener newActionListener{public voidactionPerformedActionEvent e{rightPanel.removeAll;rightPanel.addnew ReportFormsPanel,BorderLayout.CENTER;SwingUtilities.updateComponentTreeUIrightPanel;}};buttonPanel.addreportFormsShortcutKeyButton;final JButtonbasicDataShortcutKeyButton=new JButton;resource二this.getClass.getResource〃/img/data.JPG〃;icon=new Imageiconresource;basicDataShortcutKeyButton.seticonicon;basicDataShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{rightPanel.removeAll;rightPanel.addnew DataPanel,BorderLayout.CENTER;SwingUtilities.updateComponentTreeUIrightPanel;}!;buttonPanel.addbasicDataShortcutKeyButton;final JButtonupdatePasswordShortcutKeyButton=new JButton;resource this.getClass.getResource〃/img/password.JPG〃;icon=new Imageiconresource;updatePasswordShortcutKeyButton.seticonicon;if record=null//当record为null时,说明是通过默认用户登录的,此时不能修改密码updatePasswordShortcutKeyButton.setEnabledfalse;//在这种情况下设置按钮不可用updatePasswordShortcutKeyButton.addActionListener newActionListener{public voidactionPerformedActionEvent e{rightPanel.removeAll;SwingUtilities.updateComponentTreeUI rightPanel;UpdatePasswordDialog dialog=new UpdatePasswordDialog;//创立用来修改密码的对话框dialog.setRecordrecord;//将当前登录管理员的档案对象传入对话框dialog.setVisibletrue;//设置对话框为可见的,即显示对话框};buttonPanel.addupdatePasswordShortcutKeyButton;final JButtoncounterShortcutKeyButton new设计一个人事管理系统,该系统能够对某单位的职工进行管理,主要功能如下a、人事资料输入输入员工信息,如姓名、身份证号、地址、、部门、工资、参加工作时间、专业、职务、备注等b、信息查询可根据职工编号、职工名称、出生年月范围、工资范围、参加工作时间范围等条件查询c、登陆检测、用户管理、密码修改、权限设置d、系统初始化包括操作员信息初始化和职工信息初始化e、用户信息修改拥有权限的操作员可以修改、冻结、删除普通用户f、简单的帮助文档对软件的简单介绍和编制说明
二、理论分析
1、从管理员角度讲,实现的功能是1对员工有关数据的输入功能a实现对员工根本信息的输入b实现对员工奖惩信息的输入2对员工有关数据的更新功能由管理员进行档案收集,经过对档案资料的处理,更新员工档案管理系统中的奖惩相关信息包括员工根本信息和员工业绩信息JButton;resource=this.getClass,getResource〃/img/calculator.JPG〃;icon二new Tmagelconresource;counterShortcutKeyButton.seticonicon;counterShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{Desktop desktop=Desktop.getDesktopO;//获得当前系统对象File file=new FileZ,C:/WINDOWS/system32/calc.exe〃;//创立一个系统计算器对象trydesktop,open file;//翻开系统计算器}catch Exceptionel{//当翻开失败时,弹出提示信息JOptionPane.showMessageDialognull,〃彳艮抱歉,未能翻开系统自带的计算器!〃,〃友情提示〃,JOptionPane.INFORMATION JIESSAGE;return;};buttonPanel.addcounterShortcutKeyButton;final JButtonexcelShortcutKeyButton=new JButtonO;〃;icon=new Imageiconresource;excelShortcutKeyButton.seticonicon;excelShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{Desktop desktop=Desktop.getDesktopO;File file=new Filezz res/other/new.xls;try{desktop.open file;}catch Exceptionel{alognull,〃很抱歉,您的机器还没有安装Office!〃,〃友情提示〃,JOptionPane.INFORMATION JIESSAGE;return;};buttonPanel.addexcelShortcutKeyButton;final JButtonexitShortcutKeyButton=new JButtonO;resource=this.getClass.getResource〃/img/exit.JPG〃;icon=new Imageiconresource;exitShortcutKeyButton.seticonicon;exitShortcutKeyButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{System,exit0;}};buttonPanel.addexitShortcutKeyButton;final JPanelleftPanel=new JPanel;leftPanel.setBackground newColor90,130,189;leftPanel.setLayoutnew BorderLayout;leftPanel.setBordernew TitledBordernull,〃〃,TitledBorder.DEFAULTJUSTIFICATION,TitledBorder.DEFAULT_POSITION,null,null;leftPanel.setPreferredSizenew Dimension160,0;getContentPane.addleftPanel,BorderLayout.WEST;DefaultMutableTreeNode root=new DefaultMutableTreeNodez,root/z;//创立树的根结点Def au1tMu tab1eTreeNode personnelNode=new DefaultMutableTreeNode〃人事管理〃;〃创立树的一级子结点personnelNode.add new DefaultMutableTreeNode,z^案管理〃;//创立树的叶子结点并添加到一级子结点personnelNode.addnew DefaultMutableTreeNode〃考勤管理〃;personnelNode.add new DefaultMutableTreeNodezz^^惩管理〃;personnelNode.add new DefaultMutableTreeNode训管理〃;root,addpersonnelNode;//向根结点添加一级子结点DefaultMutableTreeNode treatmentNode=new DefaultMutableTreeNode(〃待遇管理〃);treatmentNode.add(new DefaultMutableTreeNode(〃账套管理〃));treatmentNode.add(new DefaultMutableTreeNode(/z A员设置〃));treatmentNode.add(new DefaultMutableTreeNode(zz^t计报表〃));root,add(treatmentNode);DefaultMutableTreeNode systemNode=new DefaultMutableTreeNode(〃系统维护〃);systemNode.add(new DefaultMutableTreeNode(,企业架构〃));systemNode.add(newDefaultMutableTreeNode(〃根本资料〃));systemNode.add(newDefaultMutableTreeNode(〃初始化系统〃;root.addsystemNode;DefaultMutableTreeNode userNode二new DefaultMutabieTreeNode〃用户管理〃;if record==null{//当record为null时,说明是通过默认用户登录的,此时只能新增用户,不能修改密码userNode.add newDefaultMutableTreeNode〃新增用户〃;}else{//否那么为通过管理员登录String purview=record.getTbManager.getPurviewO;if purview,equals〃超级管理员〃{//只有当管理员的权限为“超级管理员〃时,才有权新增用户userNode.add newDefaultMutableTreeNodez/^f增用户〃;userNode.add newDefaultMutabl eTreeNode〃修改密码〃;〃只有通过管理员登录时才有权修改密码root,adduserNode;DefaultMutableTreeNode toolNode=newDefaultMutableTreeNode〃系统工具〃;toolNode.add newDefaultMutableTreeNode〃翻开计算器〃;toolNode.add newDefaultMutableTreeNode翻开WORD;toolNode.add newDefaultMutableTreeNode,z翻开EXCEL;root.addtoolNode;DefaultTreeModel treeModel=new DefaultTreeModelroot;//通过树结点对象创立树模型对象tree=new JTreetreeModel;//通过树模型对象创立树对象tree.setBackgroundColor.WHITE;//设置树的背景色tree.setRootVisiblefalse;//设置不显示树的根结点,默认为显示,即true tree.setRowlleight24;〃设置各结点的高度为27像tree.setFont newFont〃宋体〃,Font.BOLD,14;//设置结点的字体样式DefaultTreeCelIRenderer renderer二new DefaultTreeCellRenderer;//创立一个树的绘制对象//renderer.setLeafIcon null;//设置叶子结点不采用图标renderer.setClosedlconnull;//设置结点折叠时不采用图标renderer.setOpenlconnull;//设置结点展开时不采用图标tree.setCelIRenderer renderer;//将树的绘制对象设置到树中int count=root.getChildCount;//获得一级结点的数量for int i=0;icount;i++{//遍历树的一级结点DefaultMutableTreeNode nodeDefaultMutableTreeNode root.getChildAt i;//获得指定索引位置的一级结点对象TreePath path=new TreePathnode.getPathO;//获得结点对象的路径tree.expandPathpath;//展开该结点tree.addTreeSelectionListenernew TreeSelectionListener{//捕获树的选取事件public voidvalueChanged TreeSelectionEvente{rightPanel.removeAll;TreePath treePath=e.getPath;if treePath.getPathCount二二2{rightPanel.add backgroundLabel,BorderLayout.CENTER;}else{String selectedNode=treePath•getLastPathComponent.toStringO;String parentNodetreePath.getParentPath.getLastPathComponent.toStringO;if parentNode.equals〃人事管理〃System,out.printin〃人事管理〃;if selectedNode.equals〃档案管理〃[rightPanel.add newRecordSelectedPanel rightPanel,BorderLayout.CENTER;}else if selectedNode.equals/z考勤管理〃{dnew TimecardPanel,BorderLayout.CENTER;z/}else if selectedNode.equals奖惩管理〃{rightPanel.addnewRewardsAndPunishmentPanel,BorderLayout.CENTER;}else{//人事培训管理d newBringUpSelectedPanel rightPanel,BorderLayout.CENTER;3对员工档案信息的查询功能管理员可以通过自己的用户名和密码在因特网上对所有员工的信息包括员工的档案信息、员工的业绩信息进行查询4对员工、部门和部门领导信息的简单管理5对用户密码的管理
2、从普通用户〔员工的角度讲,实现的功能是1在单位员工可以通过自己的编号和密码在因特网上对自己的个人信息包括个人的档案信息、业绩信息进行查询2对用户密码的管理
三、模型员工信息,如姓名、身份证号、地址、、部门、工资、参加工作时间、专业、职务、备注、职工编号、职工名称、出生年月范围、工资范围、参加工作时间范围
四、程序流程图}else ifparentNode.equals〃待遇管理〃)){System,out.printin〃待遇管理”;if selectedNode.equals〃账套管理〃))rightPanel.add newCriterionSetPanel,BorderLayout.CENTER;z,}else if selectedNode.equals人员设置〃)){rightPanel.add newPersonnelSetPanel,BorderLayout.CENTER;}else{//统计报表rightPanel.add newReportFormsPanel,BorderLayout.CENTER;}else ifparentNode.equals〃系统维护〃)){System,out.printin〃系统维护〃;ifselectedNode.equals〃企业架构〃))(rightPanel.add newFrameworkPane1,BorderLayout.CENTER;}else ifselectedNode.equals/z根本资料〃{rightPanel.add newDataPanel,BorderLayout.CENTER;}else{//系统初始化inti=JOptionPane.showConfirmDialognull,〃确定要初始化系统?〃,〃友情提示〃,JOptionPane.YES_NO OPTION,JOptionPane.QUEST1ONJ1ESSAGE;if i=二0{dao.initTimecard;dao.initBringUpOntent;dao.initBringUpContent;dao.initRewardsAndPunishment;dao.initReckoninglnfo;dao.initReckoningList;dao.initReckoningO;dao.initDutylnfoO;dao.initPersonallnfoO;dao.initManager;dao.initRecordO;dao.initDept;dao.initDuty;dao.initNationO;dao.initNativePlace;dao.initAccessionFormO;dao.initAccountltemO;String clueOn[]=new String[]{〃系统初始化完成!系统将重新启动,您首先需要通过默认用户登录,〃,〃然后通过“人事管理〃-“档案管理〃添加人事档案,〃〃其次通过“用户管理〃-“新增用户〃添加系统管理〃,〃员,最后通过新添加的管理员登录!〃,〃需要注意的是,只有第一个被添加的管理员为〃,〃超级管理员,具有“新增用户〃的权限!〃};JOptionPane.showMessageDialog null,clueOn,〃友情提示〃,JOptionPane.INFORMATION_MESSAGE;dispose;new PersonnelManage;}else ifparentNode.equals〃用户管理〃{System,out.printin用户管理〃;ifselectedNode.equals〃新增用户〃{AddUserPanel addUserPanel=new AddUserPanel;addUserPanel.setRecordrecord;rightPanel.addaddUserPanel,BorderLayout.CENTER;}else{//修改密码rightPanel.removeAll;SwingUtilities,updateComponentTreeUIrightPanel;UpdatePasswordDialog updatePasswordDialog=new UpdatePasswordDialog;UpdatePasswordDialog.setRecordrecord;updatePasswordDialog.setVisibletrue;}else{if Desktop.isDesktopSupportedDesktop desktopDesktop.getDesktop;File file=null;try{ifselectedNode.equals〃曲羽开计算器〃{Runtime runtime=Runtime,getRuntime;/z runtime,execcalc.exe〃;}else ifselectedNode.equals〃翻开WORDfile=new File^src/office/new.doc〃;desktop,open file;}else{//翻开EXCEL file=new File,z src/office/new.xls〃;desktop,open file;}catch Exceptionel{JOptionPane.showMessageDialog null,〃很抱歉,未能翻开您请求的系统工具!〃,〃友情提示〃,JOptionPane.INFORMATIONJIESSAGE;return;}SwingUtilities.updateComponentTreeUIrightPanel;};leftPanel.addtree;rightPanel.setLayoutnew BorderLayout;rightPanel.setPreferredSizenew Dimension0,0;rightPanel.setBackgroundnew Color255,255,247;rightPanel.setBordernew TitledBordernull,〃〃,TitledBorder.DEFAULTJUSTIFICATION,TitledBorder.DEFAULT_POSITION,null,null;getContentPane.addrightPanel,BorderLayout.CENTER;resource二this.getClass.getResource〃/img/back.JPG〃;icon=new Imageiconresource;backgroundLabe
1.seticonicon;backgroundLabel.setHorizontalTextPositionSwingCon stants.CENTER;backgroundLabel.setHorizontalAlignment SwingConstants.CENTER;rightPanel.addbackgroundLabe1,BorderLayout.CENTER;//}final JLabelbackgroundLabel=new JLabel;}package com.mwq.frame mon;import java.awt.BorderLayout;import java.util.Iterator;import java.util.Set;import java.util.Vector;import javax.swing.Imageicon;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTree;import javax.swing,event.TreeSelectionEvent;import javax.swing,event.TreeSelectionListener;import javax.swing,table.DefaultTableModel;import javax.swing,tree.DefaultMutableTreeNode;import javax.swing,tree.DefaultTreeCel1Renderer;import javax.swing,tree.DefaultTreeModel;import javax.swing.tree.TreePath;import com.mwq.hibernate.Dao;import com.mwq.hibernate.HibernateSessionFactory;import com.mwq.hibernate,mapping.TbDept;import com.mwq.hibernate,mapping.TbDutylnfo;import com.mwq.hibernate,mapping.TbRecord;public classDeptAndPersonnelPanel extendsJPanel privateJTable table;private VectorStringtableColumnV;private VectorVectorStringtableValueV;private DefaultTableModeltabieModel;
五、程序设计技术文档
1、员工业绩管理员工业绩信息包括所属员工(员工编号和姓名〕、工种、类别、日期和业绩分数等添加业绩以部门为单位点击〃添加业绩〃链接即可进入添加页面从列表中选择部门以及工种、类别、日期,即可进行添加操作查询员工成绩可以部门或具体某位员工为单位以部门为单位,可显示某次考核整个部门的业绩信息,并进行排序等横向比照还可动态生成图表,以业绩分布图、柱状图和饼状图的形式,形象地表示出考试情况,对分析考试内容有比较大的帮助private JTreetree;private Daodao二Dao.getlnstance;public DeptAndPersonnelPanel{super;setLayoutnew BorderLayout;final JSplitPanesplitPane=new JSplitPane;splitPane.setDividerLocation140;add splitPane;final JScrollPanedeptScrollPane=new JScrollPane;splitPane.setLeftComponentdeptScrollPane;//初始化左侧的部门树DefaultMutableTreeNode root二new DefaultMutabieTreeNode〃全部职员〃;TbDept company=TbDept dao.queryDeptByld1;Set depts=company.getTbDeptsO;for Iteratordeptlt=depts,iterator;deptlt.hasNext;{TbDept dept=TbDept deptlt.next;DefaultMutableTreeNode deptNode=new DefaultMutableTreeNodedept.getName;//创立部门树的二级子节点root.adddeptNode;Set sonDepts=dept.getTbDeptsO;for Iterator sonDeptlt=sonDepts.iterator;sonDeptlt.hasNext;{TbDept sonDept=TbDept sonDeptlt.next;deptNode.add newDefaultMutableTreeNodesonDept.getName;//创立部门树的叶子节点}DefaultTreeModel treeModel=new DefaultTreeModelroot;//利用根节点对象创立树模型对象tree=new JTreetreeModel;tree.addTreeSelectionListenernew TreeSelectionListener{public voidvalueChangedTreeSelectionEvent eTreePath path=e.getPathO;//获得被选中树节点的路径tableValueV.removeAHElements;//移除表格中的所有行if path.getPathCount==1{//选中树的根节点showAHRecordO;//显示所有档案}else//选中树的子节点String deptName二path.getLastPathComponent.toStringO;//获得选中部门的名称TbDept selectDept=TbDept dao.queryDeptByNamedeptName;//检索指定部门对象IteratorsonDeptltselectDept.getTbDepts.iterator;if sonDeptlt.hasNext{//选中树的二级节点while sonDeptlt.hasNextshowRecordlnDeptTbDept sonDeptlt.next;//显示选中部门所有子部门的档案}else{//选中树的叶子节点showRecordlnDeptselectDept;//显示选中部门的档案}tabieModel.setDataVectortableValueV,tableColumnV;HibernateSessionFactory.closeSession;}};DefaultTreeCellRenderer render=new DefaultTreeCellRenderer;render.setLeaf Iconnew Imageicon;//设置叶子结点的图标render.setClosedlconnew Imageicon;//设置结点折叠时的图标render.setOpenlconnew Imageicon;//设置结点展开时的图标tree.setCelIRendererrender;deptScrollPane.setViewportViewtree;final JScrollPanepersonnalScrolIPane=new JScrollPane;splitPane.setRightComponentpersonnalScrolIPane;tableColumnV=new VectorString;//创立表格列名向量String tableColumns[]=new String[]{〃序号〃,〃档案编号〃,〃姓名〃,〃性别〃,〃部门〃,〃职务〃};for inti=0;itableColumns.length;i++{//添加表格列名tableColumnV.addtableColumns[i];tableValueV.new VectorVectorString;//创立表格值向量showAHRecordO;HibernateSessionFactory.closeSession;tabieModel=new DefaultTableModeltableValueV,tableColumnV;//创立表格模型对象table=new JTabletableModel;//创立表格对象personnalScrolIPane.setViewportViewtable;}private voidshowAHRecordO{Iterator recordlt=dao.queryRecordO.iterator;int sequenceNumber=1;while recordlt.hasNext{TbRecord record=TbRecord recordlt.next;Vector personnelV=new VectorString;personnelV.addsequenceNumber++;personnelV.addrecord.getRecordNumber;personnelV.add record.getName;personnelV.add record.getSex;TbDutylnfo dutyinfo=record.getTbDutylnfo;personnelV.add dutyinfo.getTbDept.getName;personnelV.adddutyinfo.getTbDuty.getName;tableValueV.addpersonnelV;private voidshowRecordlnDept TbDeptdept{Iterator dutylnfoltdept.getTbDutylnfos.iterator;int sequenceNumber=1;while dutylnfolt.hasNext{TbDutylnfo dutyinfo=TbDutylnfo dutylnfolt.next;TbRecord record=dutyinfo.getTbRecord;Vector personnelV=new VectorString;personnelV.addsequenceNumber++;personnelV.addrecord.getRecordNumber;personnelV.add record.getName;personnelV.add record.getSex;personnelV.add dutyinfo.getTbDept.getName;personnelV.add dutyinfo.getTbDuty.getName;tableValueV.add personnelV;}}public JTablegetTable{return table;}public voidsetTableJTable table{this,table=table;package com.mwq.frame;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.Iterator;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.SwingConstants;import javax.swing.border.TitledBorder;import com.mwq.hibernate.Dao;import com.mwq.hibernate,mapping.TbManager;import com.mwq.hibernate,mapping.TbRecord;public classLandFrame extendsJFrame{private JPasswordFieldpasswordField;private JComboBoxuserNumComboBox;private Daodao;/***Launch theapplication**©param args*/public staticvoid mainStringargs[]{try{LandFrame frame=new LandFrame;frame.setVisibletrue;}catch Exceptione{e.printStackTrace;/***Create theframe*/以员工为单位,可以显示某位员工工作后的所有业绩并提供以员工编号和以姓名两种方式更新员工以部门为单位,可以对某次考核的业绩进行更新(必须为已存在的)这个功能用来对误输入来进行更正
2.部门领导信息管理部门领导信息包括部门领导编号ii、姓名、对口专业、所在部门、职位)等这局部可以实现添加领导、添加与领导相关的部门信息等功能
六、程序使用说明⑴录入功能提供有限权的人员登入对系统进行管理.⑵查询功能姓名匹配查询;单位及部门匹配;号码匹配查询;⑶修改功能(包括多个域)修改所有的域,姓名、编号不能为空;
(4).添加功能:增加一个新的记录;⑸删除功能增加一个新的记录;public LandFrame{super;getContentPane.setLayoutnew GridBagLayout;setTitle,z T科技〃;setResizablefalse;setBounds100,100,400,300;setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;dao=Dao.getlnstance;final JLabelsoftTitleLabel=new JLabel;softTitleLabel.setFontnew Font〃〃,Font.BOLD,22;softTitleLabel.setBordernew TitledBordernull,TitledBorder.DEFAULTJUSTIFICATION,TitledBorder.DEFAULT_POSITION,null,null;softTitleLabel.setText〃企业人事管理系统〃;final GridBagConstraintsgridBagConstraints=new GridBagConstraints;gridBagConstraints.insets=new Insets0,0,20,0;gridBagConstraints.gridy=0;gridBagConstraints.gridx=0;getContentPane.addsoftTitleLabel,gridBagConstraints;final JPaneluserNumPanel=new JPanel;userNumPanel.setLayoutnew FlowLayout;final GridBagConstraintsgridBagConstraints_1二new GridBagConstraints;gridBagConstraints_l.gridy=1;gridBagConstraints_l.gridx=0;getContentPane.adduserNumPanel,gridBagConstraints」;final JLabeluserNumLabel=new JLabel;userNumLabel.setVerticalTextPositionSwingConstant s.TOP;userNumLabel.setText〃管理员〃;userNumPanel.adduserNumLabel;userNumComboBox=new JComboBox;userNumComboBox.addltemListenernew ItemListener{public voiditemStateChangedItemEvent argO{String username二userNumComboBox.getSelectedltemO.toStringO,trim;if username,equals/z TSoft/z{passwordField.setText;}!;userNumComboBox.setPreferredSizenew Dimension100,20;z/userNumComboBox.additem请选择〃;Iterator managerit=dao.queryManagerOfNatural.iterator;if managerlt.hasNext{while managerlt.hasNext{TbManager manager=TbManager managerlt.next;StringBuffer item=new StringBuffer,z〃;item,appendmanager.getTbRecord.getRecordNumber;userNumComboBox.addltemitem.toStringO;}}else{userNumComboBox.additem〃TSoft〃;userNumPanel.adduserNumComboBox;final JPanelpasswordPanel=new JPanel;passwordPanel.setLayoutnew FlowLayout;final GridBagConstraintsgridBagConstraints_4new GridBagConstraints;gridBagConstraints_
4.gridy=2;gridBagConstraints_
4.gridx=0;getContentPane.addpasswordPanel,gridBagConstraints4;final JLabelpasswordLabel=new JLabel;passwordLabel.setText〃密码〃;passwordPanel.addpasswordLabel;passwordField=new JPasswordField;passwordField.setPreferredSizenew Dimension100,20;passwordPanel.addpasswordField;final JPanelbuttonPanel=new JPanel;final FlowLayoutflowLayout=new FlowLayout;flowLayout.setAlignmentFlowLayout.RIGHT;buttonPanel.setLayoutflowLayout;final GridBagConstraintsgridBagConstraints_2二new GridBagConstraints;gridBagConstraints_
2.ipadx=15;gridBagConstraints_
2.insets=new Insets10,0,0,0;gridBagConstraints_
2.gridy=3;gridBagConstraints_
2.gridx=0;getContentPane.addbuttonPanel,gr idBagCons tra ints_2;final JButtonlandButton=new JButton;landButton.addActionListenernew ActionListenerpublic voidactionPerformedActionEvent e{String userNum二userNumComboBox.getSelectedltemO.toStringO if userNum.equals〃请选择〃{JOptionPane.showMessageDialognull,〃请选择登录管理员!〃,〃友情提示〃,JOptionPane.INFORMATION_MESSAGE;return;chart]passwords=passwordField.getPassword;StringBuffer passwordBuf=new StringBuffer;for inti=0;ipasswords.length;i++{passwordBuf.appendpasswords[i];String password二passwordBuf.toStringO.trim;if password,length=0{JOptionPane.showMessageDialognull,〃请输入登录密码!〃,〃友情提示〃,JOptionPane.INFORMATION_MESSAGE;return;IndexFrame indexFrame=null;ifuserNum.equalsz,TSoft,z{if password,equals/z lirz{indexFrame=new IndexFramenull;}else{JOptionPane.showMessageDialognull,〃默认用户“TSoft〃的登录密码为“111〃!〃,〃友情提示〃,JOptionPane.INFORMATIONJ1ESSAGE;passwordField.setText〃H1〃;return;}}else{TbRecordrecord=TbRecord dao.queryRecordByNum userNum;TbManager manager二record.getTbManager;if password,equalsmanager.getPassword{indexFrame=new IndexFramerecord;}else{JOptionPane.showMessageDialognull,登录密码错误,请确认后重新输入!〃,〃友情提示‘JOptionPane.INFORMATIONJ1ESSAGE;return;}indexFrame.setVisibletrue;setVisiblefalse;}};landButton.setMarginnew Insets2,6,2,6;landButton.setText〃登录〃;buttonPanel.addlandButton;final JButtonresetButton=newJButton;resetButton.addActionListenernew ActionListener{public voidactionPerformedActionEvent e{userNumComboBox.setSelectedlndex0;passwordField.setTextnull;}};resetButton.setMarginnew Insets2,6,2,6;resetButton.setText〃清空〃;buttonPanel.addresetButton;final JButtonexitButton=newJButton;exitButton.addActionListenernew ActionListenerpublic voidactionPerformedActionEvent e{dispose;;exitButton.setMargin new Insets2,6,2,6;exitButton.setText〃退出〃;buttonPanel.addexitButton;final JLabeldefaultLabel=new JLabel;defaultLabel.setText〃默认用户TSoft默认密码111〃;final GridBagConstraintsgridBagConstraints_3=new GridBagConstraints;gridBagConstraints
3.insets=newInsets10,0,0,0;gridBagConstraints_
3.gridy=4;gridBagConstraints_
3.gridx=0;getContentPane.adddefaultLabel,gr idBagCons traint s_3;//参考文献郑莉、王行言、马素霞编,?Java语言程序设计.清华大学出版社,2006
[2]美国Shelly.G.B谢尔编董庆霞译Java实例导学?北京北京大学出版社,20076查询:核对人员对系统进行访问;⑺统计功能对员工个人业绩或人员调度的统计;8员工查询提供员工查询自己的业绩绩;9其它查询提供他人访问数据库;
七、针对给定实例程序运行情况1登陆界面2信息录入界面3信息修改界面
八、设计总结:本次实验可经过进一步的修改完善应用于实际当中,通过各个模块的具体化实现以下功能创立新部门,添加新领导,并绑定工资;设置不同的时间段,可以让管理者或查询者通过选时间来统计不同时间段的业绩;可以让读者通过选择不同种类的课程,来检索不同种类的工资领导可以输入与他对应部门对应的员工的业绩,他的部门与员工对应附件(局部源代码)package com.mwq.frame;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Desktop;ion;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.net.URL;import javax.swing.Imageicon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTree;import javax.swing.SwingConstants;import javax.swing.SwingUtilities;import javax.swing,border.TitledBorder;import javax.swing,event.TreeSelectionEvent;import javax.swing,event.TreeSelectionListener;import javax.swing,tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCelIRenderer;import javax.swing,tree.DefaultTreeModel;import javax.swing.tree.TreePath;import com.mwq.PersonnelManage;import com.mwq.frame,personnel.BringUpSelectedPanel;import com.mwq.frame,personnel.RecordSelectedPanel;import com.mwq.frame,personnel.RewardsAndPunishmentPanel;import com.mwq.frame,personnel.TimecardPanel;import com.mwq.frame,system.DataPanel;import com.mwq.frame,system.FrameworkPane1;import com.mwq.frame,treatement.CriterionSetPane1;import com.mwq.frame,treatement.PersonnelSetPanel;import com.mwq.frame,treatement.ReportFormsPanel;import com.mwq.frame,user.AddUserPanel;import com.mwq.frame.user.UpdatePasswordDialog;。