idea Springboot 在线考试管理系统开发mysql数据库web结构java编程计算机网页

news2024/7/6 19:09:36

一、源码特点
 springboot 在线考试管理系统是一套完善的完整信息系统,结合mvc框架和bootstrap完成本系统springboot spring mybatis ,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 css jquery
后端主要技术 Springboot spring mybatis 
数据库 mysql
开发工具 IDEA  JDK1.8

springboot 在线考试系统1


二、功能介绍
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)学生管理:对学生信息进行添加、删除、修改和查看
(3)教师管理:对教师信息进行添加、删除、修改和查看
(4)公告管理:对公告信息进行添加、删除、修改和查看
(5)难度管理:对难度信息进行添加、删除、修改和查看
(6)知识点管理:对知识点信息进行添加、删除、修改和查看
(7)章节管理:对章节信息进行添加、删除、修改和查看
(8)试题管理:对试题信息进行添加、删除、修改和查看
(9)试卷管理:对试卷信息进行添加、删除、修改和查看
(10)组卷管理:对组卷信息进行添加、删除、修改和查看
(11)成绩管理:对成绩信息进行删除、修改和查看,系统采取主观判卷的方式进行判定。
(12)答题管理:对答题信息进行删除、修改和查看

数据库设计

[表gly] 管理员列属性表格

序号字段名称数据类型长度主键描述
1glyidINTEGER11管理员编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名

[表xuesheng] 学生列属性表格

序号字段名称数据类型长度主键描述
1xsidINTEGER11学生编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址

[表jiaoshi] 教师列属性表格

序号字段名称数据类型长度主键描述
1jsidINTEGER11教师编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址

[表gonggao] 公告列属性表格

序号字段名称数据类型长度主键描述
1ggidINTEGER11公告编号
2btVARCHAR40标题
3nrVARCHAR40内容
4fbsjVARCHAR40发布时间

[表nandu] 难度列属性表格

序号字段名称数据类型长度主键描述
1ndidINTEGER11难度编号
2ndVARCHAR40难度

[表zsd] 知识点列属性表格

序号字段名称数据类型长度主键描述
1zsdidINTEGER11知识点编号
2zsdmcVARCHAR40知识点名称

[表zhangjie] 章节列属性表格

序号字段名称数据类型长度主键描述
1zjidINTEGER11章节编号
2zjmcVARCHAR40章节名称

