基于Java GUI的简单学生成绩管理系统(课程设计报告)

1概述

1.1题目选择

本文选择的题目是“基于Java GUI学生成绩管理系统”。学生成绩管理系统是当前社会中一种常见的教育系统,可以让教师在系统中对学生成绩信息进行增删改查以及信息处理等操作。学生成绩管理系统具有广泛的应用性和商业价值,是教育系统的重要组成部分。

管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。

1.2开发环境

本文所涉及和实现的学生成绩管理系统主要使用了一下开发环境:

操作系统:Windows 10

编程语言:Java

数据库:MySQL 8.0.1

开发工具:Idea2021.1.1、Navicat 15 for MySQL

1.3系统的主要目的

近年来,随着学校的办学规模越来越大,在校学生数也日益增多,随之而来的是教务管理工作日趋复杂繁重,要耗费大量人力、物力,已愈来愈成为学校日常管理工作的一个瓶颈。学生成绩管理是教务、教学管理中一个重要组成部分,也是比较烦琐的工作。在学生成绩管理事务中,一般有成绩输入:对各年级各班各学期学生的各科成绩进行输入﹔成绩统计︰需要对每个学生的成绩进行处理,例如排名次,成绩汇总,成绩升降﹔成绩报表:将学生成绩以报表形式输出等等。每次考试都需要大量的人力、物力, 为了减轻学生成绩管理工作量和实现现代化的科学管理,特设计这个系统。并根据学校的实际情况,制定数据和功能需求。

学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。目前各个高校的基本情况是:每次考试结束,老师们都要统计大量的学生成绩,这些数据的归档、统计工作任务重,统计结束后往往错误百出。工作量之大,查阅,维护都有不同程度的问题存在。所以,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以及让教务处在最短的时间段把学生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生、学生成绩进行各种查询和统计,以及很好地对系统进行维护。

本系统主要实现教师查询学生成绩、修改学生成绩、增加学生信息成绩、删除学生成绩以及学生查询成绩的功能。

2需求分析

本文设计了一个基于 Java GUI的学生成绩系统,该系统主要是面向教师和学生,提供一个成绩处理查询系统,可以让教师更加便利的对学生成绩进行操作,也可以让学生查询成绩变得更加方便。学生成绩管理系统的需求分析主要包括以下几个方面:

(1)可行性研究。可行性研究是指对项目在技术上、经济及上是否可行所进行的

科学分析和论证

(2)功能需求。功能需求指系统所提供的功能和服务,是用户对系统的直接需求。

(3)性能需求。性能需求是指系统在运行时所需要满足的一些指标和条件,如响 应时间、并发数、可靠性等

2.1可行性研究

(1)技术可行性分析

无论是台式机还是笔记本,计算机都以非常迅猛的速度占据着人们的工作与生活,那么能够辅助计算机帮助人们改变工作与生活状态的就是那些安装在计算机上的功能软件。本文所要设计的系统,从简单易懂的思想出发,将通过文字索引提示协助学生和教师操作。

系统的开发环境和配置可以由我们自己安装。系统采用Java开发工具,根据技术语言修改和维护数据信息,并结合要求使系统运行更加稳定安全,从而完成实现系统的开发。网络技术的快速发展使网络传输速度越来越快,价格越来越低,安全性越来越高,其所有硬件平台都能完全满足学生成绩管理系统开发的需要。

本系统采用的开发工具是IDEA2021.1.1,通过javaGUI技术创建图形用户界面。开发语言为Java、Mysql,数据库方面选取MySQL数据库,JDBC版本为8.0.1,通过Navicat 15 for MySQL软件进行数据库的基本创建以及管理。

(2)经济可行性分析 

经济可行性包括系统实现过程中所需资源的研究。系统实现过程中所需资源主要包括人力资源、自然资源等。学生成绩管理系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且学生成绩管理系统的开发之前所做的市场调研及其他的学生成绩管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于学生成绩管理系统的开发在经济上是完全可行的,没有任何费用支出的。

使用Java技术是比较成熟的技术,所以学生成绩管理系统平台的开发在经济上是没有问题的。

(3)操作可行性分析 

学生成绩管理系统基于JavaGUI安装软件,访问和操作界面简单、操作方便。学生只要连接到网络就可以访问和操作。系统在界面设计上就很有善意让人感觉心旷神怡,首先这就能给操作者一种好心情,可以让工作人员以更好的心态工作,其次也很美观,在系统的使用中要不光应用到了系统完善的功能还欣赏了系统简洁的外观。其次就是系统的功能方面了,在系统的日常使用中会一点简单电脑操作的工作人员也都可以应付自如。因此,它具有操作简单,管理方便,交互性强的特点,在操作上是非常可行的。

