基于Java的学生课程管理系统的设计和实现

软件工程王曦楠

  1. 要] 学生课程管理系统一直是学校高效组织管理办法信领域内的一个重要课题,特别随着当前教育领域内的深度变革,怎样才能让学生课程管理系统在教育机构教学的各方面展现出其对教育方面的功能优势是现在一个非常意义的研究课题。本次课题结合了结合学校现在正在使用的学生课程管理系统和对未来学生课程管理系统的发展进行广泛的研究和分析,在此基础上结合当前软件应用现状对软件系统进行新的创新和改进,利用所学MYSQL数据库,JAVA,SpringBoot框架,HTML,Thymeleaf模板引擎等知识开发一个学生课程管理系统软件。
  • 课程管理;MYSQL;SpringBoot;Thymeleaf

Design and implementation of student course

 management system based on Java

Software Engineering Major Wang Xinan

  1. the student curriculum management system has always been an important topic in the field of school efficient organization and management, especially with the current in-depth reform in the field of education, how to make the student curriculum management system show its functional advantages in all aspects of education is now a very significant research topic. This topic combines the school is now using the student curriculum management system and the development of the future student curriculum management system for extensive research and analysis, on this basis, combined with the current status of software application, the software system for new innovation and improvement, using the MySQL database, Java, springboot framework, HTML, thymeleaf template engine and other knowledge development A student course management system software.
  1. words: Course Management; MySQL; SpringBoot;Thymeleaf

目    录

1 绪论

1.1 课题背景

1.2 系统现状和发展

1.3 进销存管理系统发展现状

2 系统设计思想和技术介绍

2.1 设计思想

2.2 技术介绍

2.2.1 Spring框架

2.2.2 SpringMVC框架

2.2.3 Mybatis框架

2.2.4 SpringBoot框架

2.2.5 Shiro安全框架

2.2.6 Mysql数据库管理工具

2.2.7 Thymeleaf模板引擎

3 系统需求与分析

3.1 需求分析

3.2 可行性分析

3.2.1 技术可行性分析

3.2.2 实用性分析

4 系统数据库设计

4.1 数据库需求分析

4.2 数据库物理实现

4.3 数据库逻辑图

5 系统功能实现

5.1 登录模块

5.2 管理员模块

5.2.1 系统管理功能模块介绍

5.2.2 校建管理功能模块介绍

5.2.3 课程管理功能模块介绍

5.2.4 教师管理功能模块介绍

5.2.5 学生管理功能模块介绍

5.2.6 选课管理功能模块介绍

5.2.7 教评管理功能模块介绍

5.2.8 成绩管理功能模块介绍

5.2.9 校园新闻功能模块介绍

5.3 教师模块

5.4 学生模块

5.4.1 课程正选功能详细介绍

5.4.2 课程退课功能详细介绍

5.4.3 成绩管理界面详细介绍

5.4.4 网上教评界面详细介绍

5.4.5 个人资料界面详细介绍

结束语

参考文献

致谢

  1. 绪论

学生课程管理系统与学校各个方面息息相关,无论什么时代,人们都非常重视教育的方式方法和高效便捷。古代社会没有现代社会的科学技术,都是由当时的领导机构指定出一个统一的管理方法,一切都按照统一的规定来。随着时代的发展这一套管理办法已经不适应于现在的管理了,因为现在的学校比之前的多,比之前的大,管理起来也越来越麻烦,每个学校都是一个单独的集体,管理起来不一样,如果用统一的方法来管理根本不可行,于是每个学校单独制作高效有利的管理系统成为每个教育机构的刚需,限于社会条件人们无法解决这个问题。

  1. 课题背景

进入近现代以来,科学技术有了很大的发展,数据库技术,数字化技术,网络系统大规模应用技术,网络系统开发工具等等不断完善。数据库技术给数据的存储检索分析修改等提供了很大的方便,因此数据库技术以高使用率完美的应用在当前全球各个领域的各行各业。数字化技术和互联网技术也一样,在时代潮流的发展下越来越好,互联网技术和数据库技术的结合也给社会各行各业带来不一样的感官体验。尤其是嗅觉灵敏的教育领域,也感受到了互联网带来的方面和高效,于是关于高校方面的学生课程管理系统应运而生,但由于当时的技术条件比较落后,开发的系统功能不完善,功能单一,效果不好成为整个领域的弊端。随着技术的发展,技术人才的增长,以及开发学生课程管理系统的经验不断积累,适合大众而且功能多样化,按照需求定制化的学生课程管理系统也在这样的背景下应运而生。

  1. 系统现状和发展

