目录
一、软件工程课程设计“作业管理系统”的总结和期望
该系统研究的意义
在当今全球疫情的时期,返校、出行等人员流动无法顺利有序进行的情况下,很多学校的教育方式正逐渐由线下授课方式转换为线上授课方式。而此时,一套完善的线上授课及作业系统便成为切实的需求。因此,为了在教育领域应用计算机帮助教学工作更顺利地进行,解决教师与学生教学生活中远程操作的问题,设计实现该网上作业管理系统。
本系统在研究目前国内外作业管理情况的基础上,从学校的实际需求出发,将学生、教师以及管理员三者整合在系统中,采用当前较为流行的B/S(浏览器/服务器)结构、JSP动态网页开发技术和SQL数据库共同实现,设计并实现了一个功能较为完善的小型在线作业管理系统。通过对系统进行一系列的需求分析、设计、编码、测试等工作,使系统实现了管理员发布管理公告、教师管理、设置班级、课程;老师在线发布作业、批改作业、网上答疑;学生上传作业、查看作业信息、提出疑问的功能。重点对系统设计过程作了相应描述,同时也对系统需要改进的地方做了总结。
功能概述
该软件主要功能方向为实现分用户管理(角色包括:教师、学生、管理员)——注册账号、设置权限、邮箱验证;
其中:
教师功能:{修改个人资料及修改密码,查看、搜索公告};
{发布作业,批改作业,统计分数,DDL提醒,查看班级成员,发布班级公告,查看学生作业完成情况};
学生功能:{修改个人资料及修改密码,查看、搜索公告};
{根据自己课表查看老师布置的作业(我的作业),下载作业附件,上传作业,查看上传作业情况及教师打分情况}(只可对自己的作业进行调整,没有对其他作业操作的权限);
管理员:根据权限进入管理员相应的页面的功能,修改个人资料功能,设置班级、课程、任课教师,具有查看、删除作业的功能。
其他:学校层面(教务处)或学院层面(教学秘书等)的全体课程数据统计及分析;数据访问安全性;相同课程理念数据分析。
系统逻辑功能结构图
软件设计类图
web网上作业管理系统的实现
根据前面对web网上作业管理系统的需求分析与功能设计,现在对该应用进行实现,数据库的实现采用Navicat工具构建,数据库表结构参照第四章数据库模块分析与设计。以下是实现过程中用到的库和编程环境:
1、IntelliJ IDEA 2020.3.3
注册与登录功能的实现
注册功能方面由用户填写数据表单,对表单项进行鼠标焦点事件实时监听,校验用户输入数据的合法性,如果不合法,表单不允提交且给出相应的提示信息,指引用户输入正确数据。
图5.1注册功能部分表单
后端由UserServlet的addUser()方法处理注册表单的提交请求,获取提交表单的数据,封装成User对象,根据用户的手机号查询数据库判断此手机号是否已注册,已注册则返回注册失败信息,成功则调用业务层代码实现数据的插入。响应成功信息,页面收到成功信息进行消息提示并跳转登录页面。注册功能实现代码如下:
public void addUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
//获取数据
BufferedReader reader = request.getReader();
String line = reader.readLine();
//封装对象。。
User user = JSON.parseObject(line, User.class);
//判断是否已存在手机号
User user1 = userService.selectByTelephone(user.getTelephone());
if (user1 != null) {
response.getWriter().write("fail");
} else {
userService.addUser(user);
response.getWriter().write("success");
}
作业提交功能实现
作业提交功能是本系统学生对象的核心功能,本系统主界面展示部分即为已发布作业的信息,学生可对作业信息进行一定的筛选,查找,需将已完成的作业上交时,在登录之后即可使用提交作业功能,学生只需填入作业内容信息,提交后系统自动更新学生该项作业完成情况。
作业提交功能的实现前端啊依赖于Element-ui、ajax等技术获取学生选中的作业信息,学生完成作业内容的填写提交后数据由Ajax发向StuWorkServlet的addStuWork()方法,该方法获取前端学生提交的作业数据,封装为Homework的javabean对象调用业务层实现作业信息的存储,其功能实现代码如下:
public void addStuWork(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//获取数据
BufferedReader reader = request.getReader();
String line = reader.readLine();
DataBean dataBean = JSON.parseObject(line, DataBean.class);
//转化成对象。
StuWork stuWork = JSON.parseObject(dataBean.getWork(), StuWork.class);
System.out.println(stuWork);
//执行方法前,,获取用户的id。再提交
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user != null) {
//获取并设置提交者ID
stuWork.setSid(user.getUid());
System.out.println(stuWork);//测试
//成功获取Session!!!!!!!!!!!!!!!!!!!!!!
stuWorkService.addStuWork(stuWork);
//更新Session Qids的数据
List<Integer> qids = (List<Integer>) session.getAttribute("Qids");
qids.add(stuWork.getQid());
//响应
request.getRequestDispatcher("/homework/selectByPageAnd?formInline="+dataBean.getFormInline()).forward(request,response);
// response.getWriter().write("success");
} else {
response.getWriter().write("fail");
}
}
教师批改作业的功能实现
每一个学生提交的作业存储于数据库的StuWork表中,包含了学生信息,作业内容等基本信息,StuWork剩余部分将由教师来补充,即教师批改作业,包含学生该作业成绩得分,教师评语,批改日期等信息。教师批改作业,查询学生提交的作业内容,给予打分,自由性留下评语,批改完成后不可修改,可查看已改作业信息。
批改作业功能实现,前端由Vue、Element-ui、Ajax等框架与技术实现。教师选中的学生的作业信息,完成批改后新的数据发送到后端StuWorkServlet的updateStuWork()方法,该方法将获得的数据进行封装,根据id对学生的作业进行数据更新,补充成绩、教师评语等信息。其功能实现代码如下:
public void updateStu(HttpServletRequest request, HttpServletResponse response) throws IOException {
BufferedReader reader = request.getReader();
String line = reader.readLine();
System.out.println(line);
StuWork stuWork = JSON.parseObject(line, StuWork.class);
//获取用户ID
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user != null){
stuWork.setTid(user.getUid());
stuWorkService.updateStu(stuWork);
response.getWriter().write("success");
}else{
response.getWriter().write("fail");
}
}
总结和期望
时光荏苒,距离我们小组完成这个我们所有人人生中的“第一个项目”已经过去了很长一段时间。回望编写该项目的这段时间里有很多的压力同时也收获了很多。回想当初几个从未写过文档、论文,对开发一个项目一无所知的学生,在第一次作业收到要求后茫然的感觉,再到现在已经能够得心应手的写出一份完整的论文文档,独立完成一个完整而能够运营的项目。这个从无到有,从零到多的过程让我们感到十分的充实与喜悦。这些离不开当初开发人员夜以继日的努力。在此特别感谢我的组员朋友们!本系统在开发过程中遇到了许多困难,在功能上还略显单薄,不具备产品性,在性能和稳定性方面还有待提升。期望今后在项目管理课程中对系统的维护与更新将会继续跟进直至系统稳定运营。
二、体温测量上报系统对象图
三、体温测量上报系统 时序图