2.2功能需求

(1)录入学生成绩

教师可以通过界面输入学生姓名、学号、成绩等信息,系统将信息保存到数据库中。

(2)查询学生成绩

教师可以通过界面查询学生成绩,包括单个学生的成绩、全部成绩等。学生可以通过输入学号查看成绩

(3)修改学生成绩

教师可以通过界面修改学生成绩,包括单个学生的成绩和某门课程的成绩等。

(4)删除学生成绩

教师可以通过界面删除学生成绩,包括单个学生的成绩和某门课程的成绩等。

  1. 登录系统

用户输入密码后选择是教师登录还是学生登录,登录验证通过后,教师进入系统教师页面,学生进入系统学生页面。

以教师、学生参与者用例图做详细展现,如图2-1:

图2-1 系统用例图

2.3性能需求

1).网络环境下的多用户系统。

信息主要存储在服务器端的数据库中,由各用户在规定的权限下在各自的客户端上录入,修改,删除相关的内容,各用户还可进行查询,调用,达到信息共享。

2).数据的完整性,准确性。

录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确性。

3).数据安全性。

本系统采用二级安全保障:

第一级:依赖于网络本身对用户使用权限的规定。

第二级:在程序模块中通过使用密码控制功能对用户使用权限加以限制。

3系统设计

3.1概要设计

学生成绩管理系统中总共有两个模块,分别为教师模块和学生模块。

1、教师模块

用户模块包含登录系统、查询数据、修改数据、添加数据以及删除数据。各功能内容分别为:

登录系统:用户可以在系统的登录页面输入自己的用户名和密码进行合法验证,验证通过后进入系统进行操作。

查询数据:用户可以根据学生的学号进行查询

添加数据:用户可以在系统中添加学生信息并添加学生成绩。

修改数据:用户可以在系统中修改学生的信息及成绩。

删除数据:用户可以在系统中根据学生的学号从系统中删除学生信息。

  1. 学生模块

登录系统:用户可以在系统的登录页面输入自己的用户名和密码进行合法验证,验证通过后进入系统进行操作。

查询数据:用户可以根据学生的学号进行查询。

如图3-1系统功能模块图所示。

图3-1系统结构图

3.2数据库设计

数据库是在给定环境下建立系统的最佳模式,它能有效地存储数据,满足各种用户的需求。在设计数据库、程序和其他系统组件的过程中,我们需要了解用户的需求,以便后面的开发节省大量的时间。学生管理系统具体有成绩查询、插入、删除、修改、显示,这就要求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。

根据系统功能描述,确定建立3张表,表结构描述如表3-1教师登录信息表、表3-2学生登录信息表、3-3学生信息表所示。其用户和学生信息之间的查询关系E-R图如图3-2。

图3-2教师学生ER图

表3-1 教师登录信息表(user)

序号

字段名

字段类型

是否主键

是否为空

描述

1

name

varchar(12)

Y

N

用户名

2

passwrd

varchar(16)

N

密码

表3-2 学生登录信息表(user)

序号

字段名

字段类型

是否主键

是否为空

描述

1

name

varchar(12)

Y

N

用户名

2

passwrd

varchar(16)

N

密码

表3-3学生信息表(studentscore)

序号

字段名

字段类型

是否主键

是否为空

描述

1

number

int(15)

Y

N

学号

2

name

char(15)

姓名

3

myclass

int(15)

班级

4

chinessgrade

int(11)

语文成绩

5

mathgrade

int(11)

数学成绩

6

Englishgrade

int(11)

英语成绩

3.3系统功能模块设计

3.3.1系统功能模块

如图3-3所示:

图3-3 系统功能模块

3.3.2登录模块

用户由学生和教师组成,学生和教师登录后显示的窗口是不一样的,所以要在用户登录的时候确定用户的身份,根据用户身份显示不同的窗口和功能。

1.界面设计

功能组件:2个文本框、2个按钮

功能实现:登录学生成绩管理系统

2.监听事件设计

(1)事件源:“教师登录”按钮

事件过程:对“教师登录”按钮添加监控,实现按钮事件。当用户单击教师登录按钮时,获取文本框中的用户名,密码等信息,并执行SQL的select语句,实现查询教师登录信息数据,将用户在文本框中输入的信息数据与数据库中的教师信息数据做匹配。

