java课程设计管理系统

2023-06-30

第一篇:java课程设计管理系统

JAVA课程设计员工信息管理系统

JAVA员工管理系统

实验报告

姓名:张旭冉

学号:10105010117

班级:信10-1

北方工业大学理学院信息与计算科学系

2013年 12月 17日

员工管理系统

一、实验目的

通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。

二、实验内容

A.设计题目:员工管理系统

设计要求:(1)完成员工信息的添加、删除、查询、修改功能

(2)使用用户界面操作

(3)使用文件形式完成

设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。 B.概要设计

面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。

功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。 C.详细设计

1、定义员工类:

public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex; public Employee() { } public void setNumber(String number) { this.number=number; } public String getNumber() { return number;

} public void setName(String name) { this.name=name; } public String getName() { return name; } public void setDiscipling(String discipling) { this.discipling=discipling; } public String getDisciping() { return discipling; } public void setGrade(String grade) { this.grade=grade; } public String getGrade() { return grade; } public void setBorth(String borth) { this.borth=borth; } public String getBorth() { return borth; } public void setSex(String sex) { this.sex=sex; } public String getSex() { return sex; }}

2、主程序:

import java.awt.*;

import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.Hashtable; public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public EmployeeManager() { 录入=new JMenuItem("录入员工基本信息"); 修改=new JMenuItem("修改员工基本信息"); 查询=new JMenuItem("查询员工基本信息"); 删除=new JMenuItem("删除员工基本信息"); bar=new JMenuBar(); fileMenu=new JMenu("菜单选项"); fileMenu.add(录入); fileMenu.add(修改); fileMenu.add(查询); fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel("欢迎进入员工信息管理系统",JLabel.CENTER); label.setFont(new Font("SansSerif",Font.BOLD+Font.ITALIC,25)); label.setForeground(Color.red); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel();

pCenter.setLayout(card); pCenter.setBackground(Color.yellow); file=new File("基本信息.txt"); if(!file.exists()) {

try

{

FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(基本信息);

objectOut.close();

out.close();

}

catch(IOException e)

{

} } 基本信息录入=new EmployeeSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); pCenter.add("欢迎语界面",label); pCenter.add("录入界面",基本信息录入); pCenter.add("修改界面",基本信息修改); pCenter.add("删除界面",基本信息删除); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) { System.exit(0); }}); setVisible(true); setBounds(100,50,420,380); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==录入) { card.show(pCenter,"录入界面"); } else if(e.getSource()==修改)

{ card.show(pCenter,"修改界面"); } else if(e.getSource()==查询) { 基本信息查询.setVisible(true); } else if(e.getSource()==删除) { card.show(pCenter,"删除界面"); } } public static void main(String args[]) { new EmployeeManager(); }}

3、实现员工信息的录入: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门; JRadioButton 男,女; Employee 员工=null; ButtonGroup group=null; JButton 录入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public EmployeeSituation(File file) {

this.file=file;

员工号=new JTextField(10);

姓名=new JTextField(10);

部门=new Choice(); 部门.add("请选择"); 部门.add("研发部"); 部门.add("销售部"); 部门.add("人事部"); 部门.add("安全部"); 工资=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 录入=new JButton("录入"); 重置=new JButton("重置"); 录入.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("员工号:",JLabel.CENTER)); box1.add(员工号); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(" ",JLabel.CENTER)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

JPanel pSouth=new JPanel();

pSouth.add(录入);

pSouth.add(重置);

pSouth.setBackground(Color.yellow);

add(pSouth,BorderLayout.SOUTH);

validate();

} public void actionPerformed(ActionEvent e) { if(e.getSource()==录入) { String number=""; number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { String warning="该员工基本信息已存在,请到修改页面修改!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); } else { String m="基本信息将被录入!"; int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { String name=姓名.getText();

String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) { sex=男.getText(); } else { sex=女.getText(); } 员工=new Employee(); 员工.setNumber(number); 员工.setName(name); 员工.setDiscipling(discipling); 员工.setGrade(grade); 员工.setSex(sex); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne);

基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();

员工号.setText(null);

姓名.setText(null);

工资.setText(null); } catch(Exception ee) { System.out.println(ee); }}}} else { String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedIndex());

工资.setText(null); }}}

4、实现员工信息的修改: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门; JRadioButton 男,女; ButtonGroup group=null; JButton 开始修改,录入修改,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public ModifySituation(File file)

{ this.file=file; 员工号=new JTextField(10); 姓名=new JTextField(10); 部门=new Choice(); 部门.add("请选择"); 部门.add("研发部"); 部门.add("销售部"); 部门.add("人事部"); 部门.add("安全部"); 工资=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 开始修改=new JButton("开始修改"); 录入修改=new JButton("录入修改"); 录入修改.setEnabled(false); 重置=new JButton("重置"); 员工号.addActionListener(this); 开始修改.addActionListener(this); 录入修改.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要修改信息的员工号:",JLabel.CENTER)); box1.add(员工号); box1.add(开始修改); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(" ",JLabel.CENTER)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox();

boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入修改); pSouth.add(重置); pSouth.setBackground(Color.yellow); add(pSouth,BorderLayout.SOUTH); validate();

} public void actionPerformed(ActionEvent e) {

if(e.getSource()==开始修改||e.getSource()==员工号)

{

String number="";

number=员工号.getText();

if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { 录入修改.setEnabled(true); Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName()); 部门.getSelectedItem(); 工资.setText(stu.getGrade());

if(stu.getSex().equals("男")) { 男.setSelected(true); } else { 女.setSelected(true); } }

else

{

录入修改.setEnabled(false); String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null);

} }

else { 录入修改.setEnabled(false); String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); }

}

else if(e.getSource()==录入修改)

