Java 课程设计
------简单的班级管理系统
学院:船山学院
班级:计算机 029 班
姓名: 陈 强
学号:20029440913
2004-12-20
1
一:需求分析
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
负责创建存放学生信息的对象。
三:详细设计
1. 主类 StudentManager.java
1).成员变量
主要成员变量
成员变量描述
变量类型
变量名称
StudentManager(主类)
Delete
Studen
t
StudentSituation
ModiifySituation
Inques
t
2
基本信息录入界面
基本信息修改界面
基本信息查询界面
基本信息删除界面
菜单选项
存基本信息的散列表
存放散列表的文件
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("删除学生基本信息");
3
退出=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();
4
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,"删除界面");
}