(2)事件源:“学生登录”按钮

事件过程:对“学生登录”按钮添加监控,实现按钮事件。当用户单击学生登录按钮时,获取文本框中的用户名,密码等信息,并执行SQL的select语句,实现查询学生登录信息数据,将用户在文本框中输入的信息数据与数据库中的学生信息数据做匹配。

3.3.3系统主窗口模块

教师主窗口

1.界面设计

功能组件:5个按钮

功能实现:教师登录系统后进入教师功能窗口。

2.监听事件设计

(1)事件源:“增加学生成绩信息”按钮

事件过程:对“增加学生成绩信息”按钮添加监控,实现按钮事件。当用户单击“增加学生成绩信息”按钮时,打开“增加学生成绩信息”窗口。

(2)事件源:“删除学生成绩信息”按钮

事件过程:对“删除学生成绩信息”按钮添加监控,实现按钮事件。当用户单击“删除学生成绩信息”按钮时,打开“删除学生成绩信息”窗口。

(3)事件源:“查看学生成绩信息”按钮

事件过程:对“查看学生成绩信息”按钮添加监控,实现按钮事件。当用户单击“查看学生成绩信息”按钮时,打开“查看学生成绩信息”窗口。

(4)事件源:“修改学生成绩信息”按钮

事件过程:对“修改学生成绩信息”按钮添加监控,实现按钮事件。当用户单击“修改学生成绩信息”按钮时,打开“修改学生成绩信息”窗口。

(5)事件源:“退出系统”按钮

事件过程:对“退出系统”按钮添加监控,实现按钮事件。当用户单击“退出系统”按钮时,系统窗口全部关闭,退出系统。

学生主窗口

1.界面设计

功能组件:2个按钮

功能实现:学生登录系统后进入学生功能窗口。

2.监听事件设计

(1)事件源:“查看学生成绩信息”按钮

事件过程:对“查看学生成绩信息”按钮添加监控,实现按钮事件。当用户单击“查看学生成绩信息”按钮时,打开“查看学生成绩信息”窗口。

(2)事件源:“退出系统”按钮

事件过程:对“退出系统”按钮添加监控,实现按钮事件。当用户单击“退出系统”按钮时,系统窗口全部关闭,退出系统。

3.3.4增加数据模块

增加数据模块只会出现在教师系统窗口中,因为系统需求,添加学生信息及成绩的操作只能由老师来进行操作。

1.界面设计

功能组件:6个文本框、2个按钮、1个表格

功能实现:添加数据

2.监听事件设计

(1)事件源:“增加”按钮

事件过程:对“增加”按钮添加监控,实现按钮事件。当用户单击添加按钮时,获取文本框中的学号,姓名,班级,语文成绩,数学成绩,英语成绩等信息,并执行SQL的INSERT语句,实现插入学生信息数据。

(2)事件源:“返回”按钮

事件过程:对“返回”按钮添加监控,实现按钮事件。当用户单击返回按钮时隐藏添加数据界面,跳转到主菜单界面。

3.3.5删除数据模块

  1. 界面设计
  2. 功能组件:1个文本框、2个按钮

功能实现:根据学号删除学生信息

2.监听事件设计

(1)事件源:“删除”按钮

事件过程:对“删除”按钮添加监控,实现按钮事件。当用户单击删除按钮时,获取文本框中的学号信息,并执行SQL的delete语句,实现根据学号删除学生数据。

(2)事件源:“返回”按钮

事件过程:对“返回”按钮添加监控,实现按钮事件。当用户单击返回按钮时隐藏删除数据界面,跳转到主菜单界面。

3.3.6修改数据模块

1.界面设计

功能组件:6个文本框、2个按钮

功能实现:根据学号更新学生信息

2.监听事件设计

(1)事件源:“修改”按钮

事件过程:对“修改”按钮添加监控,实现按钮事件。当用户单击修改按钮时,获取文本框中的学号,姓名,班级,语文成绩,数学成绩,英语成绩信息,并执行SQL的update语句,根据学号实现更新学生数据。

(2)事件源:“返回”按钮

事件过程:对“返回”按钮添加监控,实现按钮事件。当用户单击返回按钮时隐藏更新数据界面,跳转到主菜单界面。

3.3.7查询数据模块

1.界面设计

功能组件:1个文本框、2个按钮

功能实现:根据学号查询学生信息

2.监听事件设计

(1)事件源:“查看”按钮