{

String number="";

number=员工号.getText();

if(number.length()>0)

{

try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close();

inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { String question="该员工基本信息已存在,您想修改他(她)的基本信息吗?"; JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.QUESTION_MESSAGE); String m="基本信息将被修改!"; int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { String name=姓名.getText(); String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) { sex=男.getText(); } else { sex=女.getText(); } Employee 员工=new Employee();

员工.setNumber(number);

员工.setName(name);

员工.setDiscipling(discipling);

员工.setGrade(grade);

员工.setSex(sex); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();

员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); } catch(Exception ee) { System.out.println(ee); } 录入修改.setEnabled(false); } else if(ok==JOptionPane.NO_OPTION) { 录入修改.setEnabled(true); } }

else

{ String warning="该员工号没有基本信息,不能修改!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); 录入修改.setEnabled(false);

}

}

else

{

String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE);

录入修改.setEnabled(false);

}

}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedItem());

工资.setText(null); }}}

5、实现员工信息的查询: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,部门,工资; JRadioButton 男,女; JButton 查询; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) {

super(f,"查询对话框",false);

this.file=file;

员工号=new JTextField(10);

查询=new JButton("查询");

员工号.addActionListener(this);

查询.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 部门=new JTextField(10); 部门.setEditable(false); 工资=new JTextField(10); 工资.setEditable(false); 男=new JRadioButton("男",false); 女=new JRadioButton("女",false); group=new ButtonGroup(); group.add(男); group.add(女); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要查询的员工号:",JLabel.CENTER)); box1.add(员工号); box1.add(查询); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(Color.green); Container con=getContentPane(); con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false); setBounds(100,200,360,270);

addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false); } }); } public void actionPerformed(ActionEvent e) { 姓名.setText(null); 部门.setText(null); 工资.setText(null); if(e.getSource()==查询||e.getSource()==员工号) { String number=""; number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName()); 部门.setText(stu.getDisciping()); 工资.setText(stu.getGrade()); if(stu.getSex().equals("男")) { 男.setSelected(true); } else { 女.setSelected(true); } } else {

String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }} else { String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}}}

6、实现员工信息的删除: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Delete extends JPanel implements ActionListener {

Hashtable 基本信息表=null;

JTextField 员工号,姓名,部门,工资;

JRadioButton 男,女;

JButton 删除;

ButtonGroup group=null;

FileInputStream inOne=null;

ObjectInputStream inTwo=null;

FileOutputStream outOne=null;

ObjectOutputStream outTwo=null;

File file=null;

public Delete(File file)

{

this.file=file;

员工号=new JTextField(10);

删除=new JButton("删除");

员工号.addActionListener(this);

删除.addActionListener(this);

姓名=new JTextField(10);

姓名.setEditable(false);

部门=new JTextField(10);

部门.setEditable(false);

工资=new JTextField(10);

工资.setEditable(false);

男=new JRadioButton("男",false);

女=new JRadioButton("女",false);

group=new ButtonGroup();

group.add(男);

group.add(女);

Box box1=Box.createHorizontalBox();

box1.add(new JLabel("输入要删除的学号:",JLabel.CENTER));

box1.add(员工号);

box1.add(删除);

Box box2=Box.createHorizontalBox();

box2.add(new JLabel("姓名:",JLabel.CENTER));

box2.add(姓名);

Box box3=Box.createHorizontalBox();

box3.add(new JLabel("性别:",JLabel.CENTER));

box3.add(男);

box3.add(女);

Box box4=Box.createHorizontalBox();

box4.add(new JLabel("部门:",JLabel.CENTER));

box4.add(部门);

Box box6=Box.createHorizontalBox();

box6.add(new JLabel(" ",JLabel.CENTER));

Box box5=Box.createHorizontalBox();

box5.add(new JLabel("工资:",JLabel.CENTER));

box5.add(工资);

Box boxH=Box.createVerticalBox();

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box5);

boxH.add(box6);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanel pCenter=new JPanel();

pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==删除||e.getSource()==员工号)

{

String number="";

number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) {

} if(基本信息表.containsKey(number)) {

Employee stu=(Employee)基本信息表.get(number);

姓名.setText(stu.getName());

部门.setText(stu.getDisciping());

工资.setText(stu.getGrade()); if(stu.getSex().equals("男")) { 男.setSelected(true); } else { 女.setSelected(true); } String m="确定要删除该员工号及全部信息吗?"; int ok=JOptionPane.showConfirmDialog(this,m,"确认

",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { 基本信息表.remove(number); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 员工号.setText(null); 姓名.setText(null); 部门.setText(null); 工资.setText(null); } catch(Exception ee) { System.out.println(ee); } } else if(ok==JOptionPane.NO_OPTION) { 员工号.setText(null); 姓名.setText(null); 部门.setText(null);

工资.setText(null); } } else {

String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE); } } else {

String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}}}

三、实验结果体会

本次JAVA课程设计我所编写的程序是员工信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除的功能,我是应用文件的形式完成的,其中还应用到了图形用户界面。我设计的程序简单易懂,操作简单,且 适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现。通过这次JAVA的程序设计,使我对JAVA有了更加深入的了解,巩固了我对JAVA基础知识的掌握。

第二篇:人事管理系统Java课程设计报告

湖南科技大学计算机科学与工程学院

数据库课程设计报告

题目:人事管理管理系统

学 号:1005030221 姓 名:艾向兵 指导教师:张黎

完成时间:2012年1月4日 组员:苏勇,成佳裕,艾向兵

企业人事管理系统主要用于员工个人资料的录入,职务变动的记录和管理。使用人事管理系统,便于公司领导掌握人员的动向,及时调整人才的分配 1.1系统功能需求分析

人事管理系统主要有以下几项功能要求: .新员工资料的输入。

.自动分配员工编号,并且设置初始的用户密码: .人事变动的记载,包括岗位和部门的调整。 .员工信息的查询和修改,包括员工个人信息和密码 1.2 系统功能模块设计

根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图,

人事资源管理 包括:新员工档案输入,人事变更,员工档案查询

1.3 与其它系统的关系

本关系是公司管理信息系统的基础部分,为其他子系统,如考勤管理系统,工资管理系统和员工培训系统,提供员工的基本信息。同时为其他系统提供了员工登录的密码认证和权限分配。 1.4数据库设计 数据库需求分析:

员工信息:员工号,密码,权限,姓名,性别,生日,专业,通讯地址,电话,Email,当前状态,其他。