随着计算机网络应用的逐渐普及,学生课程管理系统已经成为在校学生,老师,校园工作人员日常教学,成绩,排课,考试管理等的重要工具,并且给教育机构用户的日常工作,学习带来极大的便利,极大地节省了学生,老师在除学习以外的任何时间,同时减少这些事情的错误率,提高了学校内部信息的稳定和可管理性,而且方便学校对学生和老师相关信息的汇总和管理。而且现在有很多针对高校的学生课程管理软件,比如万方教务管理系统,云教务,智慧教育等等很多软件,这也说明了教育机构对该领域学生课程管理系统的需求很大,需求很广泛,同时也证明该领域有很大的不足,需要不断的更新改进以适应现代化发展的教育行业,给每个环境下的教育机构带去不同的用户体验,这也证明了该领域下学生课程管理系统的具有极好的发展前景。

  1. 进销存管理系统发展现状

如今,学生课程管理系统已经广泛的运用到高校日常教学,成绩,排课,考试管理等各种环境,它可以不用连接 Internet,直接在学校局域网内实现信息互通。还可以部署到公有云上,让使用人员不管何时何地都能高效的办理自己的业务,比如学生可以很方便的查询自己的课程信息,考试成绩,选课等,老师可以很方便的查询自己的课程安排,给学生打分等等,是现代化教育机构不可缺少的辅助工具[1]。我想这对于当今追求高效率,高便捷的教育行业来说,有非常重要的意义。

  1. 系统设计思想和技术介绍

    1. 设计思想

技术方面系统采用B/S架构,并将数据库和后台服务端以及前台展示页面部署到公有云上的形式以方便用户任何时间,任何地点高效率的办理自己的业务 [2]。数据库采用免费开源的mysql数据库以节省成本,后台服务器端采用SpringBoot框架进行快速搭建和运行,采用Maven管理依赖提升项目开发过程中规范性与高效性,采用MyBatis框架做持久层处理器,采用MVC的设计模式方便代码的阅读和编辑,采用shiro安全权限框架管理用户权限和维护系统安全[3]。

对于本学生课程管理系统,从产品角色支持方面来讲,将本系统的角色权限分为3类:管理员,教师和学生。并通过权限限定实现管理员管理学生,教师,课程等信息等操作。教师和学生可以管理自己的课程和成绩信息等操作。

  1. 技术介绍

2.2.1 Spring框架

Spring框架是由Pivotal团队开发的轻量级开发脚手架。通过注解对java对象进行管理提高开发的效率和质量和面向切面编程的能力,去繁从简,将大量重复的业务逻辑一个注解搞定,并且程序间的耦合度非常低,任何java应用都可以从中受益。

Spring的一个最大特点就是它是一个万金油似的框架,他可以和其他的任何框架结合起来使用,并对这些框架进行管理和配置,是当今SSH,SSM,SpringBoot等框架的基础。

2.2.2 SpringMVC框架

早期JAVA网络程序开发模式理论和实际层次很简单,所有的要实现的功能都在一个类中实现,没有层次,这样虽然很大的降低的代码的复用率和开发周期,但是程序之间的耦合度很高很高。而且对于程序开发人员来说,自身的技术栈不仅要会后端,还要会前端,前端和后端相互依赖夹杂,使程序的很难看懂实现了那些功能,不能进行有效的再次开发测试。所有这种开发方式虽然很简单,弊病也很重,因此这种代码逻辑方式被前后分离的MVC 模式取代,而MVC的核心是由Servlet组件实现的。来自前端的每一个HTTP请求发送到后台,经过解析后找到相应的方法,然后根据请求的参数和解析结果调用相应的实体类和分层实现获取需要的结果,结果返回后,前端JSP完成业务处理,这样的模式我们就称为 MVC 模式[7]。

随着时代的持续发展,上面的业务逻辑又不够用了,新的持久层数据处理和缓存数据处理成为新的技术发展瓶颈,为了解决这些问题和促进新技术的发展,一个新的MVC方案顺应时代的发展而出,这个新方案就是SpringMVC。

SpringMVC将各层次的代码模块化,接口化,隐藏功能的具体实现方案,并且实现了停过注解声明的方式解决以前遗留的问题,通过自动装载可以很简单的创建一个具体的实现,并完成业务逻辑,大大提高互联网系统的性能,并且结构松散,而且可以和跟它同一个团队出品的 Spring 完美的集成在一起,所以很快的成为当今最火热的视图管理框架。

Spring MVC是组件式的,它的内部有很多的组件,我们实现业务逻辑时需要用哪个就取用哪个组件。究其核心,其内部主要的有5大核心的组件,基本上每个项目都比用,分别是:控制前端请求进入的DispatcherServlet;负责前端请求控制接口和请求进入的控制器Controller;解析前端请求方法路径和参数信息,并根据这些HTTP协议携带的信息调用程序模型的映射型组件解析器HandlerMapping;负责代码实现业务逻辑,并完成逻辑调用和业务逻辑结果组合的模型控制器ModelAndView;最后就是将代码业务逻辑生成的结果返回给前端页面和管理项目中前端页面的ViewResolver。