事件过程:对“查询”按钮添加监控,实现按钮事件。当用户单击查询按钮时,获取文本框中的学号信息,并执行SQL的select语句,根据学号实现查询学生数据,并显示在文本域当中。

(2)事件源:“返回”按钮

事件过程:对“返回”按钮添加监控,实现按钮事件。当用户单击返回按钮时隐藏查询数据界面,跳转到主菜单界面。

3.4程序流程设计

在用户登录时,根据用户选择的身份登录按钮,再根据账号和密码的输入判断是否成功登录判断是否成功登录,若登录失败则需重新登录,反之登录成功,根据不同的身份进入不同的主窗口。可根据自己的需求进行操作,最后将数据存入后台数据库中,程序流程图如图3-4所示。

图3-4程序流程图

4系统实现

4.2功能模块实现

4.2.1数据库连接代码

public class JDBCConnection {

    private static String url = "jdbc:mysql://localhost:3306/cjgl";

    private static String user = "root";

    private static String password = "";

    static {

        try {

            Class.forName("com.mysql.cj.jdbc.Driver");

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

    public static Connection getConnection() throws SQLException {

        Connection conn = DriverManager.getConnection(url,user,password);        return conn;

    }

   

4.2.2登录功能模块实现

登录界面窗口是每个应用软件必不可少的部分,主要功能是保护用户的数据安全。对使用者的身份进行验证。验证成功后显示登录成功窗口,验证失败显示相关错误信息窗口。

1、核心代码

// 窗口实现

JLabel lName = new JLabel("账号:");

lName.setBounds(10, 10, 10, 20);

tfName.setText("");

tfName.setPreferredSize(new Dimension(80, 30));  

JLabel lPassword = new JLabel("密码:");

JButton b= new JButton("教师登录");

b.setBounds(130, 200, 100, 30);

f.add(b);

JButton c= new JButton("学生登录");

c.setBounds(130, 240, 100, 30);

// 验证实现

if(check(name, password))

{

JOptionPane.showMessageDialog(f, "登录成功");

zhujiemian zhujiemian1 = new zhujiemian();

f.dispose();

zhujiemian1.de2();

}

 else{

JOptionPane.showMessageDialog(f, "密码错误");

}

2、界面展示

登录窗口如图4-4,登录成功信息窗口如图4-5,密码错误信息窗口如图4-6,密码不能为空信息如图4-7,账号不能为空信息如图4-8。

接下来都是代码就不给大家展示了!!!!

5系统测试

系统测试是通过各个子系统配合完整的系统实现而成的,主要测试各个模块的功

能是否有效,结构设计是否能让用户满意,是否能够满足用户的需求,并且还要检验源代码是否有错误,因为代码发生错误会导致系统出错。测试分以下三个模块。

5.1登录功能模块测试

  1. 教师登录:进入系统后输入账号和密码,点击教师登录,验证成功后进入教师主窗口,教师登录功能测试用例如表5-1所示。

表5-1教师登陆功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

进入登录窗口后输入账号和密码,点击教师登录按钮。

显示登录成功信息窗口,打开教师主系统窗口。

与目标结构一致。

进入登录窗口后输入账号和错误密码,点击教师登录按钮。

显示密码错误信息窗口,可继续输入密码进行登录。

与目标结构一致。

进入登录窗口后不输入账号和密码,点击教师登录按钮。

显示账号不能为空信息窗口,可继续输入信息登录。

与目标结构一致。

进入登录窗口后不输入账号,点击教师登录按钮。

显示账号不能为空信息窗口,可继续输入信息登录。

与目标结构一致。

(2)学生登录:进入系统后输入账号和密码,点击教师登录,验证成功后进入学生主窗口,学生登录功能测试用例如表5-2所示。

表5-2学生登陆功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

进入登录窗口后输入账号和密码,点击学生登录按钮。

显示登录成功信息窗口,打开学生主系统窗口。

与目标结构一致。

进入登录窗口后输入账号和错误密码,点击学生登录按钮。

显示密码错误信息窗口,可继续输入密码进行登录。

与目标结构一致。

进入登录窗口后不输入账号和密码,点击学生登录按钮。

显示账号不能为空信息窗口,可继续输入信息登录。

与目标结构一致。

进入登录窗口后不输入账号,点击学生登录按钮。

显示账号不能为空信息窗口,可继续输入信息登录。

与目标结构一致。

5.2系统主窗口功能测试

  1. 教师主窗口:教师主窗口共有五个按钮,对应会打开四个操作窗口以及退出系统功能。教师主窗口功能测试用例如表5-3所示。

表5-3教师主窗口功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

在主窗口点击增加学生信息按钮。

打开增加学生信息窗口。

与目标结构一致。

在主窗口点击删除学生信息按钮。

打开删除学生信息窗口。

与目标结构一致。

在主窗口点击修改学生信息按钮。

打开修改学生信息窗口。

与目标结构一致。

在主窗口点击查看学生信息按钮。

打开查看学生信息窗口。

与目标结构一致。

在主窗口点击退出系统按钮。

关闭所有窗口,退出系统

与目标结构一致。

  1. 学生主窗口:学生主窗口共有五个按钮,对应会打开1个操作窗口以及退出系统功能。学生主窗口功能测试用例如表5-4所示。

表5-4学生主窗口功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

在主窗口点击查看学生信息按钮。

打开查看学生信息窗口。

与目标结构一致。

在主窗口点击退出系统按钮。

关闭所有窗口,退出系统

与目标结构一致。

5.3增加数据功能测试

增加数据功能只能有教师进入系统后进行操作的功能,打开增加学生窗口后需要在文本框内填入学生信息进行添加。增加数据功能测试用例如表5-5所示。

表5-5增加数据功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

输入姓名、班级、学号、语文成绩、数学成绩、英语成绩后点击增加按钮。

下方表格数据增加一条。

与目标结构一致。

输入姓名、班级、学号、后点击增加按钮。

弹出输入错误信息窗口。

与目标结构一致。

输入姓名、班级、学号、语文成绩、数学成绩后点击增加按钮。

弹出输入错误信息窗口。

与目标结构一致。

输入姓名、语文成绩、数学成绩后点击增加按钮。

弹出输入错误信息窗口。

与目标结构一致。

文本框中什么也不输入后点击增加按钮

弹出输入错误信息窗口。

与目标结构一致。

输入的信息中学号已经在系统中存在。

弹出输入错误信息窗口。

与目标结构一致。

点击返回按钮

增加数据窗口关闭,返回主窗口。

与目标结构一致。

5.4删除数据功能测试

删除数据功能只能有教师进入系统后进行操作的功能,打开删除学生窗口后需要在文本框内填入学生学号进行删除。删除数据功能测试用例如表5-6所示。

表5-6删除数据功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

输入学生学号点击删除

下方表格数据删除一条。

与目标结构一致。

不输入学生学号点击删除

弹出输入错误信息窗口。

与目标结构一致。

输入数据库没有的学生学号点击删除按钮。

系统不做任何反应。

与目标结构一致。

点击返回按钮

增加数据窗口关闭,返回主窗口。

与目标结构一致。

5.5修改数据功能测试

修改数据功能只能有教师进入系统后进行操作的功能,打开修改学生窗口后需要在文本框内填入学生信息进行修改。修改数据功能测试用例如表5-7所示。

表5-7修改数据功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

输入姓名、班级、学号、语文成绩、数学成绩、英语成绩后点击修改按钮。

下方表格数据修改一条。

与目标结构一致。

输入姓名、班级、学号、后点击修改按钮。

弹出输入错误信息窗口。

与目标结构一致。

输入姓名、班级、学号、语文成绩、数学成绩后点击修改按钮。

弹出输入错误信息窗口。

与目标结构一致。

输入姓名、语文成绩、数学成绩后点击修改按钮。

弹出输入错误信息窗口。

与目标结构一致。

文本框中什么也不输入后点击修改按钮

弹出输入错误信息窗口。

与目标结构一致。

输入的信息中学号在系统中不存在。

弹出输入错误信息窗口。

与目标结构一致。

点击返回按钮

增加数据窗口关闭,返回主窗口。

与目标结构一致。

5.6查询数据功能测试

查询学生成绩信息功能在学生和教师主窗口中都有该操作,不同的是教师的查询功能窗口打开后下方会有所有数据展示。查询数据功能测试用例如表5-8所示。

表5-8查询数据功能测试用例表

功能描述

教师登录

用例目的

验证教师登录功能

输入

目标结果

最终结果

输入学生学号点击查询按钮

下方表格显示一条。

与目标结构一致。

不输入学生学号点击查询按钮。

弹出输入错误信息窗口。

与目标结构一致。

输入数据库没有的学生学号点击查询按钮。

系统不做任何反应。

与目标结构一致。

点击返回按钮

增加数据窗口关闭,返回主窗口。

与目标结构一致。

猜你喜欢

转载自blog.csdn.net/weixin_67634317/article/details/131997707