人事变动:记录号,员工,变动,详细描述

部门设置:部门编号,名称

员工变动代号表

员工信息表

员工职位代码表

管理员登陆界面

信息查询,修改,删除主界面

查询单个员工的界面

总 结

这次的课程设计,是在学习了Java以后通过阅读课本及在图书馆借阅相关书籍同严景、孟珍三人共同完成的。在开发这个系统的过程中,碰到很多或大或小的问题,我们一起思考,一起努力,最后大部分都解决了,得到了现在的这个简单的人事管理系统。

在编制过程中,我们首先考虑到了界面的友好性,并在界面设计时不采用烦琐的细节,使界面简单、清晰,便于操作。一开始我们是想做个登录界面,实现用户的登录权限管理,但试了几次都没有达到预期的效果,最后不得不放弃。

通过这次课程设计,我知道了什么事情都不那么简单,只有努力去做了,你才会有收获,不管收获大小,付出的过程总是有的。有些事情只有亲身感受,你才知道它的价值有多大。同时在遇到困难的时候要沉着冷静,首先要冷静分析问题,对于很难解决的问题要学会请教他人,还可以与别人合作。

在这次数据库系统课程设计中,我主要进行的是界面的设计,以及进行进行整合操作,界面是我学习Java以来第一次做,以前不怎么用的JTabel等,现在都已经熟练的应用了,特别是这次的弹出窗口,我在做这个的时候可谓是一窍不通,因为把按钮JButton定义为了局部变量而在时间响应中而得不到另一个窗口的弹出。

还有就是在整个过程中的ID传递让我不知怎么办,一个简单的参数传递才得以搞定,基础知识还是不够牢靠。在得到修改表的数据库内容后未把值传给表格。

虽然这次课程设计付出了大量的时间,但是我知道我得到的收获远远不是这些时间可以衡量的,它将给我今后的学习和工作带来更多的收益。通过对此课题的开发,使我对用Java开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如没有设置登录界面,没有考虑到异常等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。

弹出登录程序的界面程序

public void actionPerformed(ActionEvent e){

if(e.getSource()==okButton){

String userID=text.getText(); String passWD=String.valueOf(passwd.getPassword()); if(userID.equals("1")&&passWD.equals("1")){

JOptionPane.showMessageDialog(null, "登陆成功!", "消息", JOptionPane.INFORMATION_MESSAGE);

new UserWindow2().userWindow2();//弹出第二个窗体

} else{

JOptionPane.showMessageDialog(null, "对不起您的用户名或密码错误!", "错误",JOptionPane.ERROR_MESSAGE);

text.setText(""); passwd.setText(""); } } if(e.getSource()==deleButton){

text.setText(""); passwd.setText(""); }

} 进行信息查询,修改,删除的程序响应代码:

public void actionPerformed(ActionEvent e){

if(e.getSource()==button1){

new UserWindow3();

} if(e.getSource()==button2){

UserWindow7 u= new UserWindow7(); u.userWindow7(); } if(e.getSource()==button3){ UserWindow5 u=new UserWindow5();

u.userWindow5(); }

public void actionPerformed(ActionEvent e){

if(e.getSource()==button){ int id= Integer.parseInt(text0.getText());//得到用户编号

String name=text1.getText();//得到用户姓名

String sex=text2.getText(); //得到性别

String birthDay=text3.getText(); //得到生日 String department=text4.getText();//得到所在部门 String job =text5.getText();//得到职位

String education=text6.getText();//得到教育程度 String spcialty=text7.getText();//专业技能 String address=text8.getText();//得到地址 String tel=text9.getText();//得到电话

String email=text10.getText();//得到电子邮箱 String state=text11.getText();//得到员工状态 String remark=text12.getText();//得到备注 Insert in=new Insert();//

boolean b;

b=in.insert(id,name,sex,birthDay,department,job,education,spcialty,address,tel,email,state,remark); if(b){ JOptionPane.showMessageDialog(null, "数据保存成功!", "消息", JOptionPane.INFORMATION_MESSAGE); }

} }

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

id = Integer.parseInt(text.getText());

if(e.getSource()==button){ UserWindow8 us = new UserWindow8(); us.userWindow8(id);

}

Container container=this.getContentPane(); container.setLayout(new BorderLayout());

JPanel pan =new JPanel(); JLabel lab = new JLabel("请输入工号:"); JTextField text=new JTextField(10); JButton button =new JButton("查询"); JButton button1=new JButton("删除"); pan.add(lab); pan.add(text); pan.add(button); pan.add(button1); container.add(pan);

String []titles={"员工编号","姓名","性别","生日","部门","职务","教育程度","专业技能","家庭住址","联系电话","电子邮箱"};

String [][]userInfo={};

JTable table =new JTable(userInfo,titles); table.isCellEditable(2,2); JScrollPane scrollpane

=new

JScrollPane(taboooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo......................le);

container.add(scrollpane,BorderLayout.SOUTH);

第三篇:JAVA课程设计--员工信息管理系统(徐如飞)

摘要

众所周知,当今社会是信息社会,因此,要想加强人事管理,单纯依靠以前的手工管理,不仅会浪费大量的人力,物力,财力,而且效率不高,而且很难达到预期的目的。所以人事管理信息系统能够提供准确的人员信息,以便领导者了解企业各个部门的人员构成,安排好工作计划,使企业变的更高效。

该系统能够对某单位的职工进行管理,主要功能如下是:

一、人事资料输入:输入员工信息,如姓名、身份证号、地址、电话、部门、工资、参加工作时间、专业、职务、备注等。

二、信息查询:可根据职工编号、职工名称、出生年月范围、工资范围、参加工作时间范围等条件查询。

三、登陆检测、用户管理、密码修改、权限设置。

四 、系统初始化:包括操作员信息初始化和职工信息初始化。

五、用户信息修改:拥有权限的操作员可以修改、冻结、删除普通用户。

关键词:人事信息、java、用户界面

目 录

一、设计目的 ................................................................................................................ 1

二、设计问题 ................................................................................................................ 1

三、概要设计 ................................................................................................................ 1

四、详细设计 ................................................................................................................ 2

1、定义员工类: ..................................................................................................................... 3

2、主程序: ............................................................................................................................. 4

3、实现员工信息的录入: ..................................................................................................... 7

4、实现员工信息的修改: ................................................................................................... 12

5、实现员工信息的查询: ................................................................................................... 19

6、实现员工信息的删除: ................................................................................................... 23

五、设计总结 .............................................................................................................. 27 参考文献 ...................................................................................................................... 28

信息专业java语言程序设计课程设计

人事管理系统

一、设计目的

通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。

二、设计问题

设计题目:员工管理系统

设计要求:(1)完成员工信息的添加、删除、查询、修改功能

(2)使用用户界面操作 (3)使用文件形式完成

设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。

三、概要设计

1、从管理员角度讲,实现的功能是: (1) 对员工有关数据的输入功能 a) 实现对员工基本信息的输入 b) 实现对员工奖惩信息的输入 (2) 对员工有关数据的更新功能