SpringMVC的执行过程如下图2-1所示:

图2-1 SpringMVC分析图

2.2.3 Mybatis框架

mybatis是现在绝大多数java项目的必用框架,是当今最火热的半自动化的SQL语句模板引擎,在解决数据库范式带来的问题和提升数据库表扁平化的角度上起了很大的作用。在我的了解中,现在很多人摈弃数据库范式的关联关系,大量使用冗余数据,这就给半自动化的mybatis发展起了很大的发展作用。

mybatis是用来解决MVC中的持久数据库层问题的解决方案,它是一个组件,开发时我们也要以组件的方式去引用它,并且它可以被集成进入Spring管理,只要引入了它并一键开启,除了SQL外我们都不用管,但是SQL语句本身我们还是要自己来编撰的,所以mybatis是一个半自动的SQL语句处理框架,这给我们开发实现过程化中优化SQL语句,提升服务的整体性能提供了很大的帮助[6]。

2.2.4 SpringBoot框架

SpringBoot也是由Pivotal团全新开源的轻量级框架,通过简化配置来进一步简化了Spring应用的整个搭建和开发过程,另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题。

2.2.5 Shiro安全框架

Shiro给我们提供了一整套的请求过程角色面向系统安全的开源框架,功能强大,并且可以通过配置文件或者重写主要类的方式扩展它干净它的应用,非常灵活,我们可以用它处理系统中身份认证,授权,企业会话管理和加密的问题。

Shiro 视图在所有应用程序环境下实现这些目标——从最简单的命令行应用程序到最大的企业应用,不强制依赖其 他第三方框架,容器,或应用服务器。当然,该项目的目标是尽可能地融入到这些环境,但它能够在任何环境下立即可用,并且Shiro框架大大的掩盖了复杂安全校验复杂地方,露出一个干净而直观的API,来简化开发人员在使他们的应用程序安全上的努力。

2.2.6 Mysql数据库管理工具

Mysql是由Apache公司提供的一款开源的数据库管理系统,其功能非常强大,提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点,并且支持事务、视图、存储过程、触发器等。

在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩,通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。并且Mysql具有哼的安全性,它可以灵活和安全的权限与密码系统,允许基本主机的验证,连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。Mysql还有很大其他的优点,比如有很强大的内置函数,表空间容量大,开发成本低,适用性很广等等。所以我们本课题选择mysql作为数据库管理器[10]。

2.2.7 Thymeleaf模板引擎

Thymeleaf的主要目标是提供一个以优雅的高可维护型的方式创建模板,为了达到这个目的,他建立了自然模板的概念,以一种不影响模板设计原型的方式将逻辑注入到模板文件中,可以显著的减少设计和开发之间的沟通成本。

  1. 系统需求与分析

    1. 需求分析

本系统设计将用户角色权限分配为3种,分别是:管理员,教师和学生。按照各个角色权限和功能设计分配为具体的用户操作模块,具体需求分析如下图3-1所示。

图3-1 需求分析图

用户访问系统网络地址,服务器拦截用户访问请求,并交由shiro安全组件校验用户登录状态。若用户已经登录,直接进入主界面。若用户没有登录,服务器返回登录页面。

用户在登录页面输入自己的账号密码信息,点击登录按钮,前端将账号信息通过http协议上传到服务器,服务器查询数据库,并判断用户的角色权限,返回给用户相应结果。

若用户权限为管理员,服务器返回管理员操作界面。管理员用户可通过操作界面对学校组织架构,教师信息,学生信息,课程信息,教评问题等进行增删改查操作。并且管理员具有发布校园新闻功能,查看学生选课情况以及查看学生成绩和老师的教评成绩。

若用户权限为教师权限,服务器返回教师操作界面。教师用户可以通过自己教授的课程查看选自己课程的学生,可以给学生录入成绩。可以通过个人信息界面修改自己的个人信息。可以通过修改密码界面修改个人账号的密码信息。

若用户的角色为学生权限,服务器返回学生操作界面。用户可在网上选课正选处查看所有本专业待选课程并进行选课操作。如需退课,可以通过退课界面查看自己已经选修的课程并在该界面进行退课操作。可以在已修课程界面查询自己已经完结课程的成绩分数。可以在网上评教处对老师教学质量进行打分。可以通过个人信息界面修改自己的个人信息。可以通过修改密码界面修改个人账号的密码信息。

  1. 可行性分析

    1. 技术可行性分析

