学生管理系统是学校管理系统的主要构件之一,在某种程度上体现了一个学校的教学现代化水平。它能帮助学校的管理者简单、快速、高效的管理学校的事宜,使各项管理更加规范,使学校的管理实现了数字化。

关键词  Java,MySQL,学生管理系统

功能需求

学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息、课程信息等。对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管理学生档案,对学校学生的变动和统计起着重要的管理作用。本系统根据学校管理的实际要求,结合学生信息管理的实际流程要,需实现以下功能:  

第一,能够对学生的有关资料进行输入,查询,修改,删除。  

第二,能够为学校提供强大的查询功能,以便管理人员了解和掌握学生的具体情况。

第三,能够对数据库和登陆记录进行清理。

第四,可以对用户进行修改密码,新增用户。

实现的基本功能

该系统要求除了能实现信息的录入,删除,插入,更新,等基本功能之外,还要求能够根据用户的需要进行操作。例如要查询学生成绩,要求可以按照学号、姓名、性别等多种方式查询。这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。部分文本框使用了下拉式,使用户可以不用花费大量的时间去输入信息。

系统表结构设计

表的选取

根据该系统的要求以及可能将来和其它学生信息管理系统结合,本系统需要有一个管理学生的基本信息表、成绩表。输出不同的结果表示形式。

表的规范化

表的规范化是一系列能够应用到数据库结构上的测试,通过这些测试使数据库结构处于一种优化形式,测试方法有:对于每一行和列的交叉点,是否仅有一个值;是否非主码列依赖全部主码;表中是否有依赖其它非主码列的非主码列。

表的具体设计

根据实现学生成绩管理所涉及的数据,设计的表的结构。

学生基本信息表中包含了学生需要录入的基本信息,有姓名、性别、民族、电话、出生年月、地址、兴趣、个人简介等。如表3-1所示:

表3-1  学生基本信息表

字段名

含义

数据类型

Name

姓名

Varchar

Sex

性别

Varchar

Nation

民族

Varchar

Telephone

电话

Varchar

Birthday

出生年月

Date

Address

地址

Varchar

Happy

兴趣

Varchar

Resume

个人简介

Varchar

表3-4  用户信息表

字段名

含义

数据类型

name

姓名

varchar

sex

性别

varchar

nation

民族

varchar

telephone

电话

varchar

birthday

出生年月

Date

address

地址

varchar

happy

兴趣

varchar

resume

简介

varchar

photopath

照片

varchar

 系统模块详细设计

 登录模块

作为一个数据库应用系统,不仅要求它有实用性和可操作性,而且系统安全性也是必不可少的一部分。一个数据库应用系统应该不是任何人都可以随便使用的,即使可以使用,也应该具有不同的权限。为了区分这一不同的特征,登录模块就显得很必要了。

管理员登录

在任何数据库应用系统中,管理员要进入这个应用系统并使用其中的功能模块,都要首先通过系统的身份认证,这个过程叫做登录。

输入登录名和密码之后,按<Enter>键,系统校验该用户是否存在。如果存在进入到主页面,管理员通信息过验证后可以进入系统对相关信息进行管理。因为只是内部使用,所以管理员的账号和密码是制定好的,防止他人侵入后注册新的管理员账号。登陆界面如图4-1所示:

 

图4-1  管理员登陆界面

如果用户名与密码不正确,就会弹出警告信息,如图4-2所示:

 

图4-2  登录名错误显示登录名不存在

实现相应功能的代码部分:

public void actionPerformed(ActionEvent e) {

if (e.getSource() == btnLogin) {login();

System.exit(0);

public static void main(String[] args) {

new LoginForm();

private void login() {

if (textName.getText().trim().length() == 0) {

JOptionPane.showMessageDialog(this, "");

textName.requestFocus();

if (textPassword.getText().length() == 0) {

JOptionPane.showMessageDialog(this, "");

textPassword.requestFocus(); IUserDao uDao = new UserDao();

User user = uDao.getUser(textName.getText().trim());

if (user == null) {

JOptionPane.showMessageDialog(this, "");

MD5_Encoding md5=new MD5_Encoding();

String password=md5.getMD5ofStr(textPassword.getText());

if (!password.equals(user.getPassword())) {

登录主界面

主要包含有学生管理、课程管理、教师管理、成绩管理、统计管理。该模块主要针对学生管理系统的管理员设计,不对一般的用户开放,用于管理员的身份识别和权限限制。如图4-3所示:

 

图4-3  登陆后的主界面

学生管理模块

添加学生

学生管理模块包括对学生信息的添加、修改、删除操作。添加学生信息时学号不能为空,最大长度为5,学号不能重复。如果已经存在就会弹出“对不起,[学号] 已经存在!”所示的对话框。学生基本信息和消息提示框如图4-4所示:

 

图4-4  添加学生界面

学号不能为空,最大长度为5,需要对学号进行校验,代码如下:

if (texNo.getText().trim().length() == 0) {

JOptionPane.showMessageDialog(CommonInfo.mainForm,

texNo.requestFocus();

returntrue;}elseif(texNo.getText().trim().length()!=5) {JOptionPane.showMessageDialog(CommonInfo.mainForm,

"对不起,【学号】的长度必须是5位数字!");

texNo.requestFocus();

return true;} else {if (type == 0) { IStudentDao sDao = new StudentDao();

添加学生信息成功代码如下所示:

IStudentDao sDao = new StudentDao();

boolean flag = sDao.addStudent(s);

if (flag) {JOptionPane.showMessageDialog(CommonInfo.mainForm, "恭喜您,添加学生信息成功!");

ClearText();} else {JOptionPane.showMessageDialog(CommonInfo.mainForm,

if (photoPath != null) {

File f = new File(photoPath);

 查询学生

查询学生信息可按条件对学生信息进行查询,还可对学生信息进行修改和删除操作。条件查询可通过对学生的学号、姓名、性别、民族进行查询。如图4-6所示。实现查询学生代码如下:

public String getCondition() {

String sql = "";

if (txtNo.getText().length() > 0) {

sql="whereno='"+txtNo.getText()+"'";if(txtName.getText().length() > 0) {

if ("".equals(sql)) {

sql = "where name like '" + txtName.getText() + "%'";

} else {

sql += " and name like '" + txtName.getText() + "%'";if (!"".equals(cboSex.getSelectedItem())) {

if ("".equals(sql)) {

sql = "where sex='" + cboSex.getSelectedItem() + "'";} else {

sql += " and sex='" + cboSex.getSelectedItem() + "'";

if (!"全部".equals(cboNation.getSelectedItem())) {

 

图4-6  查询学生

删除学生

点击删除按钮可对学生信息进行修改、删除操作,点击删除按钮会弹出如图所示的对话框“您确认删除吗?”,如图4-7所示:

 

图4-7  删除学生信息

删除学生代码如下:

public void mouseClicked(MouseEvent e) {

if (e.getSource() == table) {

nt row = ((JTable) e.getSource()).rowAtPoint(e.getPoint());

int col = ((JTable) e.getSource()).columnAtPoint(e.getPoint());

String no = table.getValueAt(row, 0).toString();

if (col == 8) { new StudentMidify(no);

FileTable();}elseif(col==9){intyJOptionPane.showConfirmDialog(CommonInfo.mainForm,"您确认删除吗?", "删除",

JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if (y == JOptionPane.YES_OPTION) {

IStudentDao sDao = new StudentDao();

sDao.deleteStudent(no);

尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对Java的学习,但在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。

 

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