一、系统分析
学生的学籍信息是记录学生的重要信息档案,如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情,该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息,生成电子数据库,并且能够做到查询、更改、删除、浏览等功能操作,让学籍信息的管理更加方便快捷。
二、设计方案
1、系统框架
学籍信息管理系统是集学籍信息录入,学籍信息查询,学籍信息更改,学籍信息删除,学籍信息浏览这些功能模块于一体的信息管理系统。首先,需要管理员登陆到该系统,当用户名和密码均正确时方可进入系统。图2-1给出了学籍信息管理系统的系统结构图。
图2-1 系统结构图
角色分析
学生类(Student)记录了学生的基本信息,该类的设计由图2-2所示,类的介绍如表2-1所示。
图2-2 学生的基本信息
表2-1 学生(Student.java)类的介绍
变量名称 |
类型 |
描述 |
number |
String |
学号 |
name |
String |
姓名 |
sex |
String |
性别 |
discipling |
String |
专业 |
grade |
String |
年级 |
borth |
String |
入学时间 |
三、算法分析
1、使用try和catch捕捉异常处理
Java通过5个关键字来控制异常处理,通常在出现错误时用try来执行代码,系统引发(throws)一个异常后,可以根据异常的类型由catch来捕获,或者用finally调用缺省异常处理。
在执行过程中,由try所指定的代码中的语句会生成异常对象并抛出。catch语句的参数类似于方法的声明,包括一个异常类型和异常对象。
try {
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
StudentDB = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
} catch (Exception ee) {
}
2、对象序列化
在Java.io包中,提供了ObjectInputStream和ObjectOutputStream,将数据流功能扩展至可读写对象。在ObjectInputStream中用readObject()方法可以直接读取一个对象,在ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。
inOne = new FileInputStream(file);
inTwo = new ObjectInputStream(inOne);
outOne = new FileOutputStream(file);
outTwo = new ObjectOutputStream(outOne);
3、数据存储使用散列表
散列表根据关键码直接访问表,把关键码映射到表中的记录来访问记录,这个过程成为散列,散列方法不同于顺序查找、二分查找。它不以关键字的比较为基本操作,采用直接寻址技术。在理想情况下,无须任何比较就可以找到待查关键字,查找的期望时间为O(1)。散列表上的运算有查找、插入和删除。其中主要是查找,这是因为散列表的目的主要是用于快速查找,且插入和删除均要用到查找操作。
Hashtable StudentDB = null;
StudentDB = (Hashtable) inTwo.readObject();
Student stu = (Student) StudentDB.get(number);
四、软件实现
1、代码组织
本系统由8个Java类、2张图片文件组成,其中,src存放了8个Java类,res存放的是管理员登陆时的图片(login.jpg)和主框架的图片(home.jpg)。类之间的关系如图4-1所示。
图4-1 该系统类关系图
各类的主要功能如表4-1所示。
表4-1 类功能介绍表
序号 |
类名 |
功能描述 |
1 |
Student.java |
创建并存放学生类的对象 |
2 |
StudentInput.java |
新学籍信息的录入 |
3 |
StudentInquire.java |
学籍信息的查询界面 |
4 |
StudentChange.java |
学籍信息的更改 |
5 |
StudentDelete.java |
学籍信息的删除 |
6 |
StudentLogin.java |
管理员登陆窗口,包含main函数 |
7 |
StudentTable.java |
浏览全部的学籍信息 |
8 |
StudentFrame.java |
学籍信息管理系统的主框架 |
2、详细设计
成员变量
1. 管理员登陆窗口(StudentLogin.java)如表4-2所示。
表4-2 管理员登陆窗口类成员变量表
变量名称 |
变量类型 |
描述 |
login,reset |
JButton |
登录、重置按钮 |
Username,password |
JTextField |
用户名、密码输入框 |
a,b |
JLabel |
提示语 |
word |
JLabel |
图片显示 |
2. 学籍管理系统主框架(StudentFrame.java) 如表4-3所示。