根据上述功能需求分析,本课题使用java作为本次课题落地技术实现的技术支撑。根据页面的动态效果和个人所学知识,采用jsp动态网页开发技术,JQuery以及bootstrap等前端开发技术作为前端页面展示效果的技术支撑。服务器后端采用当今比较火的Spring+SpringMVC+Mybatis框架作为主体框架,并结合shiro安全校验组件,servlet组件,druid组件等技术作为后端技术支撑。数据库选用免费开源易操作且功能完善的mysql数据库。采用tomcat服务器作为项目发布部署运行的服务器。

以上技术完整的搭建了一个从前端到后台在到数据库最后发布到服务器的项目。从技术层面上来分析,以上技术均是当前比较火热的前沿技术,而且技术成熟,用例很广,容易搭建,容易维护,所以在技术上本需求可行。

  1. 实用性分析

对于很多的教育机构,无论是大型的教育机构比如大学,技术学校等还是中小学的培训机构,都需求一个具有核心功能完善的学生课程管理系统。一个完善的学生课程管理系统给这些机构带来很大的办公高效性,极大的节省了一些事情上的时间成本。然而很多大型的学生课程管理系统很贵,而且有很多功能这些机构根本用不上,所以对于这些机构来讲,一个小而精悍,核心功能完善,成本不是很高的系统就成为了刚需,本系统给可以给这些机构带来整体的效率提升。就行上述功能分析的一样,无论从什么角色,本系统都能适应,而且开发成本低,实用性强,所以从经济实用性角度来说,本系统可行。

  1. 系统数据库设计

    1. 数据库需求分析

针对上述需求分析,设计系统数据库主要需求表如下:

sys_user用户表,用以存放系统各角色用户的账号信息。

teacher 教师,用来存放使用机构教师用户的信息。

student 学生表,用来存放使用机构的学生用户信息。

department院系信息表,用来存放使用机构的院系信息。

major专业信息表,用来存放使用机构的专业信息。

grade年级信息表,用来存放使用机构的年级信息。

classinfo班级信息表,用来存放使用机构的班级信息。

course 课程表,用来存放使用机构管理员添加的课程信息。

stu_course选课记录表,用来存放使用机构学生的选课信息。

sys_role 权限表,用来存放区分用户角色权限的权限信息。

  1. 数据库物理实现

用户账户信息如下表4-1所示:

表4-1 sys_user用户表

序号

列名

字段类型

长度

允许为空

备注

1

create_by

varchar

36

YES

创建者

2

create_date

datetime

0

YES

创建时间

3

del_flag

tinyint

1

NO

是否删除

4

email

varchar

200

YES

邮箱地址

5

icon

varchar

2000

YES

图标

6

id

varchar

36

NO

用户ID

7

is_admin

tinyint

1

YES

是否为管理员

8

locked

tinyint

1

YES

是否锁定

9

login_name

varchar

36

YES

登录名

10

nick_name

varchar

40

YES

昵称

11

password

varchar

40

YES

密码

12

remarks

varchar

255

YES

备注

13

salt

varchar

40

YES

shiro加密

14

tel

varchar

11

YES

手机号码

15

update_by

varchar

36

YES

更新者

16

update_date

datetime

0

YES

更新时间

教师信息表下表4-2所示:

表4-2 teacher 教师表

序号

数据类型

字段类型

长度

允许为空

备注

1

tid

int

11

NO

唯一标识

2

tchid

varchar

20

NO

唯一标识

3

tname

varchar

20

NO

教师名称

4

tgender

varchar

20

NO

教师性别

5

tbirthday

date

0

NO

教师生日

6

pid

int

11

NO

唯一标识

7

tnation

varchar

50

NO

民族

8

tcardid

varchar

50

NO

身份证号码

9

tphone

varchar

50

NO

手机号

10

taddress

varchar

200

NO

家庭住址

11

entertime

date

0

NO

入职日期

12

leavetime

date

0

YES

离职时间

13

tchstate

int

11

NO

状态

14

is_del

int

11

NO

删除标志

学生信息表下表4-3所示:

表4-3 student 学生表

序号

数据类型

字段类型

长度

允许为空

备注

1

sid

int

11

NO

唯一标识

2

stuid

varchar

20

NO

学号

3

sname

varchar

20

NO

学生姓名

4

sgender

varchar

20

NO

学生性别

5

sbirthday

date

0

NO

学生生日

6

pid

int

11

NO

唯一标识

7

snation

varchar

50

NO

民族

8

scardid

varchar

50

NO

身份证号码

9

sphone

varchar

50

NO

手机号

10

saddress

varchar

200

NO

家庭住址

11

entertime

date

0

YES

入校日期

12

leavetime

date

0

NO\

离校日期

13

stustate

int

11

NO

状态

14

classid

int

11

