1.课程设计目的和要求
随着科学技术的飞速发展,计算机科学技术的不断进步,计算机在各个领域的普及,学校规模的不断扩大,学院、专业、班级和学生数量的急剧增加,以及各种学生信息的指数增长,以往的学校学生身份信息管理仍然处于手工管理的复杂阶段,需要手工重复劳动,工作量大,效率极低。因此,迫切需要开发一个基于互联网的学生信息管理系统,以提高学校管理的效率。其主要特点是节省人力资源,使用方便快捷。以“提高学校的管理质量”为原则,方便快捷地管理学生信息和教师信息。因此,有必要开发一套学校学生信息管理系统来取代传统的手工管理模式。
基于互联网的学生信息管理系统在规范管理、科学统计、快速查询、简化操作等方面有了很大提高。具有很高的实用性。它提高了信息的开放性、保密性和可靠性,大大提高了管理员、学生和教师查询相关信息的准确性。
2.课程设计内容
学生信息管理是高校日常管理的主要任务之一,涉及管理者、教师和学生。随着高校招生规模的不断扩大,学生数量急剧增加,保存管理变得越来越繁重和复杂。迫切需要开发一个功能强大、操作简单、人性化的学生成绩管理系统。
从目前国内的研究情况来看,在安全性和信息更新方面存在一些不足。每个现有的系统数据都是单独建立的,共享性很差。在以管理者为主体的方式中,信息的选择取决于管理者对信息的认知和偏好,这使得难以掌握用户的真实需求,从而无法充分满足用户的需求。因此,学生管理软件应充分依托校园网络,实现学生信息的集中管理、分散操作和信息共享,使传统教务管理向数字化、无纸化、智能化和集成化方向发展。这也为进一步实现完善的计算机学生信息管理系统和整个学校信息系统奠定了良好的基础。
3.课程设计思路和方案
该系统基于C/S结构设计,采用三层体系结构。该系统主要用的是Java语言中的GUI(图形用户界面)和AWT(抽象窗口工具包)编程,开发环境是Eclipse。数据库使用MySQL5.0和用于MySQL的Navicat作为辅助工具。
图形用户界面,即人机交互图形用户界面的设计,是指以图形方式显示的计算机操作用户界面。
抽象窗口工具包是Java的平台独立的窗口系统图形和用户界面器件工具包。AWT 是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。 AWT提供了JavaApplet和Java Application中可用的用户图形界面GUI中的基本组件。由于Java是一种独立于平台的编程语言,但图形用户界面通常是依赖于平台的,所以Java使用相应的技术使AWT能够为应用程序提供独立于平台的接口,从而确保同一程序的图形用户界面在外观相似的不同机器上运行。
(3)Navicat for MySQL
是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给MySQL或MariaDB新手以及专业人士提供了一组全面的工具。
4.课程设计步骤和过程
4.1系统需求分析
随着科学技术的飞速发展,计算机科学技术的不断进步,计算机在各个领域的普及,学校规模的不断扩大,学院、专业、班级和学生数量的急剧增加,以及各种学生信息的指数增长,以往的学校学生身份信息管理仍然处于手工管理的复杂阶段,需要手工重复劳动,工作量大,效率极低。因此,迫切需要开发一个基于互联网的学生信息管理系统,以提高学校管理的效率。其最主要的特点就是节省人力资源,使用方便、快捷。以提高学校管理质量为原则,方便快捷的管理学生信息。所以,开发一套学校学生信息管理系统来代替传统的人工管理方式是必然的。本系统要实现学生信息的网络化的查询与管理。那么,学生如何管理个人信息是这个系统需要解决的问题。
4.2系统功能分析
该系统的主要任务是管理学生信息。学生可以查询自己的信息或修改相关信息。教师可以添加、删除和修改学生信息。该系统提供了一个非常友好的界面,操作简单,管理方便。一般来说,本次毕业设计是为了解决学生信息的管理问题,存储一定的用户信息和学生信息,方便有效地操作和管理相应的用户信息和学生信息,主要包括:用户可以修改自己的信息;添加和修改用户的相关信息;添加、修改、删除学生的相关信息;对学生的相关信息的查询。最终实现学生信息的网络化的查询与管理。
4.3系统总体设计
4.3.1总体系统流程图
本系统主要包括三种业务流程:登陆业务流程、学生个人信息业务流程、班级业务流程。
输入用户名、密码,登录到系统,对相关信息进行增、删、改、查以及导入和导出。进行完操作之后,点击安全退出,退出系统。管理员业务流程图如图1所示。