由管理员进行档案收集,经过对档案资料的处理,更新员工档案管理系统中的奖惩相关信息(包括员工基本信息和员工业绩信息)。 (3) 对员工档案信息的查询功能

管理员可以通过自己的用户名和密码在因特网上对所有员工的信息(包括员工的档案信息、员工的业绩信息)进行查询。

(4) 对员工、部门和部门领导信息的简单管理 (5) 对用户密码的管理

2、从普通用户(员工)的角度讲,实现的功能是:

人事管理系统

(1)在单位员工可以通过自己的编号和密码在因特网上对自己的个人信息(包括个人的档案信息、业绩信息)进行查询。 (2) 对用户密码的管理

面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。

功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。

员工信息管理系统的系统运行流程图

四、详细设计

信息专业java语言程序设计课程设计

1、定义员工类:

public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex; public Employee() { } public void setNumber(String number) { this.number=number; } public String getNumber() { return number; } public void setName(String name) { this.name=name; } public String getName() { return name; } public void setDiscipling(String discipling) { this.discipling=discipling; } public String getDisciping() { return discipling; } public void setGrade(String grade) { this.grade=grade; } public String getGrade() { return grade; } public void setBorth(String borth) { this.borth=borth; } public String getBorth() 3

人事管理系统

{ return borth; } public void setSex(String sex) { this.sex=sex; } public String getSex() { return sex; }}

2、主程序:

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.Hashtable; public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public EmployeeManager() { 录入=new JMenuItem("录入员工基本信息"); 修改=new JMenuItem("修改员工基本信息"); 查询=new JMenuItem("查询员工基本信息"); 删除=new JMenuItem("删除员工基本信息"); bar=new JMenuBar(); fileMenu=new JMenu("菜单选项"); fileMenu.add(录入); fileMenu.add(修改); fileMenu.add(查询); 4

信息专业java语言程序设计课程设计

fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel("欢迎进入员工信息管理系统",JLabel.CENTER); label.setFont(new Font("SansSerif",Font.BOLD+Font.ITALIC,25)); label.setForeground(Color.red); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); pCenter.setBackground(Color.yellow); file=new File("基本信息.txt"); if(!file.exists()) {

try

{

FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(基本信息);

objectOut.close();

out.close();

}

catch(IOException e)

{

} } 基本信息录入=new EmployeeSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); pCenter.add("欢迎语界面",label); pCenter.add("录入界面",基本信息录入); pCenter.add("修改界面",基本信息修改); pCenter.add("删除界面",基本信息删除); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) 5

人事管理系统

{ System.exit(0); }}); setVisible(true); setBounds(100,50,420,380); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==录入) { card.show(pCenter,"录入界面"); } else if(e.getSource()==修改) { card.show(pCenter,"修改界面"); } else if(e.getSource()==查询) { 基本信息查询.setVisible(true); } else if(e.getSource()==删除) { card.show(pCenter,"删除界面"); } } public static void main(String args[]) { new EmployeeManager(); }}

信息专业java语言程序设计课程设计

3、实现员工信息的录入: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门; JRadioButton 男,女; Employee 员工=null; ButtonGroup group=null; JButton 录入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public EmployeeSituation(File file) {

this.file=file;

员工号=new JTextField(10);

姓名=new JTextField(10);

部门=new Choice();

部门.add("请选择");

部门.add("研发部");

部门.add("销售部");

部门.add("人事部"); 7

人事管理系统

部门.add("安全部"); 工资=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 录入=new JButton("录入"); 重置=new JButton("重置"); 录入.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("员工号:",JLabel.CENTER)); box1.add(员工号); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(" ",JLabel.CENTER)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入); 8

信息专业java语言程序设计课程设计

pSouth.add(重置);

pSouth.setBackground(Color.yellow);

add(pSouth,BorderLayout.SOUTH);

validate();

} public void actionPerformed(ActionEvent e) { if(e.getSource()==录入) { String number=""; number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { String warning="该员工基本信息已存在,请到修改页面修改!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); } else { String m="基本信息将被录入!"; int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { String name=姓名.getText(); String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) { 9

人事管理系统

sex=男.getText(); } else { sex=女.getText(); } 员工=new Employee(); 员工.setNumber(number); 员工.setName(name); 员工.setDiscipling(discipling); 员工.setGrade(grade); 员工.setSex(sex); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne);

基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();

员工号.setText(null);

姓名.setText(null);

工资.setText(null); } catch(Exception ee) { System.out.println(ee); }}}} else { String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedIndex());

工资.setText(null);

}}} 10

信息专业java语言程序设计课程设计

人事管理系统