NO

班级唯一标识

15

is_del

int

11

NO

删除标志

学校院系表如下表4-4所示:

表4-4 department院系表

序号

数据类型

字段类型

长度

允许为空

备注

1

did

int

11

NO

唯一标识

2

dname

varchar

50

NO

学院名称

3

dcount

int

11

NO

排序

4

is_del

int

11

NO

删除标志

学校专业表下表4-5所示:

表4-5 major 专业表

序号

数据类型

字段类型

长度

允许为空

备注

1

mid

int

11

NO

唯一标识

2

mname

varchar

50

NO

专业名称

3

mcount

int

11

NO

排序

4

did

int

11

NO

学院id

5

is_del

int

11

NO

删除标志

学校年级表下表4-6所示:

表4-6 grade 年级表

序号

数据类型

字段类型

长度

允许为空

备注

1

gid

int

11

NO

唯一标识

2

gname

varchar

20

NO

年级名称

3

gcount

int

5

NO

排序

4

mid

int

11

NO

专业id

5

is_del

int

11

NO

删除标志

学校班级表如下表4-7所示:

表4-7 classinfo 班级表

序号

数据类型

字段类型

长度

允许为空

备注

1

classid

int

11

NO

唯一标识

2

classname

varchar

50

NO

班级名称

3

begintime

date

0

YES

开班时间

4

endtime

date

0

YES

停班时间

5

ccount

int

11

NO

排序

6

gid

int

11

NO

年级id

7

is_del

int

11

NO

删除标志

学校课目表如下表4-8所示:

表4-8 course 课目表

序号

数据类型

字段类型

长度

允许为空

备注

1

cid

int

11

NO

唯一标识

2

cname

varchar

200

NO

课程名称

3

ccredit

decimal

9

NO

学分

4

cperiod

decimal

9

NO

学时

5

cstate

int

11

NO

状态

6

cselcount

int

11

NO

排序

7

cmaxcount

int

11

NO

最多选课人数

8

studytype

varchar

10

NO

课程类型

9

ctid

int

11

NO

教师id

10

mid

int

11

NO

专业id

11

is_del

int

11

NO

删除标志

学校课目表如下表4-9所示:

表4-9 stu_course选课表

序号

数据类型

字段类型

长度

允许为空

备注

1

scid

int

11

NO

唯一标识

2

sid

int

11

NO

学生id

3

cid

int

11

NO

课目id

4

is_del

int

11

NO

删除标志

角色权限表如下表4-10所示:

表4-10 sys_role 选课表

序号

数据类型

字段类型

长度

允许为空

备注

1

id

varchar

36

NO

唯一标识

2

name

varchar

40

YES

角色名称

3

create_date

datetime

0

YES

创建日期

4

create_by

varchar

36

YES

创建者

5

update_date

datetime

0

YES

更新日期

6

update_by

varchar

36

YES

更新者

7

remarks

varchar

255

YES

备注

8

del_flag

tinyint

2

YES

删除标志

  1. 数据库逻辑图

基于以上数据库表的字段设计,安装mysql数据库设计三范式的要求,将各个数据库表通过主外键管理起来,完成数据库的约束条件和调整数据库一对一和一对多的关系,具体表现如下图4-1所示。

图4-1 数据库逻辑图

  1. 系统功能实现

根据系统需求分析系统分为4个大的模块,这4个模块分别是:登录模块,管理员模块,教师模块和学生模块。

  1. 登录模块

登录模块具体流程如下图5-1所示:

图5-1 登录模块流程

用户在PC端浏览器上输入网络地址,服务器拦截到用户访问后检测用户访问连接携带的session信息。若用户没有登录,session为空,服务器返回给用户登录界面。若用户携带有session信息,并和服务器存储的session值一样,服务器返回给用户指定界面。注意session是有存活时间到的。

用户获取到服务端返回的登录界面后,在登录界面输入自己的账号信息,点击登录按钮发送post请求到后台,经由shiro安全校验后返回前端页面。

登录界面如下图5-2所示:

图5-2 前端登录页面

  1. 管理员模块

管理员模块具体流程如下图5-3所示:

图5-3 管理员模块流程图

如图5-3所示,管理员登录成功后服务器转发路径信息到管理员主界面,管理员可以执行选课管理、教评管理、校建管理、教师管理、学生管理、课程管理、成绩管理、校园新闻、系统管理等功能。

  1. 系统管理功能模块介绍

系统管理包括两部分:权限管理,用户管理。权限管理作用:统一管理系统菜单,便于划分角色权限。系统菜单可添加多级,前端页面展示采用树结构进行展示,层次分明,利于查看。界面显示效果如下图5-4所示:

图5-4 权限管理界面