4.3.2系统功能模块设计
从功能模块上可以分为如下几大模块:学生信息的导入、导出模块、删除学生信息模块、修改学生信息模块、查询学生信息模块、添加学生信息模块。主要功能模块如图2所示。
班级信息模块类似有删除班级信息模块、修改班级信息模块、查询班级信息模块、添加班级信息模块。主要功能模块如图3所示。
4.4数据库设计
4.4.1数据库的概念设计
在系统设计之初,我首先考虑了如何使用数据模型,通过使用数据库的结构和语义来抽象现实世界。模型的结构部分指定了如何描述数据。目前广泛使用的数据模型可以分为两种类型,一种是独立于计算机系统的概念数据模型,如实体连接模型;另一种是直接面向数据库逻辑结构的结构化数据模型。在这个系统中,我使用实体关系模型(ER model)来描述数据库的结构和语义,抽象现实世界。ER模型直接从现实世界中抽象出实体类型和关系,然后使用ER图来表示数据模型。它有两个明显的优点:贴近人们的思维,易于理解;它与计算机无关,很容易被用户接受。然而,ER模型只能解释实体之间的语义关系,不能进一步解释详细的数据结构。这只是数据库设计的第一步。
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。本系统包括的实体有管理员实体,教师实体,学生实体。
学生实体的属性有,学号、姓名、性别、年龄、院系、班级、家庭住址和简介。学生实体如图4所示。

教师实体的属性有,教师编号、姓名、性别、年龄、登录帐号和登录密码。教师实体图如图5所示。

管理员实体的属性有,管理员编号、用户名、密码。管理员实体图如图6所示。

4.4.2数据库的物理设计
1.学生信息数据表
学生信息数据表的主要功能在于保存学生的主要信息和相关信息,包括:‘学号’、‘姓名’、‘性别’、‘年龄’、‘院系’、‘班级号’、‘家庭住址’。学生信息数据表如表1所示。
表1 学生信息数据
| 字段名称 | 字段类型 | 字段大小 | 索引 | 必须填写 |
| stuId | 文本 | 50 | 是 | |
| stuNo | 文本 | 20 | 是 | |
| stuName | 文本 | 30 | 是 | |
| Sex | 文本 | 50 | 是 | |
| Dept | 文本 | 50 | 是 | |
| classId | 文本 | 50 | 是 | |
| Address | 文本 | 50 | 是 |
2.班级信息数据表
班级信息数据表的主要功能是保存班级的相关信息。它包括:‘班级编号’、‘班级名’、‘班级介绍’。 班级信息数据表如表2所示。
表2 班级信息数据
| 字段名称 | 字段类型 | 字段大小 | 索引 | 必须填写 |
| Id | 文本 | 20 | 是 | |
| GradeName | 文本 | 20 | 是 | |
| gradeDesc | 文本 | 50 | 是 |
3.用户信息数据表
用户信息数据表的主要功能是保存用户的相关信息。它包括:‘用户编号’、‘登录账号’、‘登录密码’。 用户信息数据表如表3所示。
表3 用户信息数据
| 字段名称 | 字段类型 | 字段大小 | 索引 | 必须填写 |
| Id | 数字 | 4 | 有(无重复) | 是 |
| Username | 文本 | 30 | 是 | |
| Password | 文本 | 30 | 是 |
4.4.3数据库的逻辑设计
由以上的实体图可以得到以下几个关系模式:
学生基本信息(学号,姓名,性别,院系,班级,住址,信息简介)
班级基本信息(班级编号,班级名,班级简介)
用户基本信息(用户编号,登录帐号,登录密码)
4.5安全防护措施
登录用户的安全性
系统设计了登陆界面,每个合法用户有一个密码,该密码由用户自行维护,从而实现对用户的身份验证。
数据安全性
客户端层和数据库层隔离,客户端无法接触本质的数据库,无法进行非法的修改和破坏,使得数据库得到有效安全的保护。
4.6系统实现
数据库设计完成后,就开始进入具体的应用程序的分析与设计阶段。应用程序的分析与设计主要包括了应用程序各个功能模块的总体规划和分析、应用程序界面的选择与设计以及应用程序结构的选择等部分,而系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
4.6.1系统登陆模块设计
首先新建用户登录所对应的实体user类,一个user对象代表一个用户,此外,用户表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。
用户实体类:
public class User {
private int id; // 编号
private String userName; // 用户名
private String password; // 密码
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String userName, String password) {
super();
this.userName = userName;
this.password = password;
}
(set和get方法以及同toString方法省略)
第二步就是对登录的逻辑处理,首先是登陆名以及密码的非空校验,两者有一个为空就不继续访问数据库,直接返回给用户错误的信息,提醒用户更正登录信息。

