Java项目:在线考试管理(java+SpringBoot+Vue+ElementUI+Layui+Mysql)

 源码获取:俺的博客首页 "资源" 里下载!

项目介绍

基于SpringBoot Vue的在线考试管理

角色:管理员、学生、教师

管理员:管理员登录系统后,可以对首页,个人中心,学生管理,教师管理,课程分类管理,课程信息管理,在线考试管理,试题管理,习题管理,考试管理等功能

学生:学生管理,在学生管理页面可以对索引,学生账号,性别,头像,年龄,电话号码等内容进行详情,修改或删除等操作

教师:教师登录进入在线考试系统可以对首页,个人中心,课程信息管理,试题管理,在线考试管理,考试管理等功能


环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;


技术栈

后端:SpringBoot+Mybaits

前端:Vue+ElementUI+Layui+HTML+CSS+JS


使用说明

项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,控制台提示运行成功后再去运行前端项目;
5. 管理员用户名密码:admin/admin
普通用户名密码:user/123456

 

 

学生管理控制层:

@Controller
public class StuController {
	@Autowired
	UserService userService;
	@Autowired
	GradeService gradeService;
	//跳转到前台登录页面
	@RequestMapping("/toLogin.action")
	public String toUserLogin(User user, Model model, HttpSession session){
		if(session.getAttribute("userName")!= null){
			return "/user/index.jsp";
		}
		if(session.getAttribute("user")== null){
			session.setAttribute("user", userService.get(user.getUserId()));
		}
		List<User> dataList = userService.find(user);
		model.addAttribute("dataList", dataList);
		return "/user/login.jsp";			
	}
		
	/**
	 * 前台用户登录
	 * @param user
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/user/toIndex.action")
	public String toIndex(User user, Model model, HttpSession session){
		if(session.getAttribute("userName")!= null){
			return "/user/index.jsp";
		}else{
			return "forward:/toLogin.action";
		}
	}
	
	/**
	 * 用户账号密码检查
	 * @param user
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/checkPwd.action")
	@ResponseBody
	public MsgItem checkPwd(User user, Model model, HttpSession session){
		MsgItem item = new MsgItem();
		User loginUser = userService.login(user);
		if(loginUser!=null && loginUser.getUserType() ==0){
			if(loginUser.getUserState()==0 ){
				item.setErrorNo("1");
				item.setErrorInfo("该账号尚未通过审核!");
			}else{
				item.setErrorNo("0");
				item.setErrorInfo("登录成功!");
				session.setAttribute("userName", loginUser.getUserName());
				session.setAttribute("user", loginUser);
			}
		}else{
			item.setErrorNo("1");
			item.setErrorInfo("账号不存在或用户名密码错误!");
		}
		return item;
	}
	
	@RequestMapping("/toRegistPage.action")
	public String toRegistPage(Model model, HttpSession session){
		List<Grade> list = gradeService.find(new Grade());
		model.addAttribute("grade", list);
		return "/user/regist.jsp";
	}
	
	/**
	 * 添加用户信息
	 * @param user
	 * @param model
	 * @return
	 */
	@RequestMapping("/addUserInfo.action")
	public String addUserInfo(User user, Model model, HttpSession session){
		userService.insert(user);
		return "redirect:/toLogin.action";			
	}
	
	//跳转到前台登录页面
	@RequestMapping("/toUserInfo.action")
	public String toUserInfo(User user, Model model, HttpSession session){
		User loginUser = (User) session.getAttribute("user");
		user = userService.getStu(loginUser);
		Grade grade = gradeService.get(Integer.parseInt(user.getGrade()));
		user.setGrade(grade.getGradeName());
		model.addAttribute("user", user);
		return "/user/userinfo.jsp";			
	}
	