用户管理可增删改查教师、学生、管理员三种角色的后台管理人员。界面显示效果如下图5-5所示:

图5-5 用户管理界面

  1. 校建管理功能模块介绍

校建管理流程:创建系部 → 创建专业 → 创建年级 → 创建班级

学校等机构初次使用该系统时,需使用管理员账号依照该流程完善组织架构后方可添加课程,教师及学生等数据。

系部管理:院系的增删改查,展示信息有系部编号,系部名称,系部人数。具体界面如图5-6所示:

图5-6 系部管理界面

专业管理:专业的增删改查,展示信息有专业编号,专业名称,所属系部,专业人数。具体界面如图5-7所示:

图5-7 专业管理界面

年级管理:年级的增删改查,展示信息有年级编号,年级名称,所属专业,所属系部,年级人数。具体界面如图5-8所示:

图5-8 年级管理界面

班级管理:班级的增删改查,展示信息有班级编号,班级名称,所属年级,所属专业,所属系部,班级人数。具体界面如图5-9所示:

图5-9 班级管理界面

  1. 课程管理功能模块介绍

管理员用户完善组织架构后,可进入课程管理中添加各专业科目,科目分为三种类型:专业基础课、公共课、任选课。添加课程时,需录入本课程的学时、学分及最大选课人数等数据。课程管理界面如图5-10所示:

图5-10 课程管理界面

  1. 教师管理功能模块介绍

教师管理模块流程:录入教师 → 教师授课管理

管理员录入教师信息时需要录入教师姓名,政治面貌,汉族,身份证号,手机号等信息。其中对身份证号与手机号进行了格式校验,如果格式不正确则不能录入成功。教师录入成功后在教师信息查询中显示教师工号即教师登录账号,密码为教师身份证号后6位。教师录入界面如图5-11所示:

图5-11 教师录入界面

教师录入后,进入教师授课管理,点击选课选择系别、专业、年级、班级、课目信息,提交后该教师绑定该课程。教师选课界面如图5-12所示:

图5-12 教师选课界面

  1. 学生管理功能模块介绍

管理员录入学生信息时需要填写基本信息及入班信息。基本信息包括学生姓名,政治面貌,汉族,身份证号,手机号等;入班信息包括系部,专业,年级,班级。其中对身份证号与手机号进行了格式校验,如果格式不正确则不能录入成功。学生录入成功后在学生信息查询中显示学生学号即学生登录账号,密码为学生身份证号后6位。学生录入界面如图5-13所示:

图5-13 学生录入界面

管理员可在学生信息查询处修改学生信息及对学生进行退学处理,退学后的学生信息可在退学信息中查看。

  1. 选课管理功能模块介绍

学生在学生选课系统选课后,管理员可在选课管理模块进行查看,如果学生错选或误选,管理员可进行强制退课及换课。选课管理界面如图5-14所示:

图5-14 选课管理界面

  1. 教评管理功能模块介绍

管理员可进入教评管理模块添加教评问题,汇总后的教评问题会发布到学生端展示。学生可根据管理员发布的教评问题对各科教师进行评分。每个教师将会得到一个最终分及平均分供学校参考。教评管理界面如图5-15所示:

图5-15教评管理界面

  1. 成绩管理功能模块介绍

成绩管理分为两部分:教师成绩和学生成绩。教师成绩显示每学期教师的教评得分,学生成绩显示每学期各科成绩,学分等信息。学生成绩界面如图5-16所示:

图5-16学生成绩界面

  1. 校园新闻功能模块介绍

管理员可在校园新闻发布新闻模块,发布学校时事,通知公告等。发布后将会在登录界面展示,便于全体师生查阅。发布新闻界面如图5-17所示:

图5-17校园新闻界面

  1. 教师模块

教师模块具体功能如下图5-18所示:

图5-18 教师模块功能图

如图13所示,教师登录成功后服务器转发路径信息到教师端主界面,教师端分为4个功能模块:学生管理,成绩管理,个人资料,修改密码。教师可在成绩管理中录入学生平时成绩及考试成绩,成绩录入界面如下图5-19所示:

图5-19成绩录入界面

在学生管理模块中教师可以根据班级、年级、学生姓名进行学生成绩查询,可以对学生成绩进行修改。学生成绩界面如下图5-20所示:

图5-20 成绩管理页面

教师点击右上角个人资料,进入到个人资料展示和修改界面,教师可以在本界面修改和完善个人信息,昵称、手机号码、邮箱、自我介绍等用户数据,并通过ajax提交到后台保存到数据中。教师个人资料界面如下图5-21所示:

5-21个人资料页面

  1. 学生模块

学生模块具体功能如下图5-22所示:

图5-22学生模块功能图

