基于Java学生在线作业管理系统设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Java学生在线作业管理系统设计与实现
摘要:通过调查不同高校的作业管理方式,发现作业管理是一件非常不容易的事情。

若老师在PC端发布作业,学生在网上答题,可大大提高办公效率。

本文设计一个在线作业管理系统,通过JSP、Struts2、Spring、Hibernate、MySQL等实现。

该系统具备了多种功能,如教师可以设置要发布的作业,随时在线查看学生做作业的情况等。

关键词:作业管理;Java;JSP;Struts2;Spring;Hibernate;MySQL
Abstract: By investigating the operation management methods of different universities, it is found that homework management is a very difficult task. If the teacher releases homework at the PC end, the student can answer questions online, which will greatly improve the efficiency of the office. This paper designs an online job management system through JSP, Struts2, Spring, Hibernate, MySQL and so on. The system has many functions, such as teachers can set jobs to be published, and check students' homework at any time.
Key words: Homework Management; Java; JSP; Struts2; Spring; Hibernate; MySQL
目录
摘要 (I)
A BSTRACT (I)
目录 (II)
1绪论 (1)
1.1研究背景 (1)
1.2研究现状 (1)
1.3研究目的 (2)
1.4研究内容 (2)
1.5研究意义 (2)
1.6相关技术 (3)
2概要设计 (3)
2.1项目功能需求 (3)
2.1.1 管理员端的主要功能要求 (3)
2.1.2 教师端的主要功能要求 (4)
2.1.3 学生端的主要功能要求 (4)
2.1.4 决定可行性的主要因素 (4)
2.2性能分析 (5)
2.2.1 项目性能需求 (5)
2.2.2 主要功能要求 (5)
2.3项目技术需求 (5)
2.4项目数据需求 (5)
2.5需求分析 (6)
2.5.1 设计目标 (6)
2.5.2 开发意图 (6)
2.5.3 功能需求分析 (7)
2.5.4 小结 (7)
3详细设计 (7)
3.1处理流程和数据流程 (7)
3.2系统业务流程 (10)
3.3功能模块的分析与设计 (11)
3.4项目页面展示 (12)
4测试与运行 (19)
4.1测试范围 (19)
4.2测试计划 (19)
4.3测试及运行结果 (20)
5总结 (20)
5.1工作总结 (20)
5.2不足及尚待解决的问题 (21)
参考文献 (21)
附录 (22)
附录A:项目源代码 (22)
1 绪论
1.1 研究背景
随着信息技术的迅速发展、电脑教学与远程网络教学的普及,给传统的教学方式带来了重大的革命,也给教学改革的实施者们提出了很多新的课题[1]。

发现很多高校觉得作业管理是一件非常不容易的事情。

对于飞速发展的21世纪而言,用作业管理系统来规范作业管理是非常有效率的,这不仅提高学校的管理水平,优化资源,实现效益的最大化[2]。

经过研究表明,不同的学校有不同的作业管理方法,比如:
第一类,老师布置作业,学生把作业写在作业纸上,在下次课或者规定时间内把作业交给老师。

这种方式的局限性在于学生交给老师的作业纸不便于长期保管,且学生太多使得作业收集难度系数较大,老师也不方便批改,这是一种较为传统的作业管理形式。

第二类,老师通过建立的qq群或者微信群把作业发在里面,学生自行下载,学生把电子档的作业通过邮箱的形式交给老师。

这种方式的局限性在于老师难以统计学生提交作业的情况,和第一类一样也不方便批改。

第三类,学生将作业保存在u盘内或者百度云等其他设备上,上课的时候将作业提交给老师。

这种方式的局限性在于成本较高,容易丢失,u盘容易忘记携带,百度云有空间限制,老师也不方便管理。

就以上这些问题,虽然有些学校用Android、C语言编写很多作业管理软件,但还是有很大一部分学校用最原始的方法进行作业管理。

作业管理软件能实现真正的无纸化办公,也能减轻老师的工作压力,使得老师的办公效率大大的提高。

所以,在线作业管理系统是具有一定研究价值的。

1.2 研究现状
本系统用Struts2+Spring+Hibernate+easyUI等框架。

Struts从2000年中旬发展至今,它的前一个版本Struts1是一个非常成熟的框架,从任何一个方面来说都是
比较可靠的,使用的人数也比较多,开发人群非常的丰富,大部分企业都用过这个框架。

但是随着技术的进步,Struts1的功能已经不能满足开发人员的需求,所以衍生出第二个版本Struts2。

