题目:学生信息管理系统
1 系统需求分析
学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生
的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。
1.1 系统功能分析
本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统
的主要功能有:
学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。
学生流动情况的输入,包括:转系、休学、复学、退学、毕业。
奖惩情况的输入。
学生个人情况查询和修改,包括流动情况和奖罚情况。
1.2 系统功能模块设计(划分)
根据系统功能要求可以将系统分解成几个模
块来分别设计应用程序界面,如图 1 所示。
1.3 与其它系统的关系
学生信息管理系统是校园信息管理系统的一
个组成部分。它为其它系统,如班级信息管理系统、
教学管理系统、成绩单系统、宿舍分配系统等,提供学生的基本情况。同时需要其他系统提
供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数
据。
2 数据库设计
2.1 数据库需求分析
根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:
学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。
处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。
奖励记录:记录号、级别、奖励对象、记录时间、详细描述。
学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。
图 1、学生信息管理系统功能模块图
所需的外部数据支持:
班级:班级编号、班级名称、所属院系。
院系:代码、名称。
2.2 数据库概念结构设计
图 3 是本系统所需数据的 E-R 模型图
E-R图:
2.3 数据库逻辑结构设计
根据系统 E-R 图,需要设计 4 个数据表来存放学生的信息。为了系统的完整,系统中
包括了应用程序设计中所需的 2 个外部数据表。为了优化数据表结构,部分字段采用代码形
式,因此需要附加 3 个代码表。这 9 个数据表的结构如表 1 到表 9 所示。
2.4 数据库的建立
2.4.1 数据库的建立(请设计者完成)
2.4.2 初始数据的输入
数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提
前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等。
学籍变更代码和奖惩级别的主关键字 CODE 从 0 开始用阿拉伯数字依次编号,便于程
序设计时,采用单选按钮来选择。
本系统中所用到的学籍变更和奖惩级别代码如表 10 至表 12 所示(请设计者完成这些数
据表的逻辑结构)。
表10 学籍变更代码表
代码 说明
0 转系
1 休学
2 复学
3 退学
4 毕业
表11 奖励级别代码
代码 说明
0 校特等奖学金
1 校一等奖学金
2 校二等奖学金
3 校三等奖学金
4 系一等奖学金
5 系二等奖学金
6 系三等奖学金
表12 处罚级别代码
代码 说明
0 警告
1 严重警告
2 记过
3 记大过
4 开除
3 各功能模块的设计与实现
3.1 功能说明
1、学生个人信息输入
2、学籍变更情况的输入
3、奖励情况的输入
4、处罚情况的输入
5、学生个人情况查询和修改
3.2 用户界面设计
完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。由于本
系统管理内容比较简单,且为校园管理信息系统的一部分,因此使用一个窗体不同的标签页
来完成系统要求的 5 项功能。
我们把学生信息管理系统的窗体分成____个主要部分,如图____所示。
1、应用程序主窗体的创建
2、学生个人信息输入界面
3、学籍变更情况输入界面
4、奖励情况输入界面
5、处罚情况输入界面
6、学生个人情况查询和修改界面
3.3 各功能模块的实现
1、学生个人信息输入
2、学籍变更情况输入
3、奖励情况输入
4、处罚情况输入
5、学生个人情况查询和修改
界面和核心代码分析 :
本管理系统采用选项卡面板,将多个界面放在主窗体下,每个界面完成不同的功能,如信息输入奖励,处罚,学籍变更等。
以下是MySQL的表单结构,一共有9个表
数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提
前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等.
以下是源代码(一共有两个文件):
第一个文件是:QUESTIONONE2.java
package ZTY;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
public class QUESTIONONE2 extends JFrame{
JPanel jap =null;
JPanel jap1=null;
JTextField JaTF1=null;JLabel jab1 = null;
JPanel jap2=null;
JTextField JaTF2=null;JLabel jab2 = null;
JPanel jap3=null;
JTextField JaTF3=null;JLabel jab3 = null;
JPanel jap4=null;
JTextField JaTF4=null;JLabel jab4 = null;
JPanel jap5=null;
JTextField JaTF5=null;JLabel jab5 = null;
JPanel jap6=null;
JTextField JaTF6=null;JLabel jab6 = null;
JPanel jap7=null;
JTextField JaTF7=null;JLabel jab7 =null;
JPanel jap8=null;
JButton jab=null;
JPanel jap9=null;JLabel jab9=null;
JPanel jbp =null;
JPanel jbp1=null;JTextField JbTF1=null;JLabel