如图5-22所示,学生用户登录成功后服务器转发路径信息到学生端主界面。学生端分为5个功能模块:网上选课,网上教评管理,成绩管理,个人资料,修改密码。

  1. 课程正选功能详细介绍

网上选课中正选中显示该学生可选所有课程信息,课程信息界面如下图5-23所示:

图5-23课程正选信息页面

如上图所示,点击添加按钮,执行学生选课操作。若学生已经选过该课程,提示学生已经选过该课程。若没有,将该学生选课记录保存到数据库中持久化保存。

点击打印按钮,打印所有课程信息,打印按钮执行效果页面这里不加以展示。

点击导出按钮,导出所有课程信息,导出格式有Excel及Csv文件两种。

  1. 课程退课功能详细介绍

点击左侧菜单网上选课-退课,进入已选但还没有修完的课程信息界面。界面效果如下图5-24所示:

图5-24课程退选信息页面

如上图所示,点击退课按钮,执行学生退课操作。点击打印按钮,打印已经选择的所有课程信息。点击导出按钮,导出所有课程信息,导出格式有Excel及Csv文件两种。

  1. 成绩管理界面详细介绍

点击左侧菜单成绩管理-成绩查询,进入已经修完并且经过评分的课程信息界面。已修课程页面包含了学生已经被教师评分的课程信息,具体信息包含了课程名称,学分,课程类别和成绩信息及已获得总学分等。具体界面效果如下图5-25所示:

图5-25 成绩管理信息页面

  1. 网上教评界面详细介绍

点击左侧菜单网上教评,展示学生各科教课老师信息,课程名称等。点击立即评价对老师本学年教学质量进行评价。具体界面效果如下图5-26所示:

图5-26网上评教信息页面

  1. 个人资料界面详细介绍

学生点击右上角个人资料菜单,进入到个人资料展示和修改界面,学生可以在本界面修改和完善个人信息,昵称、手机号码、邮箱、自我介绍等用户数据,并通过ajax提交到后台保存到数据中。学生个人资料界面如下图5-27所示:

图5--27个人资料页面

结束语

本文介绍了基于java的学生课程管理系统,采用目前市场上流行的springboot框架进行搭建,采用B/S架构对系统进行设计,采用shiro安全校验框架对系统的整体安全性能进行提升,使系统更加适用于需求明确且不复杂的教育机构。总体上来说,系统的结构还是比较完善的,各个角色的权限功能简洁方便,没有用不上的功能,但是还是有好多不尽人意的地方,本系统还是可以继续扩展增加功能的。比如说加上新闻,文档库,图书馆,网课等,介于个人能力以及设计的时间有限,本设计仅实现适用于教育机构学生管理系统的核心功能,这些扩展功能就不一一的加入进来了。

通过本项目的开发,自己从中也学习到了java开发很多的知识,比如说springboot框架的搭建,数据库的设计,开发方案的确定,需求的分析等等这些问题,对自己的技术提升有很大的帮助。同时我在开发过程中也遇到很多的难题,比如说mybatis编写xml文件完成dao层的映射,手动编写sql语句,优化sql,设计数据库之间的关联等,通过解决这些问题我也意识到自己的能力点,然后有针对性的加强这些方面的学习。

希望自己以后能够做出更加完善的项目,一步步的解决这些问题,为教育行业高效率的处理这些业务逻辑尽出自己的一份力。

参考文献

  1. 胡强.MySQL数据库常见问题分析与研究[J].电脑编程技巧与维护,2019(12):91-92.
  2. 朱喜福. JAVA程序设计(第2版)[M]. 北京:人民邮电出版社, 2007.
  3. Bruce Eckel 著. Thinking In Java[M]. Upper Saddle River, Prentice Hall,2006.
  4. 郑朝霞.谈计算机网络安全技术核心思路[J].计算机产品与流通,2019(12):47.
  5. 刘中兵. 开发者突击--JAVA WEB主流框架整合开发J2EE + STRUTS +HIBERNATE[M]. 北京:电子工业出版社, 2008.
  6. 赵国文,夏平平.基于JavaEE的人事管理系统的设计与实现[J].现代工业经济和信息化,2019,9(11):88-89.
  7. 黄秀娟.基于SpringMVC+Hibernate+Extjs框架的Web系统应用研究[J].电脑知识与技术,2015 (16):63-65.
  8. 王水,张晓民. 软件工程素质导论[M]. 郑州:河南科学技术出版社,2011
  9. 郑人杰, 殷人昆, 陶永雷 著.实用软件工程(第2 版)[M].北京:清华大学出版社,1997:8-9.
  10. 郭东恩. 数据库原理与应用[M]. 北京:科学出版社, 2013.
  11. 岳青玲.Java面向对象编程的三大特性[J/OL].电子技术与软件工程,2019(24):239-240
  12. 卞世晖, 李龙澍, 陈圣兵,等. 基于AOP理念的Struts2拦截器的研究与应用[J]. 电子设计工程, 2010, 18(1):8-9.
  13. 檀元俊.Java消息通信研究[J].电脑编程技巧与维护,2019(12):40-41+61.
  14. James Goodwill 著. Pure Java Server Pages[M].Indianapolis Ind,Sams, 2000.