4、实现员工信息的修改: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门; JRadioButton 男,女; ButtonGroup group=null; JButton 开始修改,录入修改,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public ModifySituation(File file) {

this.file=file; 12

信息专业java语言程序设计课程设计

员工号=new JTextField(10); 姓名=new JTextField(10); 部门=new Choice(); 部门.add("请选择"); 部门.add("研发部"); 部门.add("销售部"); 部门.add("人事部"); 部门.add("安全部"); 工资=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 开始修改=new JButton("开始修改"); 录入修改=new JButton("录入修改"); 录入修改.setEnabled(false); 重置=new JButton("重置"); 员工号.addActionListener(this); 开始修改.addActionListener(this); 录入修改.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要修改信息的员工号:",JLabel.CENTER)); box1.add(员工号); box1.add(开始修改); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(" ",JLabel.CENTER)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); 13

人事管理系统

boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入修改); pSouth.add(重置); pSouth.setBackground(Color.yellow); add(pSouth,BorderLayout.SOUTH); validate();

} public void actionPerformed(ActionEvent e) {

if(e.getSource()==开始修改||e.getSource()==员工号)

{

String number="";

number=员工号.getText();

if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { 录入修改.setEnabled(true); Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName()); 部门.getSelectedItem(); 工资.setText(stu.getGrade()); if(stu.getSex().equals("男")) { 14

信息专业java语言程序设计课程设计

男.setSelected(true); } else { 女.setSelected(true); } }

else

{

录入修改.setEnabled(false); String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null);

} }

else { 录入修改.setEnabled(false); String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); }

}

else if(e.getSource()==录入修改)

{

String number="";

number=员工号.getText();

if(number.length()>0)

{

try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } 15

人事管理系统

catch(Exception ee) { } if(基本信息表.containsKey(number)) { String question="该员工基本信息已存在,您想修改他(她)的基本信息吗?"; JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.QUESTION_MESSAGE); String m="基本信息将被修改!"; int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { String name=姓名.getText(); String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) { sex=男.getText(); } else { sex=女.getText(); } Employee 员工=new Employee();

员工.setNumber(number);

员工.setName(name);

员工.setDiscipling(discipling);

员工.setGrade(grade);

员工.setSex(sex); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();

员工号.setText(null); 姓名.setText(null); 16

信息专业java语言程序设计课程设计

部门.remove(部门.getSelectedItem()); 工资.setText(null); } catch(Exception ee) { System.out.println(ee); } 录入修改.setEnabled(false); } else if(ok==JOptionPane.NO_OPTION) { 录入修改.setEnabled(true); } }

else

{ String warning="该员工号没有基本信息,不能修改!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); 录入修改.setEnabled(false);

}

}

else

{

String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE);

录入修改.setEnabled(false);

}

}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedItem());

工资.setText(null); }}} 17

人事管理系统

信息专业java语言程序设计课程设计

5、实现员工信息的查询: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null; JTextField 员工号,姓名,部门,工资; JRadioButton 男,女; JButton 查询; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) {

super(f,"查询对话框",false);

this.file=file;

员工号=new JTextField(10);

查询=new JButton("查询");

员工号.addActionListener(this); 19

人事管理系统

查询.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 部门=new JTextField(10); 部门.setEditable(false); 工资=new JTextField(10); 工资.setEditable(false); 男=new JRadioButton("男",false); 女=new JRadioButton("女",false); group=new ButtonGroup(); group.add(男); group.add(女); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要查询的员工号:",JLabel.CENTER)); box1.add(员工号); box1.add(查询); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER)); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER)); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("部门:",JLabel.CENTER)); box4.add(部门); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("工资:",JLabel.CENTER)); box5.add(工资); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(Color.green); Container con=getContentPane(); con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false); setBounds(100,200,360,270); 20

信息专业java语言程序设计课程设计

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) { setVisible(false); } }); } public void actionPerformed(ActionEvent e) { 姓名.setText(null); 部门.setText(null); 工资.setText(null); if(e.getSource()==查询||e.getSource()==员工号) { String number=""; number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { } if(基本信息表.containsKey(number)) { Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName()); 部门.setText(stu.getDisciping()); 工资.setText(stu.getGrade()); if(stu.getSex().equals("男")) { 男.setSelected(true); } else { 女.setSelected(true); } } else { 21

人事管理系统

String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }} else { String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}}}

22

信息专业java语言程序设计课程设计

6、实现员工信息的删除: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Delete extends JPanel implements ActionListener {

Hashtable 基本信息表=null;

JTextField 员工号,姓名,部门,工资;

JRadioButton 男,女;

JButton 删除;

ButtonGroup group=null;

FileInputStream inOne=null;

ObjectInputStream inTwo=null;

FileOutputStream outOne=null;

ObjectOutputStream outTwo=null;

File file=null;

public Delete(File file)

{

this.file=file;

员工号=new JTextField(10);

删除=new JButton("删除");

员工号.addActionListener(this);

删除.addActionListener(this);

姓名=new JTextField(10);

姓名.setEditable(false);

部门=new JTextField(10);

部门.setEditable(false);

工资=new JTextField(10);

工资.setEditable(false);

男=new JRadioButton("男",false);

女=new JRadioButton("女",false);

group=new ButtonGroup();

group.add(男);

group.add(女);

Box box1=Box.createHorizontalBox();

box1.add(new JLabel("输入要删除的学号:",JLabel.CENTER));

box1.add(员工号);

box1.add(删除);

Box box2=Box.createHorizontalBox();

box2.add(new JLabel("姓名:",JLabel.CENTER));

box2.add(姓名);

Box box3=Box.createHorizontalBox(); 23

人事管理系统

box3.add(new JLabel("性别:",JLabel.CENTER));

box3.add(男);

box3.add(女);

Box box4=Box.createHorizontalBox();

box4.add(new JLabel("部门:",JLabel.CENTER));

box4.add(部门);

Box box6=Box.createHorizontalBox();

box6.add(new JLabel(" ",JLabel.CENTER));

Box box5=Box.createHorizontalBox();

box5.add(new JLabel("工资:",JLabel.CENTER));

box5.add(工资);

Box boxH=Box.createVerticalBox();

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box5);

boxH.add(box6);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanel pCenter=new JPanel();

pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==删除||e.getSource()==员工号)