代码设计

  @RequestMapping(value = "list")
    public ModelAndView  list(HttpServletRequest request, HttpServletResponse response)  {
        try {
            request.setCharacterEncoding("gb2312");//强制字符集
        }catch(Exception e){
            e.printStackTrace();
        }
        Map<String,Object> map= new HashMap<String,Object>();

        ModelAndView mav = new ModelAndView();//初始化
        mav.setViewName("shijuan/list");//跳转jsp 页面

        String sjid=(String)request.getParameter("sjid");
        if(sjid!=null&&!sjid.equals("")){
            // System.out.println(sjid);
            map.put("sjid",sjid);//拼接sql语句试卷编号
        }
        String sjmc=(String)request.getParameter("sjmc");
        if(sjmc!=null&&!sjmc.equals("")){
            // System.out.println(sjmc);
            map.put("sjmc",sjmc);//拼接sql语句试卷名称
        }
        String fbsj=(String)request.getParameter("fbsj");
        if(fbsj!=null&&!fbsj.equals("")){
            // System.out.println(fbsj);
            map.put("fbsj",fbsj);//拼接sql语句发布时间
        }
        String kssj=(String)request.getParameter("kssj");
        if(kssj!=null&&!kssj.equals("")){
            // System.out.println(kssj);
            map.put("kssj",kssj);//拼接sql语句考试时间
        }
        String sm=(String)request.getParameter("sm");
        if(sm!=null&&!sm.equals("")){
            // System.out.println(sm);
            map.put("sm",sm);//拼接sql语句说明
        }


        List<shijuan> list=shijuandao.getAll(map);//查询shijuan 表数据返回 list对象

        mav.addObject("list",list);//赋值变量


        return mav;
    }

	 /**试卷添加方法 对表 shijuan 进行添加
	 * 
	 */
    @RequestMapping(value = "add")
    public ModelAndView  add(HttpServletRequest request, HttpServletResponse response){

        try {
            request.setCharacterEncoding("gb2312");//强制字符集
        }catch(Exception e){
            e.printStackTrace();
        }
        ModelAndView mav = new ModelAndView();//初始化
        mav.setViewName("shijuan/shijuanadd");
        shijuan bean=new shijuan();
	
        String sjid=(String)request.getParameter("sjid");//{col.columnname} 变量
        bean.setSjid(sjid);//赋值封装

        String sjmc=(String)request.getParameter("sjmc");//{col.columnname} 变量
        bean.setSjmc(sjmc);//赋值封装

        String fbsj=(String)request.getParameter("fbsj");//{col.columnname} 变量
        bean.setFbsj(fbsj);//赋值封装

        String kssj=(String)request.getParameter("kssj");//{col.columnname} 变量
        bean.setKssj(kssj);//赋值封装

        String sm=(String)request.getParameter("sm");//{col.columnname} 变量
        bean.setSm(sm);//赋值封装


        shijuandao.add(bean);//执行 添加 shijuan 添加操作


       

        request.setAttribute("msg", "<script>alert('添加成功');</script>");//操作提示

        return addpage(request,response);

    }

    /**试卷添加方法 对表 shijuan 进行添加
     *
     */
    @RequestMapping(value = "kaoshido")
    public ModelAndView  kaoshido(HttpServletRequest request, HttpServletResponse response){

        try {
            request.setCharacterEncoding("gb2312");//强制字符集
        }catch(Exception e){
            e.printStackTrace();
        }
      //  String fbsj= StaticMethod.getStringDate();
        ModelAndView mav = new ModelAndView();//初始化
     //   mav.setViewName("shijuan/shijuanadd");
        java.util.Date   now=new   java.util.Date();
        java.text.SimpleDateFormat   formatter=new   java.text.SimpleDateFormat("yyyyMMddHHmmssssss");
        //  System.out.print(formatter.format(now));
        String ddid=""+formatter.format(now);

        String[] hd=request.getParameterValues("hd");
        String[] st=request.getParameterValues("st");
        String sj=(String)request.getParameter("sj");//

        String djsj=StaticMethod.getStringDate();//{col.columnname} 变量
        String xs=(String)request.getSession().getAttribute("yhm");//{col.columnname} 变量

        try{

            Connection con=jdbcTemplate.getDataSource().getConnection();
            DBO db=new DBO();
            db.open(con);
            ResultSet rs=null;

            List list=null;

            String sql="";
            for(int i=0;i<st.length;i++){
             dati dtbean=new dati();
             dtbean.setDf("0");
             dtbean.setDjsj(djsj);
             dtbean.setHd(hd[i]);
             dtbean.setLs(ddid);
             dtbean.setSj(sj);
             dtbean.setXs(xs);
             dtbean.setSt(st[i]);
                datidao.add(dtbean);
            }






            chengji bean=new chengji();

            String cjid=(String)request.getParameter("cjid");//{col.columnname} 变量
            bean.setCjid(cjid);//赋值封装


            bean.setXs(xs);//赋值封装

            String cj="0";//{col.columnname} 变量
            bean.setCj(cj);//赋值封装


            bean.setDjsj(djsj);//赋值封装


            bean.setSj(sj);//赋值封装



            String ls=ddid;//{col.columnname} 变量
            bean.setLs(ls);//赋值封装


            chengjidao.add(bean);//执行 添加 chengji 添加操作

        }catch(Exception e){
            e.printStackTrace();;
        }






        request.setAttribute("msg", "<script>alert('答题成功');</script>");//操作提示

        return list(request,response);

    }

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspsmkaoshi.sql 系统名称smkaoshi
4、地址:login.jsp 

四 系统实现

下载地址

https://download.csdn.net/download/qq_41221322/88942810

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1515044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何理解数据经济,数据要素,数据资源,数据资产入表、数据交易,数据经纪

引言 在数字经济时代&#xff0c;数据逐渐成为了新的财富。这不仅体现在企业层面&#xff0c;政府和个人也在积极地生成、收集和分析数据&#xff0c;以寻找商业价值和社会效益。数据财政模型的兴起&#xff0c;标志着从传统的以土地资源为核心的经济模型向以数据资产为核心的…

双链表(上)

1.结构 1.带头双向循环链表 注意&#xff1a;这里的“带头”跟前面我们说的“头节点”是两个概念&#xff0c;实际前面的在单链表阶段称呼不严 谨&#xff0c;但是为了同学们更好的理解就直接称为单链表的头节点。 带头链表里的头节点&#xff0c;实际为“哨兵位”&#xff0c…

【Web】浅聊XStream反序列化本源之恶意动态代理注入

目录 简介 原理 复现 具体分析之前 我们反序列化了个什么&#xff1f; XStream反序列化的朴素通识 具体分析 第一步&#xff1a;unmarshal解组 第二步&#xff1a;readClassType获取动态代理类的Class对象 第三步&#xff1a;调用convertAnother对动态代理类进行实例…

使用公式在Excel中指定列值的变化实现自动间隔着色(不是按照固定的行数)

如果你的文件很小&#xff0c;可以手工着色&#xff1b;但如果很大&#xff0c;就要借助公式来着色&#xff1b; 目的是什么&#xff0c;其中之一是&#xff1a;提升可读性。 一起往下看吧&#xff01;&#xff01; 如果你想要根据Excel某列中值的变化来间隔着色&#xff0c;…

LaTeX 目录标题取消(自定义)留白间距

默认的目录格式生成如下图&#xff0c;会发现“2 产品介绍”和“1.2 项目概述”中存在一段留白 通过在导言区定义以下代码即可自定义标题留白间距宽度 \usepackage[subfigure]{tocloft} \setlength{\cftbeforesecskip}{0.3em} 最终修改的效果如下

Games101笔记-变换