致谢

时间过得确实快,四年一下就过去了,好多时候我甚至感觉自己还是一个刚上大学的学生。大学四年里,经历了很多的人和事,很多人对我都很好,教我做人做事的方法和原则,很感谢他们帮助了我成长。很感谢我的老师们,是你们教会了我学习的本领,让我学习到很多的知识。从选题至今,碰到过很多的难点和疑问,经过老师的指导以及同事的帮助,我完成了这次毕业设计。

不管怎么说吧,大学四年匆匆过去了,留下的不仅仅是宝贵的知识财富还有很多美好的回忆。和老师及同学们一起拼搏的日子,我永远都不能忘怀。衷心感谢学院的各位老师们,谢谢大学四年有您们的关照,你们辛苦了!

基于Java的学生课程管理系统的设计和实现相关推荐

  1. java成绩管理系统论文总结_毕业论文基于java的学生成绩管理系统.doc

    毕业论文基于java的学生成绩管理系统 PAGE PAGE 109 课 程 设 计 论 文 基于JAVA的学生成绩管理系统的设计与实现 THE DESIGN AND REALIZATION OF TH ...

  2. java做一个客房管理系统定制_开题报告基于Java的酒店客房管理系统的设计与实现.doc...

    开题报告基于Java的酒店客房管理系统的设计与实现 毕业设计开题报告 课 题 名 称:基于Java的酒店客房管理系统的 设计与实现 姓 名: 班 级: 指 导 教 师: 所 在 系 部: 专 业 名 ...

  3. 基于java的高校运动会管理系统的设计与实现--毕业论文(可仅作参考)

    基于java的高校运动会管理系统的设计与实现–毕业论文(可仅作参考) 可以仅作参考宝子们 ,这个版本包含代码哦~在资源里面自己找代码包 论文word版本我会上传到资源里面供宝子看 文章目录 基于jav ...

  4. 基于SSM的学生考勤管理系统的设计与实现

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  5. 基于Java EE平台项目管理系统的设计与实现(论文+PPT+源码)

    分类号_______________ 密级________________ UDC _______________ 学号 毕业设计(论文) 论文题目 基于Java EE平台项目管理系统的设计与实现 T ...

  6. 基于JAVA高校共享机房管理系统的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA高校共享机房管理系统的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA高校共享机房管理系统的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈 ...

  7. 基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+ ...

  8. 基于JAVA企业进销管理系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA企业进销管理系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA企业进销管理系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 项目架构:B/S架构 ...

  9. 基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. YUM(Yellow gog Updater Modifie)服务器的配置
  2. Yii自定义验证规则
  3. 数据结构:复杂度分析以及数据结构整体概览
  4. 重新理解微服务--转
  5. Java Review - 并发编程_原子操作类LongAdder LongAccumulator剖析
  6. Java并发编程(1):可重入内置锁
  7. android 转发短信
  8. django url 生效_Django基础知识
  9. 数组填充php,php数组入门教程之数组填充
  10. canoe知识点查阅
  11. 【数据库系统设计】DBMS的数据库保护
  12. HTML标记语言——表单的详细使用说明
  13. tcping命令详解
  14. 动软代码生成器连不上高版本(8.0+)的解决方法
  15. GEE开发之Landsat8_SR计算NDVI和数据分析
  16. Oracle如何卸载、清理干净
  17. 网站服务器后缀名,服务器域名,域名后缀
  18. boost电路输出电流公式_Boost电路的参数计算及仿真
  19. 如何取悦自己或者增加自己幸福感的方式
  20. STM32F103调试出现 while((RCC-CR RCC_CR_PLL2RDY) == 0) 死循环。

热门文章

  1. 设计模式6--适配器模式
  2. php字符串转数组函数,PHP字符串转数组和数组转字符串函数讲解
  3. piu.tw login.php,2020NPUCTF公开赛 WEB部分Writeup
  4. 商贸企业节税大全!如何通过税收政策减轻税负?
  5. 【创利树】电商的用户流失率是80%,你的用户流失率是多少呢?
  6. RT Thread Free Modbus移植问题整理
  7. Elasticsearch - 是什么,以及应用场景
  8. 时差法超声波明渠流量计
  9. 520|用Python绘制自定义照片墙
  10. ESP8266开发 --- 重新烧录固件DownLoadTool参数解释