学生管理系统的设计与实现
学生管理系统是学校管理系统的主要构件之一,在某种程度上体现了一个学校的教学现代化水平。它能帮助学校的管理者简单、快速、高效的管理学校的事宜,使各项管理更加规范,使学校的管理实现了数字化。关键词Java,MySQL,学生管理系统学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息、课程信息等。对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管
学生管理系统是学校管理系统的主要构件之一,在某种程度上体现了一个学校的教学现代化水平。它能帮助学校的管理者简单、快速、高效的管理学校的事宜,使各项管理更加规范,使学校的管理实现了数字化。
关键词 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的学习,但在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
更多推荐
所有评论(0)