基于java+ssm+jsp的职业高中智慧作业试题系统设计

本文介绍了采用Java和SSM框架开发的职业高中智慧作业试题系统,该系统包括管理员、教师和学生三种角色的功能,如作业发布、在线考试、作业批改等。管理员能管理用户信息,教师能发布作业和试卷,学生则能完成作业和考试。系统实现了B/S架构,支持Mysql数据库,旨在提高教学效率和学生的学习体验。
摘要由CSDN通过智能技术生成

项目介绍

社会和科技的不断进步带来更便利的生活,计算机技术也越来越平民化。二十一世纪是数据时代,各种信息经过统计分析都可以得到想要的结果,所以也可以更好的为人们工作、生活服务。人才是国家发展的必要条件,学生经过努力学习后最重要的是知识的检验,作业可以体现学生的知识掌握程度,并可以帮助学生加深记忆,老师的作业批改工作尤其重要。把计算机技术和作业管理相结合可以更符合学校、学生的要求,实现写作业的最大价值。

本职业高中智慧作业试题系统采用Java语言和Jsp技术,框架采用SSM,搭配Mysql数据库,运行在Idea里。本职业高中智慧作业试题系统提供管理员、教师和学生三种角色的服务。总的功能包括教师发布试题、作业、试卷,学生在线考试和提交作业、查询作业。管理员负责系统信息的审核。本系统可以帮助教师教学,帮助学生检验、巩固自己的知识水平,本系统采用成熟技术开发可以完成作业试题管理的相关工作。

3.1系统功能结构设计
系统的功能结构是采用树形图来绘制功能设计。根据分析所得,本系统的功能设计为管理员、学生和教师三部分。管理员为角色管理,教师为发布作业、试卷、试题进行作业批改等,学生完成作业和在线考试、查看作业等。本职业高中智慧作业试题系统的功能结构设计图如下图3-1所示:
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net

系统实现

4.1用户登录功能的详细实现
用户登录界面起到验证身份的作用,本界面采用图片背景进行设计。在用户登录界面里设置了程序的名称和用户、密码、权限的文本框。在文本框下是登录按钮、学生注册按钮。用户在信息输入完成后可以使用相应按钮进行相对应的操作。用户登录功能的实现界面如下图4-1所示:
在这里插入图片描述

图4-1用户登录实现界面

4.2管理员权限的功能实现
4.2.1个人中心管理功能的详细实现
个人中心管理功能的作用为修改密码和添加、删除管理员用户。本功能可以实现新增管理员和减少管理员。个人中心管理功能的实现界面如下图4-2所示:
在这里插入图片描述

图4-2个人中心管理功能的界面实现

4.2.2学生信息管理功能的详细实现
管理员负责学生信息的录入和管理,学生的账号和密码则是由本功能进行添加。管理员查询学生信息的功能实现如下图4-3所示:
在这里插入图片描述

图4-3管理员查询学生信息的实现界面

4.2.3教师管理功能的详细实现
管理员可以对教师的信息进行管理、审核。同样,教师的账号和密码是此功能进行录入的。管理员查询教师信息的实现界面如下图4-4所示:
在这里插入图片描述

图4-4管理员查询教师信息的实现界面

4.2.4班级管理功能的界面实现
  管理员可以添加和查询、修改班级的功能,班级可以更好的统计学生资料。班级查询功能的实现界面如下图4-5所示:
在这里插入图片描述

图4-5查询班级信息功能的实现界面

4.2.5作业信息管理功能的实现界面
管理员可以对作业进行下载、查询和修改等操作,还可以添加作业信息。管理员查询作业信息的实现界面如下图4-6所示:
在这里插入图片描述

图4-6管理员查询作业信息的实现界面

4.2.6作业提交管理功能的实现界面
管理员可以查询学生提交的作业并进行修改、删除等操作。管理员查询作业提交功能的实现界面如下图4-7所示:
在这里插入图片描述

图4-7作业提交功能的实现界面

4.2.7作业批改功能的实现界面
管理员也可以查询学生的作业批改信息并对作业批改内容进行一定的修改。作业批改功能的实现界面如下图4-8所示:
在这里插入图片描述

图4-8作业批改功能的实现界面

4.3学生权限的功能详细实现
4.3.1个人中心管理功能的详细界面实现
当学生登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。学生个人中心管理的实现界面如下图4-9所示:
在这里插入图片描述

图4-9个人中心管理功能的运行界面

4.3.2作业批改管理功能的详细实现
学生可以查询老师批改后的作业,并进行作业修改后再次提交。作业批改管理功能的界面实现如下图4-10所示:
在这里插入图片描述

图4-10查询作业批改功能的运行界面

4.3.3作业提交管理功能的详细实现
学生可以浏览自己提交的所有作业信息。作业提交管理功能的实现界面如下图4-11所示:
在这里插入图片描述

图4-11作业提交管理功能的运行界面

4.3.4作业信息管理功能的实现界面
学生可以查询作业,并完成作业提交。作业信息管理功能的实现界面如下图4-12所示:
在这里插入图片描述

图4-12作业信息管理功能的实现界面

4.3.5考试管理功能的实现界面
学生可以查看试卷并进行在线考试和查看考试成绩以及管理错题本。实现界面如下图4-13所示:
在这里插入图片描述

