基于Java的试题库管理系统

收藏关注不迷路,源码文章末


前言

  对试题库管理的流程进行科学整理、归纳和功能的精简,通过软件工程的研究方法,结合当下流行的互联网技术,最终设计并实现了一个简单、易操作的试题库管理系统。内容包括系统的设计思路、系统模块和实现方法。系统使用过程主要涉及到管理员和用户两种角色,主要包含个人中心、用户管理、科目管理、课程学习管理、题目类型管理、章节管理、试题库管理、在线测试管理、试题管理、留言反馈、论坛交流、系统管理、考试管理等功能。
系统开发主要在 Windows 系统下进行,采用支持跨平台的java语言开发完成,因此可以运行在任意开发环境下。系统采用mysql数据库和B/S结构的方式,按照ssm框架进行开发。

关键词:试题库; B/S结构; MySQL

一、项目介绍

  根据日常实际需要,一方面需要在系统中实现基础信息的管理,同时还需要结合实际情况的需要,提供试题库功能,方便试题库管理工作的展开,综合考虑,本套系统应该满足如下要求:
首先,在系统中需要实现对基础信息,包括个人中心、用户管理、科目管理、课程学习管理、题目类型管理、章节管理、试题库管理、在线测试管理、试题管理、留言反馈、论坛交流、系统管理、考试管理等信息的管理,这些是系统的基础信息,和系统中其他内容密切相关。
然后,系统中需要实现对用户的管理,允许管理员对用户进行必要的设置,同时要避免管理员对个人信息进行操作,保障用户的信息安全。

(1)系统的通用功能包括用户登录和密码修改,是两个角色共同需要使用的功能,用例分析如图3-1所示。
在这里插入图片描述

图3-1 系统通用功能用例分析图

(2)管理员可以对系统首页、个人中心、用户管理、科目管理、课程学习管理、题目类型管理、章节管理、试题库管理、在线测试管理、试题管理、留言反馈、论坛交流、系统管理、考试管理等进行基本的信息管理。其用例分析如图3-2所示。
在这里插入图片描述

图3-2 管理员用例图

(3) 用户进入系统可以实现对首页、课程学习、试题库、论坛交流、在线测试、公告信息、留言反馈、后台管理、个人中心等进行操作,用例分析如图3-3所示。
在这里插入图片描述

图3-3用户用例图

二、开发环境

开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

  试题库管理系统的建设可以为试题库管理提供帮助,通过对一些基础信息管理实现针对性的安排,可以按照用户的角色权限使不同用户角色看到不一样的信息界面。现根据需求阶段的分析,我们可以大致确定系统需要包含的功能如下图所示:
系统总体结构图如下,见图4-1。
在这里插入图片描述

图4-1 系统总体结构图

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目 录
第一章 绪 论 1
1.1论文背景 1
1.2系统研究现状 1
1.3 研究意义 2
第二章 开发工具和开发技术 3
2.1开发工具 3
2.2 开发技术 3
2.2.1 Java语言 3
2.2.2 ssm框架 3
2.2.3 B/S架构 3
第三章 需求分析 5
3.1 需求描述 5
3.2 系统角色需求分析 5
3.3 系统功能需求分析 5
3.4 非功能性需求分析 7
3.4.1 先进性 7
3.4.2 安全性 7
3.4.3 易用性 7
3.4.4 可扩展性 7
3.4.5 可修改性 8
3.5 系统流程分析 8
3.5.1 登录流程 8
3.5.2 添加信息流程 8
3.5.3 删除流程 9
3.6 本章小结 10
第四章 系统设计 11
4.1 系统总体设计 11
4.2 数据库设计 11
4.2.1 数据库逻辑设计 11
4.2.2 数据库表设计 12
4.3 本章小结 18
第五章 详细设计与实现 19
5.1系统功能实现 19
5.2管理员功能模块实现 22
5.3 本章小结 26
第六章 系统测试 27
6.1 测试目的 27
6.2 测试用例 27
6.3 本章小结 28
结 论 29
参考文献 30
致 谢 31

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QQ1039692211

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

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

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

打赏作者

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

抵扣说明:

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

余额充值