Struts2的请求流程如下:前端页面发送请求,请求将会被web.xml拦截,调用FilterDispatcher控制器,FilterDispatcher根据前端发送的请求调用Action,找到对应Action的执行方法,根据Action返回的Result找到对应的JSP渲染给用户,整个Struts2的请求流程结束。

个人认为Struts2的最大好处是运用了POJO,使得后台接收参数比较方便,因为Struts2的每个Action都会实例化一次,所以不会存在线程方面的安全问题。

Spring是一个轻量级控制反转(IOC)和面向切面编程(AOP)的容器框架[3]。

IOC 和AOP实现了各个程序之间的低耦合高内聚。

Hibernate是一个对象关系映射框架,Hibernate封装了一套增删改查语句,也支持开发者自己写sql语句。

Java程序员可以随便的使用对象编程思维来操纵数据库[4]。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,它完成数据的持久化[5]。

前端框架easyUI可以帮助开发者写前端样式。

1.3 研究目的
在线作业管理软件实现真正的无纸化办公,老师在网上分配作业,学生在网上答题,将会大大减轻老师们的工作压力,使得老师的办公效率大大的提高。

1.4 研究内容
本论文以所设计的学生在线作业管理系统为背景,描述了整个系统的概要设计和详细设计。

首先对该系统研究背景进行简要的分析与概述为什么要研究这个系统,该系统所用到的技术的简要概述,分析研究本系统的意义,再从概要设计到详细设计再到测试与运行,选择合适的开发语言工具对其进行代码实现。

1.5 研究意义
在快速发展的科技上减轻老师管理作业的压力,作业批改的复杂性,减轻老师的负担,提高老师的工作效率,以便有更多的精力放在学生身上。

学生在线作业管理能够及时的反应学生学习的情况和老师发布作业的质量,老师及时了解学生知识掌握情况,以便对课程做出及时的更改,及时提醒学生查漏补缺[6]。

提高学生的学习能力,这种新兴的做题方式能提高学生积极性,学生在学习中少了很多不必要的步骤,比如抄写题目。

老师、学生、家长三者之间交流,家长能随时随地查看孩子的作业完成情况和做作业的效率,能避免孩子谎报学习情况。

1.6 相关技术
目前,开发本系统的主要技术有Java、easyUI、SSH(Spring、Hibernate、struts2)技术+MySQL数据库。

首先Java是本系统的开发基础,在此基础上结合easyUI框架写前端页面,Spring的依赖注入和控制反转,Hibernate主要和数据连接进行增删改查的操作,MySQL数据库用于存储数据。

Entity用于存放项目的实体类,主要是用于存储和管理系统内部的一些信息,和数据库有着密切的关系,实体中的每个字段对应数据库表中的字段。

Action表示业务处理层,前台JSP页面通过xml 文件调用Action层的方法实现对应的功能,Action层的方法会调用Service层的方法。

Service业务逻辑层,里面包括接口和对应的实现类,其实现类主要是调用Dao 层的方法[7]。

Dao数据访问层,里面包括接口和对应的实现类,其实现类主要是一些增删改查的语句。

2 概要设计
2.1 项目功能需求
学生在线作业管理系统主要是为学生提供在线作业平台,主要分为管理员端、教师端、学生端三个部分的功能[8]。

2.1.1 管理员端的主要功能要求
1、登录功能,根据权限进入管理员相应页面的功能
2、用户、角色、班级管理(新增、修改、删除、取消、查询)功能
3、课程、菜单管理(新增、修改、删除、取消)功能
4、站内消息(查看详情、取消)功能
5、修改个人资料功能
2.1.2 教师端的主要功能要求
1、登录功能,根据权限进入教师相应页面的功能
2、作业题、作业管理(取消、查询)功能
3、课程、菜单管理(新增、修改、删除、取消)功能
4、作业安排(新增、修改、删除、取消、查询)功能
5、作业记录(查询)功能
6、站内消息(查看详情、取消)功能
2.1.3 学生端的主要功能要求
1、登录功能,根据权限进入学生相应页面的功能
2、查看作业记录(立即做作业)功能
3、站内消息(查看详情、取消)功能
4、学生修改个人资料的功能
2.1.4 决定可行性的主要因素
MySQL作为本系统的数据库。

此数据库是一种开源的代码类型的关系型数据库系统,这是一款任何人都可以使用的数据库,一般用结构化查询语言,它的开发速度、可靠性以及适应性等都非常好,所以运用的人比较多。

