第一篇: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课程设计--员工信息管理系统(徐如飞)
摘要
众所周知,当今社会是信息社会,因此,要想加强人事管理,单纯依靠以前的手工管理,不仅会浪费大量的人力,物力,财力,而且效率不高,而且很难达到预期的目的。所以人事管理信息系统能够提供准确的人员信息,以便领导者了解企业各个部门的人员构成,安排好工作计划,使企业变的更高效。
该系统能够对某单位的职工进行管理,主要功能如下是:
一、人事资料输入:输入员工信息,如姓名、身份证号、地址、电话、部门、工资、参加工作时间、专业、职务、备注等。
二、信息查询:可根据职工编号、职工名称、出生年月范围、工资范围、参加工作时间范围等条件查询。
三、登陆检测、用户管理、密码修改、权限设置。
四、系统初始化:包括操作员信息初始化和职工信息初始化。
五、用户信息修改:拥有权限的操作员可以修改、冻结、删除普通用户。
关键词:人事信息、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);}}}}
信息专业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程序的编写。可以说理论联系实际,这使我的知识和能力都更上一层楼。
人事管理系统
参考文献
[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
第三篇:人员信息管理系统 java课程设计
大学人员信息管理系统 / 29
目录
目录.......................................................................................................................................1 设计任务书...............................................................................................................................2 课程设计任务...........................................................................................................................2 程序功能实现:.......................................................................................................................3 1.程序主体............................................................................................................................3 2.流程图:............................................................................................................................4 3.模块说明............................................................................................................................4 3.1、主菜单四个选项......................................................................................................4 3.2、教师功能菜单..........................................................................................................5 3.3、学生功能菜单..........................................................................................................5 3.4、查找菜单..................................................................................................................6 4.源代码及说明.................................................................................................................6 4.1、listStuTea 类............................................................................................................6 4.2、Menu 类................................................................................................................10 4.3、StudnTeach 类.......................................................................................................16 4.4、Student 类.............................................................................................................19 4.5、Teacher 类.............................................................................................................19 4.6、Person 类...............................................................................................................20 4.7、lkExecption类........................................................................................................21 4.8、MainStuTea类........................................................................................................23 5.操作方法和测试结果......................................................................................................24 5.1.1、教师信息显示.....................................................................................................24 5.1.2、教师信息添加.....................................................................................................24 5.1.3、教师信息删除.....................................................................................................25 5.1.4、教师信息查找.....................................................................................................26 5.2、学生菜单实现........................................................................................................28 6.设计体会..........................................................................................................................28
Java程序设计 大学人员信息管理系统 / 29
设计任务书
问题描述:
编写程序对大学里的人员进行管理。大学里的人员主要由学生、教师和在职进修教师(既是学生又是教师)组成,各类人员均有姓名、电话和住址等信息,学生另有所属专业信息,教师另有所在系部、授课信息及工资信息,在职进修教师具备以上各类人员的信息。
要求:
1、设计Person类,保存各类人员均有的姓名、电话和住址等信息。
2、设计Student类或接口,继承Person类,并添加所属专业班级信息。
3、设计Teacher类接口,继承Person类,并添加所在系部信息,授课信息及工资信息。
4、设计StudenTeacher类,继承Student类接口和Teache类接口。其具备以上各类人员信息。
5、把创建的所有StudenTeacher对象按照其所属系部依次组织在一个文件中方便查询、修改、删除及添加等操作。
6、对各类的对象进行信息输入操作,输入信息包括该类对象的所有信息。
7、对各类的对象进行输出操作,显示输出该类对象的所有信息
课程设计任务及设计人
设计任务:
大学人员信息管理系统 课程目的:
1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;
Java程序设计 大学人员信息管理系统 / 29
3、培养学生在项目开发中团队合作精神、创新意识及能力。
课程要求:
1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2、系统设计要实用,编程简练,可用,功能全面
3、说明书、流程图要清楚
4、记录设计情况(备查,也为编写设计说明书作好准备);
5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6、本设计需要实现Java的面向对象开发运用到的有Java的接口,Java的继承,Java的异常处理,Java类的封装。能够在异常输入的情况下,能正确处理。最后得到正确结果。
程序功能实现:一、二、三、四、五、六、按照课程的要求实现学生和教师的基本信息的录入。把输入的教师和学生信息显示出来。
有姓名和专业两种查找方式去分别把老师和学生的信息查找并且显示出来。删除选项可以删除相应学生和老师信息。
用switch语句实现菜单功能,字符界面做到简洁清晰
异常处理处理错误的输入并且返回错误的提示,更正后填入正确数据。
1.程序主体
1、设计分析:
1.1、实体是实现程序思想的主要方式,首先应该分为学生和老师2个入口,分别做查询和信息添加、显示、删除和查找的功能。
1.2、学生和老师的信息输入考虑要求多名信息考虑用对象数组去实现。但是对象数组的删除不是本学期的内容。且排序麻烦。考虑用其他方式实现信息录入,查阅相关信息发现可以使用list对象实现信息录入和删除。
1.3、菜单使用switch语句实现菜单功能,菜单的相互调用实现功能的循环。
Java程序设计 大学人员信息管理系统 / 29
2.流程图:
3.模块说明
3.1、主菜单四个选项
学生入口:
Java程序设计 大学人员信息管理系统 / 29
这个模块与学生功能模块相连。
教师入口:
这个模块与教师功能模块相连
显示全部信息:
这个模块显示所有的老师和学生信息
3.2、教师功能菜单
显示教师信息:
这个模块显示输入的教师信息,如果不存在提示输入信息
添加教师信息:
这个模块添加教师基本信息
删除教师信息:
这个模块按照序号删除教师信息,如果不存在提示信息输入
查找教师信息:
按照姓名和专业查找教师信息
返回上一级菜单: 返回主菜单
3.3、学生功能菜单
显示学生信息:
这个模块显示输入的教师信息,如果不存在提示输入信息
添加学生信息:
这个模块添加教师基本信息
删除学生信息:
这个模块按照序号删除教师信息,如果不存在提示信息输入
查找学生信息:
按照姓名和专业查找学生信息
返回上一级菜单: 返回主菜单
Java程序设计 大学人员信息管理系统 / 29
3.4、查找菜单
按照姓名查找:
查找模块,按照姓名查找,如果不存在则提示输入信息。按照专业查找:
查找模块,按照专业查找,如果不存在则提示输入信息。
返回上一级菜单: 返回主菜单
4.源代码及说明
4.1、listStuTea 类
用来实现学生和教师数据添加、删除、查找的方法
import java.util.*;import lkExecption.LKExecption;public class listStuTea extends StudnTeach{
final int SIZE = 50;//最大学生和教师人数
listStuTea[] st = new listStuTea[SIZE];//学生和老师对象数组 Scanner into = new Scanner(System.in);List
} public void FindStuName(){
} public void FindTeaName(){
String tpname;boolean zy = true;StudnTeach point;System.out.println(“请输入教师姓名:”);tpname = into.nextLine();for(int i = 0;i } point =list1.get(i);if(tpname.equals(point.name)){ } //break;System.out.println(“要查找的姓名存在”);{ showTea(i,point);zy = false;//标志位 } String tpname;boolean zy = true;StudnTeach point;System.out.println(“请输入学生姓名:”);tpname = into.nextLine();for(int i = 0;i } if(zy)System.out.println(“没有该学生”);if(getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);point =list2.get(i);if(tpname.equals(point.name)){ } System.out.println(“要查找的姓名存在”);showStu(i,point);zy = false;Java程序设计 大学人员信息管理系统 / 29 if(zy)System.out.println(“没有该老师”);if(getTeaNumber()==0)System.out.println(“警告!!老师数据为空请添加数据”); } { public void FindteaSpec()String tpSpec;boolean zy = true;StudnTeach point;System.out.println(“请输入教师专业:”);tpSpec = into.nextLine();for(int i = 0;i } if(zy)System.out.println(“没有该专业的老师”);if(getTeaNumber()==0)System.out.println(“警告!!老师数据为空请添加数据”);point =list1.get(i);if(tpSpec.equals(point.getteaSpeciality())){ showTea(i,point);zy = false;//标志位 } } { public void FindstuSpec()String tpStu;boolean zy = true;StudnTeach point;System.out.println(“请输入学生专业:”);tpStu = into.nextLine();for(int i = 0;i } if(zy)System.out.println(“没有选修该专业的学生”);point =list2.get(i);if(tpStu.equals(point.getstuSpeciality())){ showStu(i,point);zy = false;//标志位 } Java程序设计 大学人员信息管理系统 / 29 if(getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);} public void showStu(int n,StudnTeach point){ point=list2.get(n);System.out.println(“学生编号:”+n); System.out.println(“姓名:”+point.name+“ 性别:”+point.sex+“ 年龄:”+point.age); System.out.println(“电话:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“专业:”+point.getstuSpeciality());System.out.println(“班级:”+point.getClassname());} public void showTea(int n,StudnTeach point){ point=list1.get(n);System.out.println(“教师编号:”+n); System.out.println(“姓名:”+point.name+“ 性别:”+point.sex+“ 年龄:”+point.age); System.out.println(“电话:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“专业:”+point.getteaSpeciality());System.out.println(“工资:”+point.getPay());} public void addstu(int n)throws LKExecption { st[n] = new listStuTea();st[n].add();st[n].setClassname();st[n].setstuSpeciality();list2.add(st[n]);if(list2.size()!=0)System.out.println(“添加学生成功”); } public void addtea(int n)throws LKExecption { st[n] = new listStuTea();st[n].add();st[n].setteaSpeciality();Java程序设计 大学人员信息管理系统 / 29 } st[n].setPay();list1.add(st[n]);if(list1.size()!=0)System.out.println(“添加教师成功”); } public void delTea(){ } public void delStu(){ } System.out.println(“请输入被删的学生编号”);int k =into.nextInt();if(list2.size()<=k||k<0)System.out.println(“删除失败!编号不存在请重新输入!”);else { list2.remove(k);System.out.println(“删除成功”);} System.out.println(“请输入被删的教师编号”);int k =into.nextInt();if(list1.size()<=k||k<0)System.out.println(“删除失败!编号不存在请重新输入!”);else { list1.remove(k);System.out.println(“删除成功”);} 4.2、Menu 类 字符菜单的实现 import java.util.*;import lkExecption.LKExecption;public class Menu { Scanner into = new Scanner(System.in);int num = 0;List list=new ArrayList / 29 StudnTeach point = new listStuTea();//遍历指针 public Menu()throws LKExecption{ } public int setIn(){ } void MainMenu()throws LKExecption//主菜单 { System.out.println(“================”);System.out.println(“1.教师入口”);System.out.println(“2.学生入口”);System.out.println(“3.显示全部信息”);System.out.println(“4.退出管理”);switchMainMenu();} void FindMenu()//查找菜单 { } void MenuTea1_1()throws LKExecption//老师菜单 { System.out.println(“----------------”);System.out.println(“1.显示教师信息”);System.out.println(“2.添加教师信息”);System.out.println(“3.删除教师信息”);System.out.println(“4.查找教师信息”);System.out.println(“5.返回上一级菜单”);System.out.println(“----------------”);System.out.println(“1.按照姓名查找”);System.out.println(“2.按照专业查找”);System.out.println(“3.返回上一级菜单”);//switchMainMenu();int t;String tpNum = null;try{ } catch(NumberFormatException e){ } return t;t = new LKExecption().Num1Execption(tpNum);System.out.println(“请输入选项”);tpNum = into.nextLine();t = Integer.parseInt(tpNum);MainMenu();Java程序设计 大学人员信息管理系统 / 29 } switchMenuTea1_1();void MenuStu1_1()throws LKExecption//学生菜单 { } void switchFindStuMenu()throws LKExecption//查找学生菜单 { } void switchFindTeaMenu()throws LKExecption//查找教师菜单 { int t;t = setIn();switch(t){ case 1: int t;t = setIn();switch(t){ case 1: } point.FindStuName();FindMenu();switchFindStuMenu();break;point.FindstuSpec();FindMenu();switchFindStuMenu();break;MenuStu1_1();switchMenuStu1_1();break;System.out.println(“输入错误请重新输入”);switchFindStuMenu();System.out.println(“----------------”);System.out.println(“1.显示学生信息”);System.out.println(“2.添加学生信息”);System.out.println(“3.删除学生信息”);System.out.println(“4.查找学生信息”);System.out.println(“5.返回上一级菜单”);switchMenuStu1_1();case 2: case 3: default: Java程序设计 大学人员信息管理系统 / 29 } void switchMainMenu()throws LKExecption//主菜单 { int t;t = setIn();switch(t){ case 1: MenuTea1_1();//老师显示菜单 break;MenuStu1_1();//学生显示菜单 break;if(point.getNumber()==0)System.out.println(“警告!!数据为空请添加数据”);else{ } for(int i = 0;i point.showTea(i,point);point.showStu(i,point);for(int i = 0;i } point.FindteaSpec();FindMenu();switchFindTeaMenu();break;MenuTea1_1();switchMenuTea1_1();break;System.out.println(“输入错误请重新输入”);switchFindTeaMenu(); point.FindTeaName();FindMenu();switchFindTeaMenu();break;case 2: case 3: default: case 2: case 3: Java程序设计 大学人员信息管理系统 / 29 } } MainMenu();break;System.out.println(“欢迎再次光临!大学人员信息管理系统!”);break;System.out.println(“输入错误请重新输入”);switchMainMenu();case 4: default: void switchMenuTea1_1()throws LKExecption { System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1: if(point.getTeaNumber()==0)System.out.println(“警告!!教师数据为空请添加数据”);for(int i = 0;i FindMenu();switchFindTeaMenu();break;MainMenu();break;case 2: case 3: case 4: case 5: Java程序设计 大学人员信息管理系统 / 29 } } default: } System.out.println(“输入错误请重新输入”);switchMenuTea1_1();void switchMenuStu1_1()throws LKExecption { } System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1: } if(point.getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);for(int i = 0;i Java程序设计 大学人员信息管理系统 / 29 4.3、StudnTeach 类 继承于教师和学生接口实现它们抽象方法,且继承人类属性。 import java.util.*; import lkExecption.LKExecption;class StudnTeach extends Person implements Student,Teacher{ Scanner into = new Scanner(System.in);float pay = 0;//工资 String classname = null;//班级 String stuSpec = null;//老师专业 String teaSpec = null;//学生专业 void add()throws LKExecption { } public void addstu(int n)throws LKExecption{ } public void addtea(int n)throws LKExecption{ } public void setPay(){ String tpNum = null;try{ //add(); //setteaSpeciality();//setPay();//add(); //setClassname();//setstuSpeciality();setName();setSex();setAge();setPhone();System.out.println(“请输入地址”);address = into.nextLine(); Java程序设计 大学人员信息管理系统 / 29 } } System.out.println(“请输入工资:”);tpNum = into.nextLine();pay = Integer.parseInt(tpNum);catch(NumberFormatException e){ } pay = new LKExecption().Num1Execption(tpNum);public float getPay(){ } public void setClassname(){ } public String getClassname(){ } public void setstuSpeciality(){ } public String getstuSpeciality(){ } return stuSpec; System.out.println(“请输入专业:”);stuSpec = into.nextLine(); return classname; System.out.println(“请输入班级:”);classname = into.nextLine(); return pay;Java程序设计 大学人员信息管理系统 public void setteaSpeciality(){ System.out.println(“请输入专业:”); teaSpec = into.nextLine(); } public String getteaSpeciality(){ return teaSpec;} public void show(boolean b, int num, StudnTeach point){ } public void showStu(int num, StudnTeach point){ } public void showTea(int num, StudnTeach point){ } public int getStuNumber(){ return 0;} public int getTeaNumber(){ return 0;} public int getNumber(){ return 0;} public void delStu(){ } Java程序设计 / 29 大学人员信息管理系统 / 29 } public void FindteaSpec(){ } public void FindTeaName(){ } public void FindstuSpec(){ } public void FindStuName(){ } public void delTea(){ } 4.4、Student 类 接口、学生的抽象方法 public interface Student { } abstract void setstuSpeciality();abstract String getstuSpeciality();abstract void setClassname();abstract String getClassname(); 4.5、Teacher 类 接口、教师的抽象方法 public interface Teacher { Java程序设计 大学人员信息管理系统 / 29 } abstract void setteaSpeciality();abstract String getteaSpeciality();abstract void setPay();abstract float getPay(); 4.6、Person 类 定义人类的基本属性 import java.util.*;import lkExecption.LKExecption;public class Person { Scanner into = new Scanner(System.in);String name;int phone;String address;String sex;int age;public void setName(){ } public void setSex()throws LKExecption { } public void setAge(){ String tpAge = null;try{ System.out.println(“请输入性别:”);sex = into.nextLine();if(sex.equals(“man”)||sex.equals(“woman”)){} else } catch(LKExecption lk){ } sex = new LKExecption().sexExecption(sex);throw new LKExecption();System.out.println(“请输入姓名:”);name = into.nextLine();Java程序设计 大学人员信息管理系统 / 29 } } try{ } catch(NumberFormatException e){ } age = new LKExecption().NumExecption(tpAge);System.out.println(“请输入年龄:”);tpAge = into.nextLine();age = Integer.parseInt(tpAge);public void setPhone(){ } String tpNum = null;try{ } catch(NumberFormatException e){ } phone = new LKExecption().Num1Execption(tpNum);System.out.println(“请输入电话号码:”);tpNum = into.nextLine();phone = Integer.parseInt(tpNum); 4.7、lkExecption类 自定义异常类 package lkExecption;import java.util.Scanner;public class LKExecption extends Exception { Scanner into = new Scanner(System.in);public String sexExecption(String mg){ String str;boolean pd = true;do{ System.out.println(mg+“ 不是正确的性别,正确的性别为 man 或者 woman”);str = into.next();Java程序设计 大学人员信息管理系统 / 29 } //System.out.println(mg+“ 验证”); if(str.equals(“man”)||str.equals(“woman”)){ } }while(pd);return str;pd = false;public int NumExecption(String mg){ String num = null;int tpNum = 0;boolean pd = true;System.out.println(mg+“ 请正确的数字或者不在范围内!请重新输入!”);do{ try{ } catch(NumberFormatException e){ System.out.println(num+“ 请正确的数字或者不在范围内!请重新输num = into.nextLine();tpNum = Integer.parseInt(num);if(tpNum>120||tpNum<0)//范围判断 throw new NumberFormatException();else pd = false;入!”); } } public String charExecption(String mg){ final String[] str={“null”};//这里指定 规定字段 boolean pd = true;do{ System.out.println(mg+“ 不是正确字段,请输入指定的字段”);mg = into.next();for(int i =0;i / 29 } } } }while(pd);return mg;public int Num1Execption(String mg){ } String num;int tpNum = 0;System.out.println(mg+“ 不是数字!请输入数字!”);do{ try{ } catch(NumberFormatException e){ System.out.println(mg+“ 不是数字!请输入数字!”);} num = into.nextLine();tpNum = Integer.parseInt(num);break;}while(true);return tpNum;4.8、MainStuTea类 主函数调用 import lkExecption.LKExecption;public class MainStuTea { } public static void main(String[] args)throws LKExecption { Menu lk = new Menu();} Java程序设计 大学人员信息管理系统 / 29 5.操作方法和测试结果 5.1.1、教师信息显示 选择一进入教师信息入口 选择一进入教师信息查看 因为我们没有添加教师信息,所以他要求我们添加教师信息 5.1.2、教师信息添加 选择二进入教师信息添加 Java程序设计 大学人员信息管理系统 / 29 教师信息添加成功,如果不是指定字段输入,出现异常则重新输入 如下为添加的信息输入显示 5.1.3、教师信息删除 Java程序设计 大学人员信息管理系统 / 29 5.1.4、教师信息查找 专业查找 现在添加三个教师信息,如下显示 首先使用专业查找,我们查找computer专业的 Java程序设计 大学人员信息管理系统 / 29 查找其他math专业 查找不存在的专业 姓名查找 再添加一个同名的教师 查找lisi Java程序设计 大学人员信息管理系统 / 29 5.2、学生菜单实现 学生信息采取同样测试 6.设计体会 这个课程设计可以的设计心得,可谓十分波折。全部的源代码都出自自己,其中的list排列我们还没有学习。在这里要感谢google感谢baidu。没有他们就没有今天的代码。当然网上只有相似的课题没有相同的代码,list排列经过自己一小时的摸索可以了解了部分的运用,首先写了一个test类来测试这个用法 import java.util.ArrayList;import java.util.LinkedList;import java.util.Iterator;import java.util.List;import java.util.Scanner; public class test { public static void main(String[] args){ System.out.println(“开始:”);String a = “A”, b = “B”, c = “C”, d = “D”, e = “E”;List / 29 list.set(1, b);// 将索引位置为1的对象e修改为对象b list.add(2, c);// 将对象c添加到索引位置为2的位置 list.add(e);list.remove(1);Iterator System.out.println(“结束!”);} } 再想了一下把它添加进了listStuTea对象,全都的代码完成用了一天的时间,在原来想起写500多行的代码几乎是不可能的,但是在这个课程设计中实现了。这个课程设计真的使自己学到了很多的东西。在接口的使用还不是很好的和实际模型很多的结合起来,这是锻炼较少的原因,前期的分析也幼稚的表现了自己在这方面的不足,在层次结构上浪费了较多的时间。总之在这方面的锻炼还是比较少,我想不管是在以后布置下来的课程设计才去编写代码,这是不可行的,得在平时多多锻炼。 Java程序设计 沈阳理工大学课程设计 沈阳理工大学课程设计 摘要 Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。本设计可以帮助同学掌握和应运所学的面向对象程序设计学生学籍信息管理系统的编程内容,培养同学们建立对象模型,处理对象和对象集关系和对图形用回界面设计编程以及文件和流的编程问题的能力,训练同学为解决实际问题而创建较完整的简单面向对象和管理系统编程应运程序的独立编程能力.本设计是一个常见的学生学籍管理系统应运程序.系统实现的功能: 界面操作实现学生学籍信息的添加、删除、查询、修改功能,在文本文件中的的信息的动态处理。 关键词: 学生学籍管理系统;图形用户界面设计;文件和流;java I 沈阳理工大学课程设计 目 录 一、课程设计的目的与意义..........................................................................................1 1.目的..........................................................1 2.意义..........................................................1 二、需求分析..........................................................................................................................1 1.学生学籍管理系统主界面模块................................1 2.录入学生基本信息模块......................................1 3.修改学生基本信息模板......................................1 3.查询学生基本信息模板......................................1 4.删除学生基本信息模板......................................1 三、分案设计..........................................................................................................................3 1.定义四个Panel面板......................................3 四、方案的实施......................................................................................................3 五、心得体会.........................................................................................................15 六、参考文献.........................................................................................................16 II 沈阳理工大学课程设计 一、课程设计的目的与意义 目的:深入理解java语言的语法规则及其优势,掌握类与方法的构造方法,掌 握基于java的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。 意义:熟练运用java语言、基本构造方法和算法的基础知识,独立编制一个具有中等难度的、解决实际应用问题的应用程序。通过题意分析、选择类结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计报告等环节完成软件设计的全过程,不断地完善程序以提高程序的性能。 二、需求分析 该学生学籍管理系统的所有功能均在一个Frame窗体中实现。1.学生学籍管理系统主界面模块: 采用Frame窗体来设置欢迎界面包括背景图片及字幕(可以设计成滚动字幕效果),左上方的菜单条设计成下拉式。包括“录入学生基本信息”、“修改学生基本信息”、“删除学生基本信息”、“查询学生基本信息”和“退出系统”五项菜单项。2.录入学生基本信息模块: 采用Panel面板来设置该部分内容信息并采用方位布局(边缘布局)和Box轻量级组件来设置“学号”、“姓名”、“性别”、“专业”、“年级”、“出生”,并在该面板中添加了“录入”和“重置”两个按钮进行监听,最后将该面板加入到Frame窗体中去。3.修改学生基本信息模板: 采用Panel面板来设置该部分内容信息,同样是采用方位布局及Box组件来设置相关信息,并在学号旁设置了“开始修改”按钮。在面板南部方位添加了“确定修改”和“重置”两按钮进行监听。4.查询学生基本信息模板: 采用Panel面板来设置该部分内容信息,并将该面板加入到主窗体中去,采用边缘布局进行方位设置,在上方加入“查询”按钮进行监听。 5.删除学生基本信息模板: 也是采用Panel面板进行设置相关内容,并用边缘布局进行布局,并在上方添加“确定”按钮,在下方添加“确定删除”按钮实现监听。 三、模块设计 定义四个Panel面板 1.定义Reg(录入学生基本信息)面板 采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“录入学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用 沈阳理工大学课程设计 createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后在面板的South方位设置“录入”与“重置”两按钮。最后实现与数据库的桥接,能够将从文本框获得的信息存储到数据库中去。 2.定义Search(查询学生基本信息)面板 该部分同样采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“查询学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一个“查询”按钮。并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去。 3.定义Modify(修改学生基本信息)面板 该部分同样也是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,并将修改后的信息存储到数据库中去。 4.定义Delete(删除学生基本信息)面板 该部分还是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一“确定”按钮实现监听。并将其所有文本框和标签加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间 沈阳理工大学课程设计 具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量,还在本面板的South方位添加“确定删除”按钮。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,删除后同时在数据库中也删除该信息并保存该操作。 四、方案的实施 1、学生信息管理系统的登录 学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin 密码:admin 学生登录系统的登录名为学号,密码也为学号(如:10001),登录后可以修改密码。 登录界面 登录系统后的界面 沈阳理工大学课程设计 注册学生信息界面 沈阳理工大学课程设计 修改学生信息界面 查询学生信息界面 沈阳理工大学课程设计 删除学生信息界面 沈阳理工大学课程设计 程序类的设计 DeleteListener.java:删除监听 JTMouseListener.java:树状视图 LoginListener.java:登陆监听 ResetListener.java:重置监听 SaveListener.java:保存监听 SearchAllListener.java:搜索所有学生信息 SearchDListener.java:搜索一个学生信息 SearchListener.java:搜索一个学生信息 SearchRListener.java:搜索一个学生信息 SubmitListener.java:提交信息监听 系统的使用说明及环境配置 学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名:admin 密码:admin 登录系统后可以进行相应的操作。学生通过以自己的学号(如10001)作为用户名和密码登录系统后进行相应的学生权限范围内的操作。数据库:Mysql 连接数据库的登录名:root 密码:zfz 代码: DeleteListener.java:删除监听 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton;import javax.swing.JOptionPane; import manager.dao.JdbcIcpCURD;import manager.ui.conponent.DeletePanel; public class DeleteListener implements ActionListener { public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource(); DeletePanel dp=(DeletePanel)jb.getParent(); String xuehao=dp.xuehaoFd.getText(); String msg= “你确定要删除学号为”+xuehao+“的学生信息么?”; int i=JOptionPane.showConfirmDialog(dp,msg,“提”,JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE); if(i==0){ JdbcIcpCURD curd=new JdbcIcpCURD(); boolean b=curd.deleteByXuehao(Integer.parseInt(xuehao)); if(b){ dp.errorLb.setText(“删除成功”); } else{ dp.errorLb.setText(“删除失败”); } } return;} 示信息 沈阳理工大学课程设计 } JTMouseListener.java:树状视图 package manager.ui.listener; import java.awt.CardLayout;import java.awt.Component;import java.awt.event.MouseEvent;import java.awt.event.MouseListener; import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath; import manager.ui.conponent.MainFrame;import manager.ui.conponent.PLeft; public class JTMouseListener implements MouseListener { @Override public void mouseClicked(MouseEvent e){ // TODO Auto-generated method stub JTree jt=(JTree)e.getSource();PLeft p=(PLeft)jt.getParent();MainFrame f=(MainFrame)p.getParent().getParent().getParent().getParent();TreePath path = jt.getPathForLocation(e.getX(), e.getY());if(path==null){ return;} DefaultMutableTreeNode node =(DefaultMutableTreeNode)path.getLastPathComponent();String s=node.toString();CardLayout cl=f.getPright().getLayout();if(s.equals(“注册学生”)){ cl.show(f.getPright(), “register”);} if(s.equals(“修改学生信息”)){ cl.show(f.getPright(), “modify”);} if(s.equals(“查询学生信息”)){ cl.show(f.getPright(), “search”);} if(s.equals(“删除学生信息”)){ cl.show(f.getPright(), “delete”);} if(s.equals(“学生信息管理”)){ cl.show(f.getPright(), “welcom”);} } @Override public void mouseEntered(MouseEvent e){ 沈阳理工大学课程设计 } } @Override public void mouseExited(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e){ // TODO Auto-generated method stub } // TODO Auto-generated method stub LoginListener.java:登陆监听 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton;import javax.swing.JOptionPane; import manager.ui.conponent.Login;import manager.ui.conponent.MainFrame; public class LoginListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton bt=(JButton)e.getSource(); Login frame=(Login)bt.getParent().getParent().getParent().getParent(); String username=frame.usernameTa.getText().trim(); String password=frame.passwordTa.getText().trim(); if(username!=null||password!=null){ if(“admin”.equals(username)&&“123”.equals(password)){ new MainFrame().setVisible(true); frame.dispose(); } else{ frame.messageLb.setText(“用户名或密码错误”); } } 沈阳理工大学课程设计 else{ frame.messageLb.setText(“用户名或密码错误”); } } } ResetListener.java:重置监听 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton; import manager.ui.conponent.RegPanel; public class ResetListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();jp.xuehaoFd.setText(“");jp.nameFd.setText(”“);jp.addressFd.setText(”“);} } SaveListener.java:保存监听 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel; public class SaveListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource(); ModifyPanel mp=(ModifyPanel)jb.getParent(); String xuehao=mp.xuehaoTf.getText().trim(); String name=mp.nameTf.getText().trim(); String gender=mp.genderTf.getText().trim(); String address=mp.addressTf.getText().trim(); String oldXuehao=mp.xuehaoFd.getText().trim(); if(oldXuehao==null||xuehao.equals(”“)){ 沈阳理工大学课程设计 } } oldXuehao=xuehao;} if(xuehao==null||xuehao.equals(”“)){ mp.errorLb.setText(”请输入修改后的学号...“);return;} if(name==null||name.equals(”“)){ mp.errorLb.setText(”请输入修改后的姓名...“);return;} if(gender==null||gender.equals(”“)){ mp.errorLb.setText(”请输入修改后的性别...“);return;} if(address==null||address.equals(”“)){ mp.errorLb.setText(”请输入修改后的地址...“);return;} Student stu=new Student();stu.setXuehao(Integer.parseInt(xuehao));stu.setName(name);stu.setGender(gender);stu.setAddress(address);int old=Integer.parseInt(oldXuehao);JdbcIcpCURD curd=new JdbcIcpCURD();if(curd.modify(stu, old)){ mp.errorLb.setText(”修改成功...“);} SearchAllListener.java:搜索所有学生信息 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector; import javax.swing.JButton;import javax.swing.JTextArea; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.SearchPanel; public class SearchAllListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource(); SearchPanel sp=(SearchPanel)jb.getParent(); 沈阳理工大学课程设计 } } JTextArea jt=sp.resultTa;JdbcIcpCURD curd=new JdbcIcpCURD();Vector import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.DeletePanel;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel; public class SearchDListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource(); DeletePanel dp=(DeletePanel)jb.getParent(); JdbcIcpCURD curd=new JdbcIcpCURD(); String s=dp.xuehaoFd.getText().trim(); Student stu=curd.searchByXuehao(Integer.parseInt(s)); if(stu==null){ dp.errorLb.setText(”没有查询到此学生“); return; } dp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString()); dp.nameTf.setText(stu.getName()); dp.genderTf.setText(stu.getGender()); dp.addressTf.setText(stu.getAddress()); 沈阳理工大学课程设计 } } SearchListener.java:搜索一个学生信息 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel; public class SearchListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource(); ModifyPanel mp=(ModifyPanel)jb.getParent(); String s=mp.xuehaoFd.getText().trim(); if(s==null||s.equals(”“)){ mp.errorLb.setText(”请输入学号..“); return; } JdbcIcpCURD curd=new JdbcIcpCURD(); Student stu=curd.searchByXuehao(Integer.parseInt(s)); mp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString()); mp.nameTf.setText(stu.getName()); mp.genderTf.setText(stu.getGender()); mp.addressTf.setText(stu.getAddress());} } SearchRListener.java:搜索一个学生信息 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel; public class SearchRListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ 沈阳理工大学课程设计 } } JButton jb=(JButton)e.getSource();SearchPanel sp=(SearchPanel)jb.getParent();JdbcIcpCURD curd=new JdbcIcpCURD();String s=sp.xuehaoTf.getText().trim();Student stu=curd.searchByXuehao(Integer.parseInt(s));if(stu==null){ return;} StringBuilder sb=new StringBuilder();sb.append(” “);sb.append(stu.getXuehao());sb.append(”t“);sb.append(stu.getName());sb.append(”t“);sb.append(stu.getGender());sb.append(”t“);sb.append(stu.getAddress());sb.append(”t“);sb.append(stu.getRegTime().toString());sb.append(”n“);sp.resultTa.setText(sb.toString()); SubmitListener.java:提交信息监听 package manager.ui.listener; import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date; import javax.swing.JButton;import javax.swing.JLabel; import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.RegPanel; public class SubmitListener implements ActionListener { @Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();String xuehao=jp.xuehaoFd.getText();String name=jp.nameFd.getText();String address=jp.addressFd.getText();String gender=”“;boolean b1=jp.maleRB.isSelected();boolean b2=jp.femaleRB.isSelected(); 沈阳理工大学课程设计 if(b1){ } JLabel errorLabel=jp.errorLabel;if(xuehao==null||xuehao.trim().equals(”“)){ errorLabel.setText(”没有填写学号..“);return;} if(name==null||name.trim().equals(”“)){ errorLabel.setText(”没有填写姓名..“);return;} if(address==null|address.trim().equals(”“)){ errorLabel.setText(”没有填写地址..“);return;} if(!(b1||b2)){ errorLabel.setText(”请选择性别...“);return;} if(b1){ gender=”男“;} if(b2){ gender=”女“;} Student stu=new Student(Integer.parseInt(xuehao),name,gender,new Date(System.currentTimeMillis()),address);JdbcIcpCURD curd=new JdbcIcpCURD();boolean b=curd.insert(stu);if(b){ errorLabel.setText(”注册成功!“);jp.xuehaoFd.setText(”“);jp.nameFd.setText(”“);jp.addressFd.setText(”");} } } 五、心得体会 我们刚学习java这门课程,对专业的java编程知识并未有深入的学习和探索。但是当我们查找过一些书籍资料后,在不断努力下我们还是把课程设计题目顺利的完成了。通过此次学生学籍管理系统的设计,使我们对java编程语言有了更深层次的了解。不过在编写的过程中也存在一些问题,例如在选择适宜的方法实现修改和删除功能的时候,由于对 沈阳理工大学课程设计 数组的理解还不能满足当前的编程需要,并未选择更加简单的数组来处理数据,以至于当删除指定内容后在文本文件中留有空行,从而导致了在接下来的查询异常和再次修改和删除功能无法正常实现,还需人工删除掉文本文件中的空行以保证程序的正常运行。我们也可以选用其他的更加方便的处理方法使得程序更加优化和简洁。 “书山有路勤为径,学海无涯苦作舟”,我们现今所学的知识还远远不够,在今后的学习过程中我们要进一步学习java的更多的知识,此次课程设计不仅锻炼了我们独立思考和团队合作的能力,而且提高了我们动手的能力,我会继续努力学习此课程的。 六、参考文献 郑阿奇 编著《Java实用教程(第二版)》电子工业出版社 2 良葛格 编著《Java学习笔记》清华大学出版 题目:职工信息系统 功能包括: 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话) 根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表) 增加新职工信息(由人事秘书完成,需要身份确认) 删除职工信息(由人事秘书完成,需要身份确认) 修改职工工资(由财务处人员完成,需要身份确认) 要求所有信息能够存储在文件中,并具有良好的用户界面 #include //ct用来储存文件中数据组数,Admin用来储存登陆后该用户的权限,//na用来储存登录所输的编号,方便主菜单内使用其显示当前用户 void hline(int);inline void eatline(){while(cin.get()!='n')continue;} class staff {/*职工编号,姓名,性别,年龄,职务,电话,工资和家庭成员信息*/ public: };void staff::printf() //输出的选择,判断其职务,选择调用哪个输出 { if(Admin==1||Admin==2)printf1();else int num;char name[LIM],sex[3];int age;char job[10],phone[15];double wages;char home[20];int admin;void printf();void printf1();void printf2();void printf3(); } if(Admin==3)printf2();else printf3();void staff::printf1() //领导及人事秘书能见的输出 { } void staff::printf2() //财务人员能见的输出 { } void staff::printf3() //普通员工能见的输出 { cout< switch(n){ case 1:{cout< < };break;case 2:{cout< };break;case 3:{cout< } } < };break;void menu() //主菜单 { cout<<“t╔╤╤╤╤╤╤职工编号: ”< //二级菜单 { cout<<“t╔╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤┐”< //登陆的实现部分 { cout<<“t┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓”< int w=0;while(!(cin>>na)){ cin.clear();while(cin.get()!='n')continue;cout<<“输入有误,编号为一串数字,请重新输入:n”; for(int i=1;i<=ct;i++)} fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatline();staff stu; { streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){ cerr << “■查找出错!程序将退出!■n”;system(“pause”); exit(EXIT_FAILURE); } find.read((char *)&stu, sizeof stu);if(stu.num==na){ } w=1;Admin=stu.admin;} if(w==0){cout<<“t┣╋**登录失败!未找到相应的信息!程序将退出**╋┫”< } int stu_num() //计算数据组数 { } staff stu;ifstream stunum;stunum.open(file,ios_base::in|ios_base::binary);if(stunum.is_open()){ } stunum.close();return ct;stunum.seekg(0);while(stunum.read((char *)&stu,sizeof stu))ct++;system(“pause”);system(“cls”);void setadmin(staff &stu,char jobs[10]) //增加职工时根据职务设置权限 { char job1[10]=“总经理”;char job2[10]=“副总经理”;char job3[10]=“人事秘书”;char job4[10]=“财务人员”; } void add() // 输入数据的函数,增加职工 { if(Admin==2){ staff stu;if((!strcmp(stu.job,job1))||(!strcmp(stu.job,job2)))stu.admin=1;else if(!strcmp(stu.job,job3))stu.admin=2;else if(!strcmp(stu.job,job4))stu.admin=3; ofstream fout(file, ios_base::out | ios_base::app | ios_base::binary); if(!fout.is_open()) { cerr << “不能打开 ” << file << “ 文件:n”; exit(EXIT_FAILURE); } cout << “★增加职员信息★请输入职工姓名:(按Enter键退出输入!):n”;eatline(); cin.get(stu.name, LIM); while(stu.name[0]!= ' ') { cout << “★增加职员信息★请输入职工编号:”; cin>>stu.num;cout << “★增加职员信息★请输入职工性别:”;eatline();cin.get(stu.sex, 3);cout << “★增加职员信息★请输入职工年龄:”;cin>>stu.age; cout << “★增加职员信息★请输入职工职务:”;eatline();cin.get(stu.job, 10); cout << “★增加职员信息★请输入职工电话:”;eatline(); cin.get(stu.phone, 15); cout << “★增加职员信息★请输入职工工资:”;cin>>stu.wages; cout << “★增加职员信息★请输入职工家庭信息:(按Enter键退出输入!):n”; eatline(); cin.get(stu.home, 20);setadmin(stu,stu.job); fout.write((char *)&stu, sizeof stu);cout << “■增加职员信息■请输入职工姓名:(按Enter键退出输入!):n”; eatline();cin.get(stu.name,LIM); } fout.close(); } else cout<<“******************无权限,请与人事部秘书联系*******************************”< void output() //输出全部职工信息的函数 { staff stu; } ifstream find;find.open(file,ios_base::in|ios_base::binary);hline(1);while(find.read((char *)&stu,sizeof stu)){ cout< < //修改数据函数 { if(Admin==3){ fstream change; int w=0;staff stu;streampos place; change.open(file,ios_base::in|ios_base::out|ios_base::binary);if(change.eof())change.clear(); //清除EOF cout<<“请输入你要修改的职员编号:”< place =i* sizeof stu;change.seekg(place);if(change.fail()){ cerr << “■查找出错!程序将退出!■n”;system(“pause”); exit(EXIT_FAILURE); } change.read((char *)&stu, sizeof stu);if(stu.num==rec){ } w=1; cout << “你选择的是:n”;stu.printf2();break; } if(w==1){ cout << “请输入你要修改职员的工资: ”;while(cin >> stu.wages){ if(stu.wages<0||stu.wages>100000) { cout<<“■输入的工资错误!请重新输入:■ cin.clear(); while(cin.get()!='n'); continue; } break;} change.seekp(place); // 回到查找到的地点 change.write((char *)&stu, sizeof stu)<< flush;if(change.fail()){ cerr << ”■--查找失败!程序将退出--■n“;system(”pause“); n”; } exit(EXIT_FAILURE);} change.close();cout<<“★---修改成功!---★”< void del() //删除指定编号的职工信息 { if(Admin==2){ while(1){ eatline();int delnum;cout<<“请输入你要删除的职工的编号:n”; cin>>delnum;fstream in;in.open(“staff.dat”,ios_base::in|ios_base::binary);if(!in){ cout<<“打开失败”;return;} fstream temp;temp.open(“temp.dat”,ios_base::out|ios_base::binary);staff stu;int q;in.read((char*)&stu,sizeof(stu));while(!in.eof())//将文件内容修改后临时寸到另一个文件中 { } in.close();temp.close();//修改完成,将原文件清空,并将临时文件内容q=0;if(stu.num==delnum){ } if(q==0)temp.write((char*)&stu,sizeof(stu));in.read((char*)&stu,sizeof(stu));q=1;复制回原文件 中 } { out.write((char*)&stu,sizeof(stu));temp.read((char*)&stu,sizeof(stu));out.open(“staff.dat”,ios_base::out|ios_base::trunc|ios_base::binary);temp.read((char*)&stu,sizeof(stu));while(!temp.eof())//将文件内容修改后临时寸到另一个文件 temp.open(“temp.dat”,ios_base::in|ios_base::binary);if(!temp){ cout<<“打开失败”;return;} ofstream out;}//完成复制 out.close();temp.close(); cout<<“删除成功!t是否继续删除?y/nn”;char x;cin>>x;if(!(x=='y'||x=='Y'))break;} else cout<<“****************无权限,请与人事部秘书联系*****************************”< void find() //查找职工的实现部分 { while(1){ menu2();//eatline();int a;int w=0;cin>>a;int na;char sna[LIM];fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatline();staff stu;switch(a){ case 1:cout<<“请输入职工编号:”< case 2:cout<<“请输入职工姓名:”< if(Admin==1||Admin==2)output();else cout<<“**************无权限,请与单位领导或人事部秘书联系********************”< }break;default:{ } for(int i=1;i<=ct;i++){ streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){ cout<<“■选择执行的操作错误!■n”;cin.clear();while(cin.get()!='n');continue;} cerr << “■查找出错!程序将退出!■n”;system(“pause”); exit(EXIT_FAILURE);} find.read((char *)&stu, sizeof stu);switch(a){ case 1:if(stu.num==na){ w=1; stu.printf();};break;case 2:if(!strcmp(stu.name,sna)) { w=1; stu.printf(); };break;case 3:break;default:{ cout<<“■选择执行的操作错误!■ cin.clear(); while(cin.get()!='n');continue; } } } n”; } if(w==0)cout<<“■未找到此人!■”< 职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信 息简表) 增加新职工信息(由人事秘书完成,需要身份确认) 删除职工信息(由人事秘书完成,需要身份确认) 修改职工工资(由财务处人员完成,需要身份确认) 要求所有信息能够存储在文件中,并具有良好的用户界面 */ int main(){ system(“color 6F”);ifstream fin;fin.open(file,ios_base::in|ios_base::binary);if(!fin.is_open()){ staff st[5]={ {10001,“张三”,“男”,35,“总经理”,“***”,20000,“父母,弟弟,姐姐”,1},{10002,“李四”,“男”,32,“副总经理”,“***”,12000,“父母,兄长”,1},{10003,“ 王 婷 ”,“ 女 ”,25,“ 人 事 秘 书”,“***”,10000,“---略---”,2},{10004,“陈六”,“女”,25,“财务人员”,“***”,8000,“---略---”,3},{10005,“Obama”,“ 男 ”,23,“ 普 通 职 工”,“***5”,7000,“---略---”,0}};ofstream fout(file,ios_base::out|ios_base::binary); for(int i=0;i<5;i++)fout.write((char *)&st[i],sizeof st[i]);fout.close();} fin.close();stu_num();loading();while(1){ menu();cout<<“请输入你要选择的操作: char n;cin>>n;switch(n){ case '1':eatline();find();break;case '2':add();break;case '3':del();break;case '4':change();break;case '5':exit(EXIT_FAILURE); n ”; default:{ cout<<“■选择执行的操作错误!■n”; cin.clear(); while(cin.get()!='n'); continue;} 清除已经输入的内容,程序选择 } system(“pause”); system(“cls”); cin.clear();} return 0;} //如果选择错误,cin.clear等语句第四篇:大学JAVA课程设计——学生信息管理系统
第五篇:【课程设计】职工信息管理系统