当用户名或者密码为空的时候点击登录就会出现提示信息,如图8

代码部分的实现是使用了awt框架中的事件处理函数
private void loginActionPerformed(ActionEvent evt) {
String userName=this.userNameTxt.getText();
String password=new String(this.passwordTxt.getPassword());
if(StringUtil.isEmpty(userName)){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
return;
}
if(StringUtil.isEmpty(password)){
JOptionPane.showMessageDialog(null, "密码不能为空!");
return;
}
User user=new User(userName,password);
Connection con=null;
try {
con=dbUtil.getCon();
User currentUser=userDao.login(con, user);
if(currentUser!=null){
dispose();
new MainFrm().setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "用户名或者密码错误!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.6.2班级信息模块设计
首先新建班级所对应的实体studentClass类,一个studentClass对象代表一个班级,此外,班级表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。
班级实体类:
public class SchoolClass {
private int id; // 编号
private String className; // 班级名称
private String calssDesc; // 备注
public SchoolClass() {
super();
}
public SchoolClass(String className, String calssDesc) {
super();
this.className = className;
this.calssDesc = calssDesc;
}
public SchoolClass(int id, String className, String calssDesc) {
super();
this.id = id;
this.className = className;
this.calssDesc = calssDesc;
}
(set和get方法以及同toString方法省略)
第二步就是对班级信息逻辑部分的实现了,包括增加删除修改查询,其中添加是单独放在了一个界面,而查询、修改以及删除放在了同一个界面,这样便于维护,如图所示

点击添加则会调用添加部分的界面函数,弹出信息添加的界面如图所示,可以输入班级的名称,以及对班级的详细描述进行添加,在输入错误的情况下也可以点击重置,就会清空所有填写的信息,这样便于操作。

实现班级信息维护的代码如下,其中也是使用了awt中的事件处理函数,以及swing中的函数实现界面的显示跳转弹框等交互的操作。
private void bookTypeAddActionPerformed(ActionEvent evt) {
String className=this.classNameTxt.getText();
String classDesc=this.classDescTxt.getText();
if(StringUtil.isEmpty(className)){
JOptionPane.showMessageDialog(null, "班级信息名称不能为空!");
return;
}
SchoolClass schoolClass=new SchoolClass(className,classDesc);
Connection con=null;
try{
con=dbUtil.getCon();
int n=schoolClassDao.add(con, schoolClass);
if(n==1){
JOptionPane.showMessageDialog(null, "班级信息添加成功!");
resetValue();
}else{
JOptionPane.showMessageDialog(null, "班级信息添加失败!");
}
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "班级信息添加失败!");
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.6.3学生个人信息模块设计
首先新建学生所对应的实体student类,一个student对象代表一个用户,此外,用户表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。
用户实体类:
public class Student {
private int id; // 编号
private String name; // 姓名
private String sn; // 学号
private String sex; // 性别
private String dept; // 所在院系
private Integer classId; // 班级Id
private String className; // 班级名称
private String address; // 家庭住址
public Student() {
super();
}
public Student(String name, String sn, String sex, String dept, Integer calssId, String address) {
super();
this.name = name;
this.sn = sn;
this.sex = sex;
this.dept = dept;
this.classId = calssId;
this.address = address;
}
(set和get方法以及同toString方法省略)
第二步就是对学生个人信息逻辑部分的实现了,包括增加删除修改查询,其中添加是单独放在了一个界面,而查询、修改以及删除放在了同一个界面,这样便于维护,如图所示

实现个人信息维护的代码如下,其中也是使用了awt中的事件处理函数,以及swing中的函数实现界面的显示跳转弹框等交互的操作,学生信息的字段信息比较多需要注意要对应字段赋值。
后面还有学生信息管理部分以及课程设计结果和心得总结,就不从我的课设搬运过来啦,内容蛮多的,有需要的后台t我
本文探讨了开发一个互联网学生信息管理系统的需求背景,内容涵盖了课程设计目的、功能模块、数据库设计和安全防护,重点介绍了GUI、AWT编程和数据库选择。系统旨在提高管理效率,实现便捷查询和信息共享。


使用java+MySQL5.7和Navicat作为辅助工具实现图形化交互式界面的学生信息管理系统&spm=1001.2101.3001.5002&articleId=125508917&d=1&t=3&u=3cbfc0ec57d54a26b6b47cf12c1896ac)
487

被折叠的 条评论
为什么被折叠?