整个系统属于一个规模比较中小的MIS(管理信息)系统。

虽然整个系统的关系非常复杂,也有很多不确定因素,但是单从技术层面来看,还是属于对数据库的操作,基本上都是对数据库的增删改查,其中包含着一小部分的逻辑,所以,单从数据库的操作来看,不会存在太大的技术问题。

系统操作非常方便,所有操作都是直接的操作方式,基本没有什么逻辑,一般点几个按钮就会实现功能。

综上,本系统不管是从技术可行性上还是操作可行性上,都是可行的。

2.2 性能分析
2.2.1 项目性能需求
实用性:为教师收集作业、批改作业和学生完成、提交作业提供了方便,有效的进行了作业的管理,提高了工作效率。

操作简单:此系统操作非常简单,一般只要会用使用电脑,无论是教师还是学生都没太高的技术要求,尽量的简单化。

技术先进:本系统采用比较先进的开发技术,利用eclipse开发工具和先进的框架无论是技术还是功能都是比较先进的。

安装简便:只用在浏览器地址栏输入地址打开页面便可以使用,在哪里都可以方便的提交作业,发布作业、查看完成作业。

适应性:能广泛应用于不同类型的学校,系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用[9]。

2.2.2 主要功能要求
主要功能:老师在网上添加作业题并设置答案、将作业分配给学生、查看学生作业的完成情况。

学生网上做作业并提交作业,提交作业后可以查看成绩及做作业的情况。

安全与保密要求:客户端要求用户必须输入账号和密码,只有账号密码匹配成功才能登陆系统。

2.3 项目技术需求
开发本系统的主要技术有JAVA、easyUI、SSH(Spring、Hibernate、struts2)技术+MySQL数据库。

2.4 项目数据需求
下面将列出管理系统中的几个重要数据库表。

表2.1 用户表
表2.2 角色表
表2.3 班级表
2.5 需求分析
2.5.1 设计目标
设计一个PC端的学生在线作业管理系统,可以适用于大部分学校。

系统包括教师发布作业、学生做作业等信息,还包括学生、教师的基本信息,该系统的另一个作用是可以方便管理学生、教师信息的记录。

2.5.2 开发意图
作业管理系统是比较实用的,老师可以在网上发布作业,学生在网上做作业并提交,老师查看作业完成情况。

减轻老师们的工作压力,提高办公效率。

2.5.3 功能需求分析
本系统主要完成以下功能。

1、基本信息:管理员、教师和学生的信息录入。

2、用户管理:将学生学号、教师的工号、密码、联系方式等存入数据库。

3、权限管理:用户根据不同的权限拥有不同的功能。

4、系统维护:数据整理、密码管理、数据清除等。

5、系统管理员,方便对某些数据及时管理(增删改查)。

2.5.4小结
从经济方面,项目所带来的长远利益远远大于项目的开发成本,表明项目具有经济价值;从技术方面,项目开发所使用的工具载体都能够实现系统所需要的功能,表明项目是能够实现的;从用户方面,在不掌握任何专业知识的前提下,可以方便快速的上手,表明项目是具有广泛使用人群的,所以从可行性分析来看项目是可行的。

3 详细设计
3.1 处理流程和数据流程
下面将使用面向数据流的方法对学生在线作业管理系统的处理流程进行分析。

其数据库处理流程如图3-1。

图3-1 数据库处理流程图其组织结构图3-2。

图3-2 组织结构图
用户表实体信息图,如图3-3。

图3-3 用户实体信息图角色表实体信息图如图3-4。

图3-4 角色表实体信息图菜单表实体信息图如图3-5。

图3-5 菜单表实体信息图
作业题表实体信息图如图3-6。

图3-6 作业题表实体信息图
作业表实体信息图如图3-7。

图3-7 作业表实体信息图
完成了上面的流程图之后将进行数据库的设计,数据库选用MySQL。

3.2 系统业务流程
系统的整个业务流程如图3-8。

图3-8 系统业务流程图
3.3 功能模块的分析与设计
教师用户模块功能设计如下:
1、作业题管理:老师点击新增,弹出新增作业页面,老师用过输入题目,选择文件框上传相应作业文档,作业的题型是什么,对应的答案、所属课程、难度、分析、关键词、备注,填完这些内容点击新增,生成作业题。