图4-13考试管理功能的实现界面

4.4教师权限的功能详细实现
教师的功能为发布试题、作业信息和试卷信息管理学生的作业和考试信息等。教师权限的功能实现界面如下图4-14所示:
在这里插入图片描述

图4-14教师权限功能的运行界面

4.5学生注册功能的实现界面
学生在登录界面里可以进行注册,注册后的资料可传送到管理员手中,在注册时需要填写密码,密码为学生在登录时需要输入的信息。学生注册功能的实现界面如下图4-15所示:
在这里插入图片描述

图4-15学生注册功能的实现界面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.XueshengEntity;
import com.entity.view.XueshengView;

import com.service.XueshengService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 学生
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("esheng")
public class XueshengController {
    @Autowired
    private XueshengService xueshengService;



    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(), username,"xuesheng",  "学生" );
		return R.ok().put("token", token);
	}
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody XueshengEntity xuesheng){
    	//ValidatorUtils.validateEntity(xuesheng);
    	XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", xuesheng.getXuehao()));
		if(user!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		xuesheng.setId(uId);
        xueshengService.insert(xuesheng);
        return R.ok();
    }

	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("ssion")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        XueshengEntity user = xueshengService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
        user.setMima("123456");
        xueshengService.updateById(user);
        return R.ok("密码已重置为:123456");
    }


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XueshengEntity xuesheng, 
		HttpServletRequest request){

        EntityWrapper<XueshengEntity> ew = new EntityWrapper<XueshengEntity>();
    	PageUtils page = xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("st")
    public R list(@RequestParam Map<String, Object> params,XueshengEntity xuesheng, 
		HttpServletRequest request){
        EntityWrapper<XueshengEntity> ew = new EntityWrapper<XueshengEntity>();
    	PageUtils page = xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("sts")
    public R list( XueshengEntity xuesheng){
       	EntityWrapper<XueshengEntity> ew = new EntityWrapper<XueshengEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xuesheng, "xuesheng")); 
        return R.ok().put("data", xueshengService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XueshengEntity xuesheng){
        EntityWrapper< XueshengEntity> ew = new EntityWrapper< XueshengEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xuesheng, "xuesheng")); 
		XueshengView xueshengView =  xueshengService.selectView(ew);
		return R.ok("查询学生成功").put("data", xueshengView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XueshengEntity xuesheng = xueshengService.selectById(id);
        return R.ok().put("data", xuesheng);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XueshengEntity xuesheng = xueshengService.selectById(id);
        return R.ok().put("data", xuesheng);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("ve")
    public R save(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
    	xuesheng.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xuesheng);
    	XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", xuesheng.getXuehao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		xuesheng.setId(new Date().getTime());
        xueshengService.insert(xuesheng);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
    	xuesheng.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xuesheng);
    	XueshengEntity user = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("xuehao", xuesheng.getXuehao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		xuesheng.setId(new Date().getTime());
        xueshengService.insert(xuesheng);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xuesheng);
        xueshengService.updateById(xuesheng);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xueshengService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<XueshengEntity> wrapper = new EntityWrapper<XueshengEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = xueshengService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	





}

论文参考

在这里插入图片描述

目 录
摘 要 1
Abstract 2
第1章 绪论 5
1.1课题研究背景与现状 5
1.2课题实现目的和研究意义 6
1.3课题研究内容 6
1.4论文结构安排 6
第2章 系统分析 7
2.1系统开发中使用相关技术介绍 7
2.1.1Java介绍 7
2.1.2Mysql数据库介绍 8
2.1.3B/s架构介绍 8
2.2系统可行性分析 9
2.2.1经济可行性分析 9
2.2.2操作可行性分析 9
2.2.3技术可行性分析 10
2.3系统需求分析 10
2.4系统性能分析 10
2.5系统功能分析 11
2.6系统操作流程分析 12
第3章 系统设计 13
3.1系统功能结构设计 13
3.2数据库设计 14
3.2.1数据ER图设计 14
3.2.2数据库表设计 17
第4章 系统详细实现 23
4.1用户登录功能的详细实现 23
4.2管理员权限的功能实现 23
4.2.1个人中心管理功能的详细实现 23
4.2.2学生信息管理功能的详细实现 24
4.2.3教师管理功能的详细实现 24
4.2.4班级管理功能的界面实现 25
4.2.5作业信息管理功能的实现界面 25
4.2.6作业提交管理功能的实现界面 26
4.2.7作业批改功能的实现界面 26
4.3学生权限的功能详细实现 27
4.3.1个人中心管理功能的详细界面实现 27
4.3.2作业批改管理功能的详细实现 27
4.3.3作业提交管理功能的详细实现 27
4.3.4作业信息管理功能的实现界面 28
4.3.5考试管理功能的实现界面 28
4.4教师权限的功能详细实现 29
4.5学生注册功能的实现界面 29
第5章 系统测试 31
5.1系统测试的方法与选择 31
5.2测试环境与测试条件 31
5.3详细功能测试 31
5.3.1用户登录功能的测试 31
5.3.2作业管理功能的测试 32
5.3.3试题管理功能的测试 33
5.3.4在线考试管理功能的测试 34
5.4测试总结 35
总 结 36
参考文献 37
致 谢 39

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值