基于SSM实现在校学生考试系统,java开发工程师面试提纲

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

在校学生考试系统是一个功能非常完整的系统,界面简洁大方,用户交互性好,完整的包含了在校学生考试需要的相关功能:像题库管理,试卷管理,组卷管理,考试安排管理,在线考试,自动阅卷等功能均包含在内,比较适合做毕业设计使用,如果你选择了它,一定是一个优秀的毕业设计。

本系统角色分为三种:

管理员:可以对各类信息进行管理操作等

教师:主要进行试卷管理,试题管理和安排考试等

学生:主要进行系统参加考试,并进看考试分析结果等

下面一 一为大家展示系统的相关功能。

  • 管理员登陆

http://localhost:8080/admin/login.jsp      pcs  /  123123

后台管理主界面:

年级管理

科目管理

班级管理:基本信息管理

班级管理:各班人数统计

教师管理:

学生管理:基本信息管理

学生管理:学生考试信息管理

试卷管理:

试题管理:

导入试题:

考试安排:

考试记录:

二,教师登陆系统


lyinping   / 123456

考试登陆系统后一些基本信息只能查看,不能管理,但是可以管理学生、试卷、试题、安排考试,具体功能见管理员操作,不再一一截图。

三,学生登陆系统


user01  / 111111

学生在前台先注册再登陆:

进入考试中心进行考试:

答题考试

考试历史:回顾试卷

以上是在校学生考试系统的部分功能展示,所展示的各个功能模块增删改查的功能均能正常运行,功能十分强大,业务非常流畅,是一个难得的优秀系统。

系统实现的核心代码:

package com.taohan.online.exam.handler;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.google.gson.Gson;

import com.taohan.online.exam.service.ExamPaperInfoService;

import com.taohan.online.exam.service.StudentInfoService;

import com.taohan.online.exam.service.SubjectInfoService;

import com.taohan.online.exam.service.TeacherInfoService;

/**

  • Title: AdminHomeHandler

  • Description: 后台首页相关

  • @version: 1.0

*/

@Controller

public class AdminHomeHandler {

@Autowired

ExamPaperInfoService examPaperInfoService;

@Autowired

SubjectInfoService subjectInfoService;

@Autowired

TeacherInfoService teacherInfoService;

@Autowired

StudentInfoService studentInfoService;

@Autowired

Gson gson;

private Logger logger = Logger.getLogger(AdminHomeHandler.class);

@RequestMapping(“/homeInfo”)

public void homeInfo(HttpServletResponse response) throws IOException {

logger.info(“加载后台首页相关数据”);

int examPaperTotal = examPaperInfoService.getExamPpaerTotal();

int subjectTotal = subjectInfoService.getSubjectTotal();

int teacherTotal = teacherInfoService.getTeacherTotal();

int studentTotal = studentInfoService.getStudentTotal();

String json = “{“examPaperTotal”:”+examPaperTotal+", " +

““subjectTotal”:”+subjectTotal+", " +

““teacherTotal”:”+teacherTotal+", " +

““studentTotal”:”+studentTotal+“}”;

response.getWriter().print(json);

}

}

package com.taohan.online.exam.handler;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.servlet.ModelAndView;

import com.google.gson.Gson;

import com.taohan.online.exam.charts.StudentCount;

import com.taohan.online.exam.po.ClassInfo;

import com.taohan.online.exam.po.GradeInfo;

import com.taohan.online.exam.po.TeacherInfo;

import com.taohan.online.exam.service.ClassInfoService;

import com.taohan.online.exam.service.GradeInfoService;

import com.taohan.online.exam.service.TeacherInfoService;

/**

  • Title: ClassInfoHandler

  • Description: 班级

  • @version: 1.0

*/

@Controller

@SuppressWarnings(“all”)

public class ClassInfoHandler {

@Autowired

private ClassInfoService classInfoService;

@Autowired

private GradeInfoService gradeInfoService;

@Autowired

private TeacherInfoService teacherInfoService;

@Autowired

private TeacherInfo teacher;

@Autowired

private ClassInfo classInfo;

@Autowired

private Gson gson;

private Logger logger = Logger.getLogger(ClassInfoHandler.class);

/**

  • 获取所有班级

  • @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 classes = classInfoService.getClasses(classInfo);

model.setViewName(“admin/classes”);

model.addObject(“classes”, classes);

return model;

}

/**

  • 预添加班级处理

  • @return

*/

@RequestMapping(“/preAddClass”)

public ModelAndView preAddClass() {

logger.info(“预添加班级信息”);

ModelAndView model = new ModelAndView();

//获取年级信息

List grades = gradeInfoService.getGrades();

model.setViewName(“admin/classedit”);

model.addObject(“grades”, grades);

//获取不是班主任的教师

teacher.setIsWork(0);

Map<String, Object> map = new HashMap<String, Object>();

map.put(“startIndex”, null);

map.put(“pageShow”, null);

map.put(“teacher”, teacher);

List teachers = teacherInfoService.getTeachers(map);

model.addObject(“teachers”, teachers);

model.addObject(“editClass”, new ClassInfo());

return model;

}

/**

  • 添加班级

  • @param classInfo 班级信息

  • @param request

  • @return

*/

@RequestMapping(value=“/class”, method=RequestMethod.POST)

public String isAddClass(ClassInfo classInfo, HttpServletRequest request) {

logger.info("添加班级信息 "+classInfo);

//修改教师班主任状态

String returnMsg = isChangeTeacherWork(1, classInfo.getTeacher().getTeacherId());

if (returnMsg != null) {

request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”);

return “error”;

}

//添加

int row = classInfoService.isAddClass(classInfo);

if (row < 1) {

logger.error(“班级 “+classInfo+” 删除失败”);

request.setAttribute(“error”, “班级 “+classInfo.getClassName()+” 添加失败,请稍后再试!”);

return “…/error”;

}

return “redirect:/classes”;

}