2、作业管理:分页显示所有的作业,每份作业的左边都有复选框,老师可以通过选中复选框进行删除、修改、作业预览、重新生成、取消、新增,点击会跳到相应的功能页面,点击删除超链接时,会提示教师,是否删除,点击确定后将删除该份作业。

3、作业安排:点击作业安排后页面会显示代做作业时间段、上课教师、待做作业名称、状态以及新增、删除、修改、取消按钮,教师可以点击新增按钮进行作业安排,点击新增按钮后会弹出待做作业安排添加页面,里面包括开始时间、结束时间、上课教室、待做作业、发送给、状态、备注等信息,完善这些信息后就可以添加作业安排。

4、作业记录:教师只用点击作业记录便可以查看学生做作业的情况,在该页面有学生的名称、得分数、作业名称、总分数、开始时间、提交时间、是否通过。

学生端用户模块功能设计如下:
1、查看待做作业:学生点击查看待做作业,页面显示待做的作业,选择待做的作业,点击进行做作业便可进入做作业页面。

2、查看作业记录:学生点击查看作业记录,可以看到做过的作业名称、开始时间、提交时间、总分数、得分数、是否通过等记录。

管理员端用户模块功能设计如下:
1、用户管理:管理员点击用户管理,将显示所有的用户信息。

管理员可以管理所有的用户。

2、角色管理:点击角色管理,页面显示所有的角色信息,管理员可以管理所有的角色。

3、班级管理:点击班级管理,页面显示所有的班级信息,管理员可以管理所有的班级。

4、课程管理:点击课程管理,页面显示所有的课程信息,管理员可以管理所有的课程。

5、菜单管理:点击菜单管理,页面显示所有的菜单信息,管理员可以管理所有的菜单。

3.4 项目页面展示
用户登录页面:该页面包括管理员、老师和学生登录,如果用户没有注册用户信息会在登录是提醒你注册用户信息,不同的用户拥有不同的权限,根据权限进入相应的页面,如图3-9。

图3-9 用户登录页面图
管理员登录进入后台页面:管理员拥有最大权限,包括所有的操作(用户管理、角色管理、班级管理、课程管理、菜单管理、站内消息),管理员可新增、修改、查询、删除用户(教师、学生),可以新增、删除、修改、查询角色(管理员、教师、学生),可以新增、修改、查询删除班级、课程以及菜单。

管理员首页如图3-10。

图3-10 管理员首页图
管理员修改、查询、新增、删除用户(教师、学生)如图3-11。

图3-11 用户管理页面图
管理员修改、查询、新增、删除、角色(管理员、教师、学生),如图3-12。

图3-12 角色管理页面图管理员新增、修改、查询删除班级,如图3-13。

图3-13 班级管理页面图管理员新增、修改、查询删除课程,如图3-14。

图3-14 课程管理页面图
管理员新增、修改、查询删除菜单,如图3-15。

图3-15 菜单管理页面图
学生登录页面:学生根据账号密码登录后台,学生有辅助模块(查看站内消息,查看教师或者管理员有没有发布公告之类的消息),学生模块(查看待做作业的消息和作业记录,若有待做作业记录,便可以点击立即做作业按钮进行做作业),学生待做作业如图3-16。

图3-16 学生登录页面图
学生查看作业记录如图3-17。

图3-17 作业记录页面图
教师根据账号密码登录后台,教师具有以下权限:作业题管理、作业管理、作业安排、作业记录、站内消息,教师可以对新增、修改、删除、查询作业、作业题、作业安排,可以查看作业安排、站内消息。

教师作业题管理页面如图3-18。

图3-18 作业题管理页面图教师查询作业记录,如图3-19。

图3-19 作业记录页面图
教师查看站内消息,如图3-20。

图3-20 站内消息页面图教师查看作业管理,如图3-21。

图3-21 作业管理页面图教师查看作业安排,如图3-22。

图3-22 作业安排页面图
4 测试与运行
4.1 测试范围
本测试计划针对《项目功能需求》中规定的功能模块,具体包括:
管理员端:
1、系统模块
用户、角色、班级管理(包括新增、修改、删除、取消、查询)
课程、菜单管理(包括新增、修改、删除、取消)
2、辅助模块
站内消息(包括查看详情、取消)
学生端:
1、学生模块
查看作业记录(包括立即做作业)
2、辅助模块
站内消息(包括查看详情、取消)
教师端:
1、题库模块
作业题、作业管理(包括取消、查询)
课程、菜单管理(包括新增、修改、删除、取消)
2、题库模块
作业安排(包括新增、修改、删除、取消、查询)
作业记录(包括查询)
3、辅助模块
站内消息(包括查看详情、取消)
4.2 测试计划
第一、二阶段的测试为单元测试,第一阶段每做一个模块测试一个模块,第
二阶段针对每个模块进行集成测试,如表4.1所示。