{

String number="";

number=员工号.getText(); if(number.length()>0) { try { inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee) { 24

信息专业java语言程序设计课程设计

} if(基本信息表.containsKey(number)) {

Employee stu=(Employee)基本信息表.get(number);

姓名.setText(stu.getName());

部门.setText(stu.getDisciping());

工资.setText(stu.getGrade()); if(stu.getSex().equals("男")) { 男.setSelected(true); } else { 女.setSelected(true); } String m="确定要删除该员工号及全部信息吗?"; int ok=JOptionPane.showConfirmDialog(this,m,"确认

",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { 基本信息表.remove(number); try { outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 员工号.setText(null); 姓名.setText(null); 部门.setText(null); 工资.setText(null); } catch(Exception ee) { System.out.println(ee); } } else if(ok==JOptionPane.NO_OPTION) { 员工号.setText(null); 姓名.setText(null); 部门.setText(null); 25

人事管理系统

工资.setText(null); } } else {

String warning="该员工号不存在!"; JOptionPane.showMessageDialog(this,warning,"警告

",JOptionPane.WARNING_MESSAGE); } } else {

String warning="必须要输入员工号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); }}}} 26

信息专业java语言程序设计课程设计

五、设计总结

通过本次课程设计,我对软件开发设计分析过程有了深刻了解,不仅提高了编程思路,而且充分认识到分工合作在软件开发部署过程中的重要性。通过查询资料,参考丛书,受益匪浅。然后对这些遇到的问题进行处理,在解决问题的能力思路上活跃起来,对于以后开发高质量的软件有很大的提高。

本次JAVA课程设计我所选择的程题目是人事信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除等一系列功能,在设计的过程中,我查阅了大量的资料,请教了一些老师,也获得了同学们的帮助,我设计的程序简单易懂,操作简单,适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现。通过这次JAVA的程序设计,使我对JAVA有了更加深入的了解,巩固了我对JAVA基础知识的掌握,并且能够更加熟练的应用JDK与Eclipse进行JAVA程序的编写。可以说理论联系实际,这使我的知识和能力都更上一层楼。

27

人事管理系统

参考文献

[1] 张桂元,贾燕枫.Eclipse开发入门与项目实践[M].北京:人民邮电出版社,2006 [2] 赵强.基于开源软件的J2EE企业级应用开发[M].北京:电子工业出版社,2005 [3] (美)John Hunt,Chris Loftus著.精通J2EE——Java企业级应用[M].周立斌,杨飞等译.北京:清华大学出版社. 2004 [4] 曹广鑫,王谢华,王建凤等.Struts数据库项目开发宝典[M].北京:电子工业出版社,2006 [5] 施伯乐、丁宝康. 数据库系统教程,高等教育出版社,2008年7月; [6] 邵丽萍.软件开发技术[M].北京:清华大学出版社,2005 [7] 谢星星,沈懿卓.UML基础与ROSE建模实用教程.北京:清华大学出版社,2009 [8] 邵丽萍.软件开发技术[M].北京:清华大学出版社,2005 [9] 郭兴成.PowerBuilder9.0实用教程[M].北京:清华大学出版社,2003

28

第四篇:Java程序设计课程设计学生考勤系统

信息与电子工程学院

课程设计报告

课程名称:

姓名: 学号: 班级: 指导老师: 完成时间:

2016年6月 Java程序设计课程设计

学生考勤系统

问题描述:

以班为单位,可以以日期为标识记录每个学生的考勤情况(正常、旷课、请假、迟到、早退)、可以查看某个学生的考勤情况、可以查看全班的考勤情况.

1.需求分析(标题,黑体,小四,段前段后0.5行)

(1)用户需求描述:

学生用户:学生对本系统的主要需求是在线请假以及查看学期内的上课出勤信息。 在线请假中,学生可以随时查看请假的进展情况。另外学生还可以修改本人的密码。

教师用户:任课老师对本系统的主要需求是查看班级信息,查看学生信息。并且在上课前进行点名,管理所教班级学生的上课出勤信息,查看学生上课出勤情况,对学生请假审请进行批准等。另外,教师还可以修改自己的密码。 (2)系统功能划分: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这两大模块。

在线请假模块:

该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。

考勤管理模块:

该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E表格,最后方便统计整个学期本课程所有学生的考勤情况。

2.总体设计

功能结构图;

ER图:

数据库设计: 1 数据库需求分析

学生考勤管理系统要实现在线请假、随堂考勤两大子系统,需要了解学生用户、教师用户两类用户的功能模块。然后,据此分析出数据需求。学生表:学生流水号、学生学号、学生名字、性别、宿舍号、联系方式、密码。请假表:请假开始时间、请假结束时间、请假原因、请假天数、审批时间。考勤表:考勤流水号、考勤的学生ID、考勤的课程ID、考勤时间、考勤课次、考勤结果。

3.主要功能的实现

(1)设计的思路: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这三大模块。

在线请假模块:

该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。

考勤管理模块:

该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E表格,最后方便统计整个学期本课程所有学生的考勤情况。 用户信息修改模块: 该模块主要操作用户是由学生和老师,由用户登录并进行操作。选择修改用户密码,验证旧的用户密码,输入新的用户密码,并且重复确认输入,点击确定之后,系统修改用户信息并保存。

(2)算法流程图:

(3)UML时序图:

学生输入用户名和密码,系统验证用户名和密码是否正确,如果正确,显示系统主页面。 (4)活动图:

学生登陆系统点击请假申请,然后填写假条信息,填写完成后点击提交,老师审批假条并返回信息给申请者。 (2)程序执行结果

4.小结

课程设计小结:该系统还有较多不完善之处,个人能力也有待进一步的提升。通过这次课程设计,重新掌握了一些以前掌握的不够牢固的知识和一些不懂的方法实现的思路及想法,让我们得到进一步的提高。

第五篇:Java课程设计

Java及J2EE课程设计题目

1、文件档案管理

文件档案管理系统主要对外来文件、下发文件和需要抄送的文件进行统一管理。划分为以下三个模块:收文管理、发文管理、抄送文件。

1. 收文文件增加、删除和修改,其字段有:收文编号、收件日期、文件标题、内容、发文单位、签发人

2. 发文文件增加、删除和修改,其字段有:发文编号、发件日期、文件标题、内容、收文单位、发件人

3. 抄送文件增加、删除和修改,其字段有:文件编号、发件日期、文件标题、内容、抄送单位、发件人

4. 查询条件是发文类型(收文、发文还是抄送)、文件标题、内容进行模糊查询。

应用工具:jsp+struts+jdbc

题目等级:A

2、运动员档案管理

运动员档案管理系统是对运动员的基本信息及参加比赛的情况进行管理维护。分为两个模块:运动员建档、比赛记录。

5. 运动员建档增加、删除和修改,其字段有:学生编号、姓名、出生日期、性别、民族、政治面貌、主修项目、联系方式

6. 对运动员的档案进行模糊查询,查询条件有:学生编号、学生姓名、性别、主修项目

7. 对比赛记录进行增加、删除、修改,其字段有:学生编号、姓名、时间、地点、比赛名称、参加项目、成绩、名次

8. 对比赛记录进行模糊查询,查询条件有:学生编号、学生姓名、比赛名称、参加项目、成绩 应用工具:jsp+struts+jdbc

题目等级:A

3、信息发布系统

信息发布系统是将最新信息、以最快的方式展示给用户。提供信息的维护管理功能。信息主要字段:发布时间、标题、内容、有效期开始时间、结束时间、发布人、是否阅读,完成对信息的发布、修改、删除操作,对信息进行模糊查询,其查询条件为标题、内容、发布人

应用工具:jsp+struts+jdbc

题目等级:A

4、通讯录管理

通讯录管理系统是方便用户管理自己的联系人,查找相应的联系方式。根据类别的不同对联系人进行分类管理。联系人信息有:姓名、性别 、职务、办公电话、手机、宅电 、电子邮件、通讯地址,完成对联系人的增加、删除、修改操作,提供对通讯录进行模糊查询,其条件为姓名、性别、职务、通讯地址字段

应用工具:jsp+struts+jdbc

题目等级:A

5、备忘录管理

备忘录管理系统是记录每天需要做的事情,起到一个提醒的作用。提供对这些信息的维护功能。备忘录中的内容主要有:日期、标题、内容这三个数据项,完成对其的增加、删除、修改操作,并可以按日期和标题、内容进行模糊查询

应用工具:jsp+struts+jdbc

题目等级:A

6、会议管理

会议管理系统是记录会议的基本信息,开完会后记录会议的讨论结果,进行备案,供以后查询使用。会议的基本信息:会议主题、会议类型 (周会、报告会、考务会……)、会议状态 (准备中、进行中、已结束三种)、会议时间、会议地址 、参与者 、会议主要内容,完成对其会议基本信息的增加、删除、修改操作,并要记录会议结果,会议记录结果主要记录的是会议讨论结果 、领导签字两个数据项。 应用工具:jsp+struts+jdbc

题目等级:A

7、日程管理

日程管理要记录每天的工作日程安排,主要内容包括:记录时间、名称、内容、地点、日程的开始

和结束时间,完成对基本信息的增加、删除、修改操作,并对日程的信息进行查询,查询条件有:名称、内容

应用工具:jsp+struts+jdbc

题目等级:A

8、日志管理

日志管理要记录每一天完成工作的情况,记录的信息有时间、上午工作记录、下午工作记录、记录人,完成对这些信息的维护,并对日期进行查询

应用工具:jsp+struts+jdbc

题目等级:A

9、用户管理

为了方便网站管理者对用户进行身份确认,或者是用户购买以后进行配送等服务,必须要有用户管理系统。用户管理系统应该具有用户注册、用户登录、用户修改和用户注销等功能。

1. 用户注册(1)

2. 用户登录(1)

3. 用户信息修改(1)

4. 用户注销(1)

应用工具:jsp+struts+jdbc

题目等级:A

10、数据查询

网上购物的一个优势是可以在商品中进行查询。

1. 生成查询记录集(1)

2. 分页显示功能(1)

3. 查看商品详细信息(1)

应用工具:jsp+struts+jdbc

题目等级:A

11、购物车

1.添加到购物车(1)

2.查看购物车(1)

3.购物车操作(1)

4.结帐(1)

应用工具:jsp+struts+jdbc

题目等级:A

12.新闻管理系统

题目:当今社会是一个信息社会,人们通过信息了解社会情况,进行社会活动,而新闻作为企事业单位宣

传自己,发布信息的主要形式,而在网络新闻的宣传是一个新兴事务,并且发展很快,已经成为一个重要信息发布媒体。所以现要求你设计一个用于新闻管理的信息系统,实现新闻的编辑与发布。

功能要求:本系统要求可以完成新闻在线发布,在线编辑,新闻分类,图片新管理等功能,技术上要求

使用JSP技术。

题目等级:B

13.在线考试系统

题目:考试作为学员学习效果的检验的主要方式一直被采用,而且考试形式也有许多方式,如笔试,面

试等,在线测试作为一种新的考试形式,得到越来越快的发展。所以现要求你设计一个在线考试系统,实现在线测试。

功能能要求:实现在线测度,在线评测,随机出题,试题编辑等功能,技术上采用JSP+JavaBean实现。题目等级:A

14.网上书店系统

题目:图书是人们了解知识,掌握知识的主要手段,传统的书店都店面形式,人们需要去书店才能够购

买,花费大量的时间也不一定得到一本满意的书籍。而网上书店就是利用网络为人们提供一个足不出户就可以买到一本理想的书籍的方式。所以要求你设计一个网络书店系统,实现书籍的在线销售,在线阅读。

功能要求:实现图书在线阅览,在线选购,新书推荐等功能,技术上要求采用JSP +JavaBean实现。 题目等级:A

15.学生学籍系统

题目:学生学籍管理是一个学校管理的重要组成部分,学生学籍管理也是最麻烦的一项管理,所以实现

学生学籍管理的信息化是一种简化管理的主要途径。现要求你设计一个实现学生学籍管理的系统,实现学生学籍管理的信息化。

功能要求:学生学籍注册,查询,更新,学生奖惩,学籍变动等功能。技术上要求采用JSP技术实现。 题目等级:B

16.留言本

题目:留言本是网站中用于与管理员进行信息交流的主要方式,是网站中的一个重要功能之一,现要求

你设计一个留言本,实现在线留言。

功能要求:留言发布,留言回复,留言置顶,留言验证等功能,技术采用JSP实现。

题目等级:C

17.在线投票问卷管理系统

题目:在线调查是调查了解对某件事情人们反映的主要方式,是目前比要流行的一种调查方式。现要求

实现一个在线投票调查系统,并可以进行结果统计,结果评测等功能。

功能要求:在线投票,在线答卷,在线统计,在线评测等功能,技术上采用JSP实现。

题目等级:C

18.员工档案管理系统

题目:员工档案是一个企业人才建设管理的重要资源,好的员工档案管理,对提高员工工作积极性,

提高企业效益的重要方式。所以要求设计一个员工档案管理系统,实现员工档案管理的信息化管理。

功能要求:员工档案注册,员工考核,员工调动等功能,技术上采用JSP+JavaBean实现。

题目等级:A

19.文本编辑器

题目:参照Windows记事本程序设计一个文本编程器,可以进行文本的格式编辑。

功能要求:要求有菜单,工具栏,文本编辑功能所需要的功能,技术上采用Java图形窗口技术实现。题目等级:C

20.计算器

题目:参照Windows计算器程序设计一个计算器,可以实现数学计算。

功能要求:要求功能上要与Windows计算器功能类似。

题目等级:C

21. HANNOI-塔

题目:运用多线程与图形接口技术设计一个HANNOI-塔演示程序,要求增加简易图形界面。功能要求:能够至少演示5级HANNOI-塔。

题目等级:B

22.挖雷游戏

题目:运用多线程程序与图形接口技术设计一个挖雷游戏程序,要求有简易的图形界面。

功能要求:功能上与Windows扫雷游戏类似。

题目等级:A

23.动态时钟

题目:运用Applet和多线程技术设计钟表程序,以实现当前时钟的显示。

功能要求:要求有表盘,可以调整时间。

题目等级:B

24.音乐播放器

题目:运用Applet技术设计一个可以播放音乐的播放器。

功能要求:可以播放音乐,可以添加乐曲等功能。

题目等级:C

25.实验室网上签到系统

题目:要求实现一个实验在线签到系统,学生可以在上实验时完成签到。

功能要求:课程设置,新建签到,学生签到列表,学生在线签到等功能。技术上采用JSP+JavaBean技

术实现。

题目等级:B

26.用户管理系统

题目:要求实现用户管理系统,可以实现用户注册,用户权限管理等功能。

功能要求:用户注册,用户极限分配,用户登录等功能。技术采用JSP技术实现。、

题目等级:C

27.图书馆管理系统

题目:要求实现图书馆的在线管理,学生可以在线借书,在线阅览等功能。

功能要求:在线图书管理。在线阅读,在线借书,还书等功能。技术上采用JSP+JavaBean实现。题目等级:B

28.求职招聘系统

题目:网上求职是当今人才流动,人才引进的重要途径,但对于成百万的简历的管理,职位的发布的

管理如果采用人工的方式会花费大量的人力、物力,但如果实现计算机网络化 管理就显得容易一些,所以现要求你设计一个求职招聘管理系统,实现人才交流的信息化处理。。

功能要求:职位发布,在线投简,在线应聘等功能。技术上采用JSP+JavaBean技术实现。题目等级:B

29.仓库管理系统

题目:仓库管理是一个非常烦琐,但是很重要的工作。如果能够实现仓库管理的计算机处理,对于提

高工作效率,降低工作成本,能够起到非常重要的作用,所以现要求实现一个仓库管理系统,实现仓库的信息化管理。

功能要求:实现货物的出库,入库,库存统计,库存预警等功能。技术上采用JSP+JavaBean技术实现。题目等级:B

30企业网站管理系统

题目:网站对企业宣传工作的开展提供一个非常的好的效果,产生很好的效益,这就说明网站已经成

为企业宣传自己的重要手段,网站管理的好坏直接影响这个网站的应用,所以现要求为某企业网站设计一个管理系统,实现网站的后台管理。

功能要求:产品发布,用户管理,信息发布等功能。技术上采用JSP+JavaBean技术实现。题目等级:A

31.流量统计系统

题目:网络流量是反映一个网站受关注度情况的重要表现,是网站调整版面信息的参考,访问流量高

的网站证明其效益非常好,是一个非常理想的网站,但流量低的网站就需要进行信息的更新和版面的修改,以提高网站的访问量,这样网站流量的时时统计能够给网站管理员提供一个网站运行情况信息参考,为其更好的管理网站提供帮助。现要求你设计一个网站访问流量的统计系统,时时统计网站访问流量。

功能要求:显示在线人数,当前访问者IP,历史访问人数,最高流量时间等功能。技术上采用JSP技

术实现。

题目等级:C

其它可选题目

以上题目的等级全都为C,所选工具应为jsp+jdbc,都要完全相应的增、删、改、查等功能

(1) 酒店管理信息系统

(2) 客房管理信息系统

(3) 药品管理信息系统

(4) 学籍管理信息系统

(5) 成绩管理信息系统

(6) 宿舍管理信息系统

(7) 图书管理信息系统

(8) 财务处理信息系统

(9) 固定资产核算信息系统

(10) 工资管理信息系统

(11) 材料管理信息系统

(12) 成本管理信息系统

(13) 房地产产权产籍管理信息系统的开发

(14) 住宅小区物业管理信息系统的开发

(15) 建设工程报价管理信息系统的开发

(16) 建设工程预算系统的开发

(17) 项目材料管理信息系统的开发

(18) 工程材料采购管理信息系统的开发

(19) 工程成本管理信息系统的开发

(20) 机械设备租赁管理系统的开发

(21) 工程图档管理信息系统的开发

(22) 企业人力资源管理信息系统的开发

(23) 企业职工培训管理信息系统的开发

(24) 企业职工医疗保险信息系统的开发

(25) 商品销售管理信息系统的开发

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:傅雷家书读后感1000字下一篇:给朋友的一封信1200字