目录
一、项目介绍
二、项目截图
三、核心代码
【开源】在线考试系统 JAVA+Vue.js+SpringBoot 新手入门项目
一、项目介绍
经典老框架SSM打造入门项目《在线考试系统》,包括班级模块、教师学生模块、试卷模块、试题模块、考试模块、考试回顾模块,项目编号T007。
在Internet高速发展的今天,计算机的应用几乎完成覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发展着。为了适应现代人类强烈的时间观念,对于在线考试系统中,比较多功能如何能同时实现这一问题,我进行了思考。管理员需要管理学生的信息,以及在线考试系统的管理信息等,采用原始手工记录的方法是比较繁琐和复杂的。因此,这就需要一个方便的在线考试系统,方便管理员和学生。在线考试系统正是这么一个方便的平台,本系统中,学生可以通过输入账号和密码登录到系统,可以对个人信息进行修改,查看首页、考试中心、考试历史等,还能新增考试信息,对于学生来说,使用这样一个系统,操作起来方便了很多。因此,系统无疑给学生和管理员的工作带来了极大的方便,网络的应用让工作变得更加轻松和快乐。
本次设计任务是要设计一个在线考试系统,通过这个系统能够满足学生的考试信息的管理。系统的主要功能包括:系统首页、基本信息、班级管理、教师管理、学生管理、试卷管理、试题管理、考试安排管理、以往考试信息等功能。
管理员可以根据系统给定的账号进行登录,登录后可以进入在线考试系统,对在线考试系统所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个学生都分配了一个账号,学生通过账号的登录可以在系统中查看考试信息和考试历史等信息,以及可以对个人信息进行修改等功能。
二、项目截图
系统确定了各项需求,完成了系统的分析和数据库的设计,它就可以根据系统的特点决定系统的发展模式,才能实现代码。通过对系统的分析,这个系统是属于一个小项目,所完成的功能相对简单,就是对数据的基本操作。从而决定采用B/S开发模式。该模型的基本过程是:当学生访问网站的浏览器,或从学生向服务器发送请求时,通过接收请求,然后调用数据访问逻辑运算如比,将结果返回给将结果返回到学生通过浏览器。
使用开发的模型时,我们要把一些常用的,可以重复使用了Jsp技术。当学生浏览网页,很多网页上的信息是从数据库动态删除,这就要求网页必须有数据库操作的能力,如连接数据库和数据表,更新。一个系统包含多个相同的网页,实现数据库操作功能的、代码就需要在不一样的网页中重复的被使用,这样不仅降低了工作的效率,一般也会给维护带来较大的麻烦。为了弥补这一缺陷,功能代码应该在Jsp中完整的数据库操作,可以使用在每一个页面上。
三、核心代码
/**
* 获取所有班级
* @param gradeId 年级编号
* @param className 班级名称 可用于模糊查询
* @param classId 班级编号
* @return
*/
@RequestMapping(value="/classes", method=RequestMethod.GET)
public ModelAndView getClasses(@RequestParam(value="gradeId", required=false) Integer gradeId,
@RequestParam(value="className", required=false) String className,
@RequestParam(value="classId", required=false) Integer classId) {
logger.info("获取班级集合 条件:gradeId: "+gradeId+", 班级编号:"+classId+", 班级:"+className);
ModelAndView model = new ModelAndView();
ClassInfo classInfo = new ClassInfo();
/*处理查询条件*/
if (gradeId != null) {
GradeInfo gradeInfo = new GradeInfo();
gradeInfo.setGradeId(gradeId);
classInfo.setGrade(gradeInfo);
}
if (classId != null)
classInfo.setClassId(classId);
if (className != null) {
if (className.trim() != "")
classInfo.setClassName(className);
}
List<ClassInfo> classes = classInfoService.getClasses(classInfo);
model.setViewName("admin/classes");
model.addObject("classes", classes);
return model;
}
/**
* 修改年级信息
* @param grade
* @param request
* @return
*/
@RequestMapping(value="/grade/update/grade", method=RequestMethod.PUT)
public String isUpdateGrade(GradeInfo grade, HttpServletRequest request) {
logger.info("修改年级 "+grade+" 的信息");
int row = gradeInfoService.isUpdateGrade(grade);
if (row < 1) {
logger.error("年级修改失败");
request.setAttribute("error", "年级修改失败,请稍后再试!");
return "/error";
}
return "redirect:/grades";
}
通过完成该在线考试系统和本论文的撰写让我更加明白了软件开发过程中软件工程思想的重要性。在项目的前期由于对需求分析做的不够谨慎和明确,导致了后面在设计甚至编码时候造成了许多不必要的麻烦。由此在今后的学习和工作开发之中必须要牢牢把握住软件工程的设计思想和方法,这样可以进一步保证项目开发的健壮性和准确性。
本系统所实现的是一个在线考试系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能改善。
本系统使用了JSP开发技术与Mysql数据库共同完成设计。在系统最后测试运行的时候,调试程序时,总是出现多处报错,通过查看错误提示,发现是数据库连接有问题,总是不正确。后来经过不断的查找才发现登录数据库的密码错误,随后修改数据库密码,这才正常调试了出来。解决问题还是在于查阅了有关JSP和Mysql方面的图书、上了各种在线考试系统吸取成熟的经验。由于自己在之前的课程设计等学科上并没有很好的掌握知识,没有进一步的去自学系统的设计,对于一些框架技术基本都已不记得,更不会灵活的使用。所以这次的毕业设计,为了较好的完成,自己重新去图书馆借书研究,弥补之前丢失的知识。
由于经验和能力不足,导致在开发、设计该系统的时候,出现了比较多的问题,例如需要用到的技术不熟悉、程序报错等,后来我积极地向同学当中的大牛询问自己出现的问题同时也会找一些相关的书进行学习,慢慢的一点点将自己遇到的问题逐渐解决。所以不管以后在任何时候合作都会让自己事半功倍。通过本系统的完整的开发,可以遇到自己平时写一些简单的小程序遇不到的问题,不仅仅局限与技术与业务方面的,同时也使得自己更加深入的了解软件过程的开发设计思想,对于即将踏入社会工作而言,这些心得都十分重要。在以后的研究生学习生涯也必须加深这方面的理解,将最好的开发技术和最新的科学原理运用到自己以后的开发工作和学习研究中去。