Scale Reflection Shear Rotate 没有额外提示默认绕原点旋转 线性变换 Transiation 不属于线性变换&#xff0c;仿射变换 齐次坐标 二维的点和向量增加一个维度 点加点等于两个点的中点 所有的仿射变换都可以写成齐次坐标的形式 在表示二维情况下的仿射变换时&#…

五.pandas常见操作

目录 五.pandas常见操作 1.pandas处理字符串 以上演示 1-大小写转换 2-去空格(两边) .str.strip() 3-切割 4-连接 .str.cat() 5-空格检测 .str.contains(" ") 6-替换 7-count()--返回元素出现次数 8-repeat() 2.查询操作 2.1 query(" ") 2.2…

mysql生成连续的日期

1.代码 例如&#xff1a;生成"2023-03-01"至"2023-03-10"之间的日期 WITH RECURSIVE date_range AS (SELECT "2023-03-01" AS date FROM dualUNION ALLSELECT DATE_ADD(date, INTERVAL 1 DAY) dateFROM date_rangeWHERE DATE_ADD(date, INTER…

【机器人控制 Robot Control】非线性控制(Non-linear Control)建模举例【新加坡南洋理工大学 NTU Singapore】

Non-linear Control Method Example: Non-linear Mechanical System Modelling of the System using Control Law Partitioning (Handwritten)

wordpress被恶意搜索攻击(网址/?s=****)解决方法。

源地址&#xff1a;https://www.ctvol.com/seoomethods/1413686.html 什么叫恶意搜索攻击&#xff1f; wordpress恶意搜索攻击并不是像病毒一样的攻击&#xff0c;而是一种seo分支黑帽手段&#xff0c;通过被攻击网站搜索功能中长尾关键词来实现攻击&#xff0c;通过网址不断…

数学问题难解?新研究提出MathScale方法,让AI更懂数学推理

引言&#xff1a;数学问题解决中的语言模型挑战 数学问题解决是一个复杂的认知过程&#xff0c;它要求参与者不仅要掌握数学知识&#xff0c;还要能够进行多步骤的逻辑推理。近年来&#xff0c;大语言模型&#xff08;LLMs&#xff09;在解决问题方面展现出了显著的能力&#…

环信ChatroomUIKit功能详解——超详细介绍

聊天室是当下泛娱乐社交应用中最经典的玩法&#xff0c;通过调用环信的 IM SDK 接口&#xff0c;可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计&#xff0c;最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…

2024年【安全生产监管人员】及安全生产监管人员模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【安全生产监管人员】及安全生产监管人员模拟考试题库&#xff0c;包含安全生产监管人员答案和解析及安全生产监管人员模拟考试题库练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲及安全生…

面试复盘记录(数据开发)

一、apple外包1.矩阵顺时针旋转遍历2.两表取差集 二、 一、apple外包 没问理论&#xff0c;就两个算法题。 1.矩阵顺时针旋转遍历 Given an m x n matrix, return all elements of the matrix in spiral order.Example 1:Input: matrix [[1,2,3],[4,5,6],[7,8,9]] Output: …

岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序应用

有限单元法在岩土工程问题中应用非常广泛&#xff0c;很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便&#xff0c;但其使用对用户来说往往是一个“黑箱子”。相比而言&#xff0c;开源的有限元程序计算方法透明、计算过程可控&#xff0c;…

【NR 定位】3GPP NR Positioning 5G定位标准解读(八)- OTDOA定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

redis在微服务领域的贡献,字节跳动只面试两轮

dubbo.registry.addressredis://127.0.0.1:6379 注册上来的数据是这样&#xff0c;类型是hash /dubbo/ s e r v i c e / {service}/ service/{category} 如 /dubbo/com.newboo.sample.api.DemoService/consumers /dubbo/com.newboo.sample.api.DemoService/providers has…

Apache Paimon系列之:主键表

Apache Paimon系列之&#xff1a;主键表 一、主键表1.Bucket2.LSM Trees3.Compaction 二、数据分布1.固定Bucket2.动态Bucket3.正常动态Bucket模式4.跨分区更新插入动态存储桶模式 三、Merge Engine1.Deduplicate2.部分更新3.序列组4.聚合部分更新5.聚合6.Retract7.First Row 四…

01-java入门了解--cmd命令、jdk、java的认识

cmd常用命令 java入门需要安装的环境 jdk。&#xff08;下载好jdk&#xff0c;并配置好环境&#xff09;idea。&#xff08;或者其他的编程工具&#xff09; jdk安装目录介绍 第一步&#xff1a;编写程序&#xff08;程序员写.java后缀的文件&#xff09; 第二步&#xff1a;…

【LLMs+小羊驼】23.03.Vicuna: 类似GPT4的开源聊天机器人( 90%* ChatGPT Quality)

官方在线demo: https://chat.lmsys.org/ Github项目代码&#xff1a;https://github.com/lm-sys/FastChat 官方博客&#xff1a;Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality 模型下载: https://huggingface.co/lmsys/vicuna-7b-v1.5 | 所有的模…