	/**
	 * 更新学生信息
	 * @param user
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/updateUserInfo.action")
	public String updateUserInfo(String newPwd,User user, Model model, HttpSession session){
		if(newPwd!= null && newPwd.trim().length()>0){
			user.setUserPwd(newPwd);
		}
		userService.update(user);
		user = userService.get(user.getUserId());
		if(session.getAttribute("user")== null){
			session.setAttribute("user", userService.getStu(user));
		}
		return "redirect:/user/toIndex.action";			
	}
	
	//跳转到登录页面
	@RequestMapping("/user/exitSys.action")
	public String exitSystem(User user, Model model, HttpSession session){
		if(session.getAttribute("userName")!= null){
			session.removeAttribute("userName");
			return "redirect:/toLogin.action";
		}
		return "redirect:/toLogin.action";	
	}
	
	//跳转到前台登录页面
	@RequestMapping("/toAbout.action")
	public String toAbout(User user, Model model, HttpSession session){
		User loginUser = (User) session.getAttribute("user");
		model.addAttribute("user", loginUser);
		return "/user/about.jsp";			
	}
}

年级管理控制层: 

@Controller
public class GradeController {

	@Autowired
	GradeService gradeService;
	@Autowired
	CourseService courseService;
	
	/**
	 * 跳转到年级页面
	 * @param course
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toGradePage.action")
	public String toGradePage(@RequestParam(value="page", defaultValue="1") int page,
			Grade grade,Model model, HttpSession session){
//		List<Grade> dataList = gradeService.find(grade);
		PageInfo<Grade> pageInfo = gradeService.findByPage(grade, page, 5);
		List<Grade> dataList = pageInfo.getList();
		Course course=null;
		for(Grade g : dataList){
			String courseName= "";
			String id = g.getCourseId();
			if(id != null){
				String ids[] = id.split(",");
				for(int i=0;i<ids.length;i++){
					course = courseService.get(Integer.parseInt(ids[i]));
					courseName+=course.getCourseName()+",";
				}
			}
			//判断最后一个字符是否为逗号,若是截取
			String str = courseName.substring(courseName.length() -1, courseName.length());
			if(",".equals(str)){
				str = courseName.substring(0, courseName.length()-1);
			}else{
				str = courseName;
			}
			g.setCourseId(str);
		}
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return "/admin/grade-mgt.jsp";			
	}
	
	@RequestMapping("/qryAllGrade.action")
	@ResponseBody
	public List<Grade> qryAllGrade(@RequestParam(value="page", defaultValue="1") int page,
			Grade grade,Model model, HttpSession session){
//		List<Grade> dataList = gradeService.find(grade);
		PageInfo<Grade> pageInfo = gradeService.findByPage(grade, page, 5);
		List<Grade> dataList = pageInfo.getList();
		Course course=null;
		for(Grade g : dataList){
			String courseName= "";
			String id = g.getCourseId();
			if(id != null){
				String ids[] = id.split(",");
				for(int i=0;i<ids.length;i++){
					course = courseService.get(Integer.parseInt(ids[i]));
					courseName+=course.getCourseName()+",";
				}
			}
			//判断最后一个字符是否为逗号,若是截取
			String str = courseName.substring(courseName.length() -1, courseName.length());
			if(",".equals(str)){
				str = courseName.substring(0, courseName.length()-1);
			}else{
				str = courseName;
			}
			g.setCourseId(str);
		}
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}
	
	/**
	 * 删除年级信息
	 * @param gradeId	年级编号,删除多个是,id用逗号分隔开
	 * @param model
	 * @return
	 */
	@RequestMapping("/deleteGrade.action")
	public String deleteGrade(String gradeId, Model model){
		if(gradeId != null){
			String ids[] = gradeId.split(",");
			for(int i=0;i<ids.length;i++){
				gradeService.delete(Integer.parseInt(ids[i]));
			}
		}
		return "redirect:/toGradePage.action";
	} 
	/**
	 * 跳转到添加年级信息页面
	 * @param grade
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddGrade.action")
	public String toAddGrade(Course course, Model model, HttpSession session){
		List<Course> dataList = courseService.find(course);
		model.addAttribute("dataList", dataList);
		return "/admin/grade-reg.jsp";			
	}
	
	/**
	 * 添加年级信息
	 * @param user
	 * @param model
	 * @return
	 */
	@RequestMapping("/addGrade.action")
	public String addType(Grade grade, Model model){
		gradeService.insert(grade);
		return "redirect:/toGradePage.action";			
	}
	
