一:需求分析
1.功能需求
1).能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。
2).能够实现对学生基本资料的修改。
3).根据学号对学生资料进行查询。
4).能够删除某些学生的资料。
二:总体设计
本班级管理系统共有6个java源文件。
类之间的主要关系如下图所示:
各主类的主要作用如下:
1).StudentManager.java
该java文件的类负责创建班级学生管理系统的主窗口。该类包含main方法,程序从该类开始执行。
2).StudentStituation.java
该文件的类负责创建班级学生管理系统的学生信息录入界面。
3).ModifySituation.java
该文件的类负责创建班级学生管理系统的学生基本信息修改界面。
4).Inquest.java
该文件的类负责创建班级学生管理系统的学生基本信息查询界面。
5).Delete.java
该文件的类负责创建班级学生管理系统的学生信息删除界面。
6).Student.java
负责创建存放学生信息的对象。
三:详细设计
- 主类StudentManager.java
1).成员变量
主要成员变量
成员变量描述 | 变量类型 | 变量名称 |
基本信息录入界面 基本信息修改界面 基本信息查询界面 基本信息删除界面 菜单选项 存基本信息的散列表 存放散列表的文件 | StudentSituation ModifySituation Inquest Delete JMenuItem Hashtable File | 基本信息录入 基本信息修改 基本信息查询 基本信息删除 录入,修改,查询,删除 基本信息 file |
2).方法
主要方法
名称 | 功能 | 备注 |
StudentManager actionPerformed main | 创建程序主窗口 处理ActionEvent事件 程序开始运行 | 构造方法 接口方法 |
3).代码
StudentManager.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.Hashtable;
public class StudentManager extends JFrame implements ActionListener
{
StudentSituation 基本信息录入=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;
JPanel pCenter;
public StudentManager()
{
setTitle("欢迎进入班级管理系统");
录入=new JMenuItem("录入学生基本信息");
修改=new JMenuItem("修改学生基本信息");
查询=new JMenuItem("查询学生基本信息");
删除=new JMenuItem("删除学生基本信息");
退出=new JMenuItem("退出本系统");
退出.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
bar=new JMenuBar();
fileMenu=new JMenu("菜单选项");
fileMenu.add(录入);
fileMenu.addSeparator();
fileMenu.add(修改);
fileMenu.addSeparator();
fileMenu.add(查询);
fileMenu.addSeparator();
fileMenu.add(删除);
fileMenu.addSeparator();
fileMenu.addSeparator();
fileMenu.add(退出);
bar.add(fileMenu);
setJMenuBar(bar);
label=new JLabel("欢迎进入班级管理系统!",label.CENTER);
label.setFont(new Font("隶书",Font.BOLD,30));
label.setForeground(Color.blue);
基本信息=new Hashtable();
录入.addActionListener(this);
修改.addActionListener(this);
查询.addActionListener(this);
删除.addActionListener(this);
card=new CardLayout();
con=getContentPane();
pCenter=new JPanel();
pCenter.setLayout(card);
file=new File("学生基本信息.txt");
if(!file.exists())
{
try{
FileOutputStream out=new FileOutputStream(file);
ObjectOutputStreamobjectOut=new ObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOException e)
{
}
}
基本信息录入=new StudentSituation(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 StudentManager();
}
}
2.录入界面
1).成员变量
主要成员变量属性
描述 | 变量类型 | 变量名称 |
存放“学生”对象的散列表 输入学生基本信息的文本 存放学生信息的对象 | Hashtable JTextField Student | 基本信息表 学号,姓名,所学专业,家庭住址,出生 学生 |
2).方法
主要方法
名称 | 功能 | 备注 |
StudentSituation actionPerformed | 创建学生信息录入界面 处理ActionEvent事件 | 构造方法 接口方法 |
3).代码
StudentSituation.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class StudentSituation extends JPanel implements ActionListener
{
Hashtable 基本信息表=null;
JTextField 学号,姓名,所学专业,家庭住址,出生;
JRadioButton 男,女;
Student 学生=null;
ButtonGroup group=null;
JButton 录入,重置;
FileInputStream inOne=null;
ObjectInputStream inTwo=null;
FileOutputStream outOne=null;
ObjectOutputStream outTwo=null;
File file=null;
public StudentSituation(File file)
{
this.file=file;
学号=new JTextField(10);
姓名=new JTextField(10);
所学专业=new JTextField(10);
家庭住址=new JTextField(10);
出生=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 box5=Box.createHorizontalBox();
box5.add(new JLabel("家庭住址:",JLabel.CENTER));
box5.add(家庭住址);
Box box6=Box.createHorizontalBox();
box6.add(new JLabel("出生:",JLabel.CENTER));
box6.add(出生);
Box boxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanel pCenter=new JPanel();
pCenter.add(boxH);
setLayout(new BorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanel pSouth=new JPanel();
pSouth.add(录入);
pSouth.add(重置);
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="基本信息将被录入!";
intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION)
{
String name=姓名.getText();
String discipling=所学专业.getText();
String grade=家庭住址.getText();
String borth=出生.getText();
String sex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
学生=new Student();
学生.setNumber(number);
学生.setName(name);
学生.setDiscipling(discipling);
学生.setGrade(grade);
学生.setBorth(borth);
学生.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);
家庭住址.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);
所学专业.setText(null);
家庭住址.setText(null);
出生.setText(null);
}
}
}
3.查询界面
1).成员变量
主要成员变量属性
描述 | 变量类型 | 变量名称 |
存放“学生”对象的散表 显示学生基本信息的文本 | Hashtable JTextField | 基本信息表 学号,姓名,所学专业,家庭住址,出生 |
2).方法
主要方法
名称 | 功能 | 备注 |
Inquest actionPerformed | 创建查询界面 处理ActionEvent事件 | 构造方法 接口方法 |
3).代码
Inquest.java
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 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 box6=Box.createHorizontalBox();
box6.add(new JLabel("出生:",JLabel.CENTER));
box6.add(出生);
Box boxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanel pCenter=new JPanel();
pCenter.add(boxH);
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);
出生.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))
{
Student stu=(Student)基本信息表.get(number);
姓名.setText(stu.getName());
所学专业.setText(stu.getDisciping());
家庭住址.setText(stu.getGrade());
出生.setText(stu.getBorth());
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);
}
}
}
}
3.修改界面
1).成员变量
主要成员变量
描述 | 变量类型 | 变量名称 |
存放“学生”对象的散列表 输入学生基本信息的文本条 | Hashtabel JTextField | 基本信息表 学号,姓名,所学专业,家庭住址,出生 |
2).方法
主要方法
名称 | 功能 | 备注 |
ModifySituation actionPerform | 创建学生信息修改界面 处理ActionEvent事件 | 构造方法 接口方法 |
3).代码
ModifySituation.java
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 学号,姓名,所学专业,家庭住址,出生;
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 JTextField(10);
家庭住址=new JTextField(10);
出生=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 box5=Box.createHorizontalBox();
box5.add(new JLabel("(新)家庭住址:",JLabel.CENTER));
box5.add(家庭住址);
Box box6=Box.createHorizontalBox();
box6.add(new JLabel("(新)出生:",JLabel.CENTER));
box6.add(出生);
Box boxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanel pCenter=new JPanel();
pCenter.add(boxH);
setLayout(new BorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanel pSouth=new JPanel();
pSouth.add(录入修改);
pSouth.add(重置);
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);
Student stu=(Student)基本信息表.get(number);
姓名.setText(stu.getName());
所学专业.setText(stu.getDisciping());
家庭住址.setText(stu.getGrade());
出生.setText(stu.getBorth());
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);
所学专业.setText(null);
家庭住址.setText(null);
出生.setText(null);
}
}
else
{
录入修改.setEnabled(false);
String warning="必须要输入学号!";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
学号.setText(null);
姓名.setText(null);
所学专业.setText(null);
家庭住址.setText(null);
出生.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=所学专业.getText();
String grade=家庭住址.getText();
String borth=出生.getText();
String sex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
Student 学生=new Student();
学生.setNumber(number);
学生.setName(name);
学生.setDiscipling(discipling);
学生.setGrade(grade);
学生.setBorth(borth);
学生.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);
家庭住址.setText(null);
出生.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);
所学专业.setText(null);
家庭住址.setText(null);
出生.setText(null);
}
}
}
4.删除界面
1).成员变量
主要成员变量
描述 | 变量类型 | 变量名称 |
存放“学生”对象的散列表 显示学生基本信息的文本条 | Hashtable JTextField | 基本信息表 学号,姓名,所学专业,家庭住址,出生 |
2).方法
主要方法
名称 | 功能 | 备注 |
Delete actionPerformed | 创建学生信息删除界面 处理ActionEvent | 构造方法 接口方法 |
3).代码
Delete.java
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 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 box6=Box.createHorizontalBox();
box6.add(new JLabel("出生:",JLabel.CENTER));
box6.add(出生);
Box boxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanel pCenter=new JPanel();
pCenter.add(boxH);
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))
{
Student stu=(Student)基本信息表.get(number);
姓名.setText(stu.getName());
所学专业.setText(stu.getDisciping());
家庭住址.setText(stu.getGrade());
出生.setText(stu.getBorth());
if(stu.getSex().equals("男"))
{
男.setSelected(true);
}
else
{
女.setSelected(true);
}
String m="确定要删除该学号及全部信息吗?";
int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTIONJOptionPane.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);
出生.setText(null);
}
catch(Exception ee)
{
System.out.println(ee);
}
}
else if(ok==JOptionPane.NO_OPTION)
{
学号.setText(null);
姓名.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);
}
}
}
}
5.学生对象
1).成员变量
主要成员变量
描述 | 变量类型 | 变量名称 |
学号 姓名 所学专业 家庭住址 出生 性别 | String String String String String String | Number Name Discipling Grade Borth Sex |
2). 方法
主要方法
名称 | 功能 |
Setnumber Setnumber Setname Setname setDisciping setDisciping setGrade setGrade setBorth setBorth setSex setSex | 设置学号 获取学号 设置姓名 获取姓名 设置所学专业 获取所学专业 设置家庭住址 获取家庭住址 设置出生 获取出生 设置性别 获取性别 |
3).代码
Student.java
public class Student implements java.io.Serializable
{
String number,name,discipling,grade,borth,sex;
public Student()
{
}
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;
}
}
四:测试结果及问题分析
本程序为一简单的班级管理系统,功能比较单一,但是基本功能还是实现了,能够对学生基本资料的录入,修改,删除以及查询。由于java程序对各变量的大小写要求比较严格,所以在程序调试阶段花了不少时间,而且程序的运行环境为JDK1.4.2,图形界面的输出要编写大量的代码实现。如果在编程环境为JBuilder,可能会比较简洁一点。
程序运行的主要界面如下所示:
系统主窗口
学生信息录入界面
学生信息修改界面
学生信息查询界面
学生信息删除界面
五:用户手册
- 本程序运行环境为JDK1.4.2,可在windows98/windows2000/windows XP下运行。
- 为了发布应用程序,我把本JAVA应用程序中涉及到的类文件压缩成一个JAR文件,名为StudentManager.jar,现在只要将StudentManager.jar文件拷贝到任何一个安装了JAVA运行环境(版本应为1.4.0及以上)的计算机上,双击鼠标就可以运行JAVA应用程序了。但如果计算机上安装了中文版的WinRAR解压缩软件并将该JAR文件与压缩软件做了关联,WinRAR解压缩软件会自动运行进行解压缩操作,使的JAVA程序无法运行。因此,创建了一个StudentManager.bat的批处理文件。所以,只要双击这个批处理文件就可以直接运行本程序了,省去了每次运行程序都要运行JDK软件的麻烦。
六.参考书籍
1.java面向对象程序设计 (清华大学出版社)
2. java课程设计 (清华大学出版社)
3. java信息系统设计与开发实例 (机械工业出版社)