/**

  • 删除班级

  • @param classId 班级编号

  • @param request

  • @return

*/

@RequestMapping(value=“/del/class/{classId}”, method=RequestMethod.DELETE)

public String isDelClass(@PathVariable(“classId”) Integer classId, HttpServletRequest request) {

logger.info("删除班级 "+classId);

//将删除班级对于之前班主任改为 非班主任状态

//需要在删除班级之前修改,如果先删除了班级,再根据班级获取教师编号,就不能获取

ClassInfo delClass = classInfoService.getClassById(classId);

String returnMsg = isChangeTeacherWork(0, delClass.getTeacher().getTeacherId());

if (returnMsg != null) {

request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”);

return “error”;

}

//删除

int row = classInfoService.isDelClass(classId);

if (row < 1) {

logger.error(“班级 “+classId+” 删除失败”);

request.setAttribute(“error”, “班级删除失败,请稍后再试!”);

return “…/error”;

}

return “redirect:/classes”;

}

/**

  • 预修改班级处理

  • @param classId 班级编号

  • @return

*/

@RequestMapping(value=“edit/class/{classId}”, method=RequestMethod.GET)

public ModelAndView preUpdateClass(@PathVariable(“classId”) Integer classId) {

logger.info(“预修改班级处理”);

ModelAndView model = new ModelAndView();

//获取要修改班级

ClassInfo classInfo = classInfoService.getClassById(classId);

model.setViewName(“/admin/classedit”);

model.addObject(“editClass”, classInfo);

List grades = gradeInfoService.getGrades();

//获取不是班主任的教师

teacher.setIsWork(0);

Map<String, Object> map = new HashMap<String, Object>();

map.put(“startIndex”, null);

map.put(“pageShow”, null);

map.put(“teacher”, teacher);

List teachers = teacherInfoService.getTeachers(map);

//如果没有可用班主任

if (teachers.size() == 0 || teachers == null) {

teacher.setTeacherId(classInfo.getTeacher().getTeacherId());

teacher.setTeacherName(“暂无剩余教师”);

teachers.add(teacher);

}

model.addObject(“teachers”, teachers);

model.addObject(“grades”, grades);

return model;

}

最后

经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。







由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

rs);

model.addObject(“grades”, grades);

return model;

}

最后

经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。

[外链图片转存中…(img-uHVGLLWV-1713695139857)]
[外链图片转存中…(img-ZSgESQ08-1713695139857)]
[外链图片转存中…(img-llR7JG5O-1713695139858)]
[外链图片转存中…(img-0xoQP26y-1713695139858)]
[外链图片转存中…(img-P0vy2xSy-1713695139859)]
[外链图片转存中…(img-TqvxF8vj-1713695139859)]
[外链图片转存中…(img-OwUWEtzb-1713695139860)]

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-UfUrq65l-1713695139860)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用到的技术:redis、amcharts、maven、html5、ajax、js、jquery以及css,关系型数据库采用的是mysql。 文件夹中有可以直接导入使用的数据库,以及可以导入试卷的excel表格格式. 该项目分为学生模块,和教师模块。 教师模块:教师可以通过导入Excel表格的方式进行添加试卷,如果Excel表中有不合法的数据,会在前台提醒哪一行哪一列出了什么问题,添加试卷后,教师可以发布试卷,试卷发布后,学生就可以答题,每张试卷都有作答时长,作答时间结束,将会自动提交试卷。考试结束后,教师可以发布答案。对于修改试卷,教师可以先选择所要修改的试卷,对于试卷可以修改试卷的名称以及考试时长,要想修改试题可以点击编辑试题,进行批量修改。 学生模块:注册登录进入学生考试平台,选择考卷,进行作答,试卷分为单选题、多选题以及判断题,分值各不相同,对于多选题错答不得分,漏答得一半的分。在作答期间,学生可以先保存,保存的内容存储在Redis中。若点击提交,提交后直接显示成绩。提交后就不能再进入考试。要想看正确答案,得等到考试结束,教师发布成绩后,才可以看到。 学生可以看到自己的作答历史,每道题之前学生的答案以及该题正确的答案都很清晰的标注出来。为了方便学生统计自己的成绩,本系统采用了amcharts技术根据学生的历次成绩制作了柱状图和折线图结合的图表。学生可以很直观地看到自己成绩的波动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值