	/**
	 * 查看年级信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toQryGrade.action")
	public String toQryGrade(int gradeId, Model model, HttpSession session){
		Grade gradeInfo = gradeService.get(gradeId);
		model.addAttribute("grade", gradeInfo);
		model.addAttribute("course", courseService.find(new Course()));
		return "/admin/grade-upd.jsp";			
	}
	
	/**
	 * 跳转到更新年级信息页面
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toUpdGrade.action")
	public String toUpdGrade(int gradeId, Model model, HttpSession session){
		Grade gradeInfo = gradeService.get(gradeId);
		String courseName= "";
		Course course=null;
		List<Course> dataList = courseService.find(course);
		model.addAttribute("dataList", dataList);
		String id = gradeInfo.getCourseId();
		if(id != null){
			String ids[] = id.split(",");
			for(int i=0;i<ids.length;i++){
				course = courseService.get(Integer.parseInt(ids[i]));
				courseName+=course.getCourseName()+",";
			}
		}
		//判断最后一个字符是否为逗号,若是截取
		String str = courseName.substring(courseName.length() -1, courseName.length());
		if(",".equals(str)){
			str = courseName.substring(0, courseName.length()-1);
		}else{
			str = courseName;
		}
		gradeInfo.setCourseId(str);
		model.addAttribute("grade", gradeInfo);
		return "/admin/grade-upd.jsp";			
	}
	
	/**
	 * 更新年级信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/updGrade.action")
	public String updGrade(Grade grade, Model model, HttpSession session){
		gradeService.update(grade);
		return "redirect:/toGradePage.action";			
	}
	
	/**
	 * 删除年级信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/delGrade.action")
	public String delGrade(int gradeId, Model model, HttpSession session){
		gradeService.delete(gradeId);
		return "redirect:/toGradePage.action";			
	}
}

课程信息管理控制层:

@Controller
public class CourseController {

	@Autowired
	CourseService courseService;
	
	/**
	 * 跳转到课程页面
	 * @param course
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toCoursePage.action")
	public String toCoursePage(@RequestParam(value="page", defaultValue="1") int page,
			Course course,Model model, HttpSession session){
		//List<Course> dataList = courseService.find(course);
		PageInfo<Course> pageInfo = courseService.findByPage(course, page, 5);
		List<Course> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return "/admin/course-mgt.jsp";			
	}
	
	@RequestMapping("/qryCoursePage.action")
	@ResponseBody
	public List<Course> qryCoursePage(@RequestParam(value="page", defaultValue="1") int page,
			Course course,Model model, HttpSession session){
		//List<Course> dataList = courseService.find(course);
		PageInfo<Course> pageInfo = courseService.findByPage(course, page, 5);
		List<Course> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}
	
	/**
	 * 删除课程信息
	 * @param courseId	课程编号,删除多个是,id用逗号分隔开
	 * @param model
	 * @return
	 */
	@RequestMapping("/deleteCourse.action")
	public String deleteCourse(String courseId, Model model){
		if(courseId != null){
			String ids[] = courseId.split(",");
			for(int i=0;i<ids.length;i++){
				courseService.delete(Integer.parseInt(ids[i]));
			}
		}
		return "redirect:/toCoursePage.action";
	} 
	/**
	 * 跳转到添加课程信息页面
	 * @param course
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddCourse.action")
	public String toAddType(Course course, Model model, HttpSession session){
		List<Course> dataList = courseService.find(course);
		model.addAttribute("dataList", dataList);
		return "/admin/course-reg.jsp";			
	}
	
	/**
	 * 添加课程信息
	 * @param user
	 * @param model
	 * @return
	 */
	@RequestMapping("/addCourse.action")
	public String addType(Course course, Model model){
		course.setCourseState("0");
		courseService.insert(course);
		return "redirect:/toCoursePage.action";			
	}
	
	/**
	 * 查看题型信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toQryCourse.action")
	public String toQryType(int courseId, Model model, HttpSession session){
		Course courseInfo = courseService.get(courseId);
		model.addAttribute("course", courseInfo);
		return "/admin/course-qry.jsp";			
	}
	
	/**
	 * 跳转到更新题型信息页面
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toUpdCourse.action")
	public String toUpdType(int courseId, Model model, HttpSession session){
		Course courseInfo = courseService.get(courseId);
		model.addAttribute("course", courseInfo);
		return "/admin/course-upd.jsp";			
	}
	
	/**
	 * 更新题型信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/updCourse.action")
	public String updType(Course course, Model model, HttpSession session){
		courseService.update(course);
		return "redirect:/toCoursePage.action";			
	}
	
	/**
	 * 删除题型信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/delCourse.action")
	public String delCourse(int courseId, Model model, HttpSession session){
		courseService.delete(courseId);
		return "redirect:/toCoursePage.action";			
	}
	
}

源码获取:俺的博客首页 "资源" 里下载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OldWinePot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值