4.3 测试及运行结果
管理员模块的测试结果如表4.2。

教师模块的测试结果如表4.3。

学生模块的测试结果如表4.4。

5 总结
5.1 工作总结
本系统一共有三个部分:管理员模块、教师模块、学生模块,管理员可以查询、修改、新增、删除用户(教师、学生),查询、修改、新增、删除角色(管
理员、教师、学生),修改、新增、查询删除班级、课程以及菜单;教师有这些功能:老师发布、修改、修改个人资料,教师可以对修改、新增、删除、查询作业、作业题、作业安排,可以查看作业安排、站内消息;学生有这些功能:学生修改个人资料、查看成绩、站内消息、做作业、待做作业信息。

经分析,本系统满足了设计的目的。

通过此次的项目,让我对于Java又有了新的认识,更喜欢Java这个行业。

为以后的工作埋下了基石。

5.2 不足及尚待解决的问题
一方面因为初次尝试此类的管理项目研究,对项目开发所使用的技术、开发工具等有一个从熟练到精通的过程。

另一面由于毕业设计时间只有几个月,项目难免会有很多不足的地方,需要进一步的改善,主要有下面几个方面:(1)系统的有些功能不是完善。

(2)数据库设计的不是很合理。

(3)由于在外面工作以及其他原因,我无法借到专业书籍,只好在浩瀚的网络中寻找我所需要的资料,通过网络获取的资料信息也不是很全面[10]。

参考文献:
[1] 黄杰. 基于WEB方式下的学生作业管理系统[D]. 大连理工大学, 2008.
[2] 温且兵. 基于B/S模式的在线作业管理系统[D]. 电子科技大学, 2009.
[3] 约翰逊. J2EE设计开发编程指南[M]. 北京: 电子工业出版社, 2003.
[4] 寇毅, 吴力文. 基于MVC设计模式的Struts框架的应用方法[J]. 计算机应用, 2003, 23(11): 91-93.
[5] 花向东, 李阳, 李慧. 基于MVC模式的Struts框架的研究[J]. 信息技术, 2005, (7): 103-105.
[6] 张翼, 揭金良. 基于MVC的企业级应用开发[J]. 铁路计算机应用, 2006, 15(11): 8-10.
[7] 朱波. 基于SSH框架油田电子商务平台的设计与实现[D]. 电子科技大学, 2014.
[8] 高岭, 林凯, 李增智. 面向C/S和对象Web的管理信息系统开发研究[J]. 小型微型计算机系统, 2001, 22(2): 222-225.
[9] 柯君. 基于Web的中小学综合管理信息系统的开发与研究[D]. 西安交通大学, 2001.
[10] 刘云生. 现代数据库技术[M]. 北京: 国防工业出版社, 2001.
附录
附录A:项目源代码
发送站内消息源代码:
public int sendDraftMessage(String ids) {
MessageEntity mess = null;
String[] iDs = ids.split(",");
for (String string : iDs) {
Integer id = Integer.parseInt(string);
mess = messageDao.getMessageInfo(id);
mess.setState(1);
}
return messageDao.sendDraftMessage(mess);
}
考试计划源代码:
public PlanEntity getExamInfo(Integer id) {
PlanEntity examInfo = planDao.getExamInfo(id);
if (StringUtil.isNotBlank(examInfo.getToUserIds())) {
examInfo.setAddChooseTo(1);
} else {
examInfo.setAddChooseTo(2);
}
String toUserIds = examInfo.getToUserIds();
if (StringUtil.isNotBlank(toUserIds)) {
String substring = toUserIds.substring(1, stIndexOf(","));
examInfo.setToUserIds(substring);
examInfo.setToClassIds("");
}
String toClassIds = examInfo.getToClassIds();
if (StringUtil.isNotBlank(toClassIds)) {
String substring = toClassIds.substring(1, stIndexOf(","));
examInfo.setToClassIds(substring);
examInfo.setToUserIds("");
}
return examInfo;
}
配置数据库信息源代码:
jdbcUrl=jdbc:mysql://localhost:3306/srs
driverClass=com.mysql.jdbc.Driver
user=root
password=root
maxPoolSize=50
minPoolSize=5。

相关文档
最新文档