javaWeb在线考试系统

一、简介

在线考试系统是现代教育中一项重要的辅助教学工具,它为学生提供了便捷的考试方式,同时也为教师提供了高效的考试管理方式。我设计了一个基于JavaWeb的在线考试系统,该系统包括三个角色:管理员、老师和学生。管理员拥有菜单列表、课程管理、班级管理和老师管理的权限;老师拥有菜单列表、学生管理、考试管理、题库管理、成绩管理和成绩查询的权限;学生拥有考试中心、考试历史和进入考试的权限。

二、功能介绍

1.管理员功能:

  1. 菜单列表:管理员可以查看系统菜单列表,方便进行导航。
  2. 课程管理:管理员可以管理课程信息,包括添加新课程、编辑课程信息、删除课程等。
  3. 班级管理:管理员可以管理班级信息,包括添加新班级、编辑班级信息、删除班级等。
  4. 老师管理:管理员可以管理教师信息,包括添加新教师、编辑教师信息、删除教师等。

2.老师功能:

  1. 菜单列表:老师可以查看系统菜单列表,方便进行导航。
  2. 学生管理:老师可以管理学生信息,包括添加新学生、编辑学生信息、删除学生等。
  3. 考试管理:老师可以创建新的考试,设置考试时间、考试范围等。
  4. 查看考试信息:老师可以查看考试相关信息,包括考试时间、考试人数等。
  5. 题库管理:老师可以管理题库,包括添加单选题、多选题等。
  6. 成绩管理:老师可以录入学生考试成绩。
  7. 成绩查询:老师可以查询学生的考试成绩。

3.学生功能:

  1. 考试中心:学生可以查看可参加的考试列表,并选择进入考试。
  2. 考试历史:学生可以查看已参加考试的历史记录。
  3. 进入考试:学生可以进入指定的考试进行答题。

三、技术实现

  1. Maven:使用Maven进行项目管理,管理项目依赖。
  2. Spring:使用Spring框架进行依赖注入和控制反转,提高代码的灵活性和可维护性。
  3. Spring MVC:使用Spring MVC框架实现前后端交互,采用MVC模式开发项目。
  4. MyBatis:使用MyBatis框架实现持久层的数据操作,简化数据库操作的过程。
  5. JSP:使用JSP作为页面展示的技术,实现动态页面的生成。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.com.scitc</groupId>
    <artifactId>graduationproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>graduationproject</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>bootstrap-select</artifactId>
            <version>1.12.4</version>
        </dependency>
        <!-- pageHelper分页插件 -->
        <!--<dependency>-->
            <!--<groupId>com.github.pagehelper</groupId>-->
            <!--<artifactId>pagehelper</artifactId>-->
            <!--<version>4.0.0</version>-->
        <!--</dependency>-->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


四、数据库介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、程序截图

请添加图片描述

1.管理员

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

2.教师

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

3.学生

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

六、联系与交流

q:969060742 完整代码、sql、项目辅导视频

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu2004自动更新内核导致nvidia驱动无法正常启动的问题

症状 开机后&#xff0c;nvidia-smi无法正常显示显卡状态&#xff0c;另外无法连接多个显示屏 解决 参考这个文章&#xff1a; ls /usr/src可以看到已安装的nvidia驱动版本是nvidia-535.54.03 然后运行下面的指令&#xff1a; sudo apt-get install dkmssudo dkms instal…

Mimikatz介绍

一、Mimikatz定义 mimikatz是benjamin使用C语言编写的一款非常强大的安全工具&#xff0c;它可以从机器内存中提取明文密码、密码Hash、PIN码和Kerberos票据等。它的功能非常强大&#xff0c;得到全球安全研究员的广泛使用。 Mimikatz 是一款功能强大的轻量级调试神器&#xff…

Java版直播商城免 费 搭 建:平台规划与常见营销模式,电商源码、小程序、三级分销及详解

【saas云平台】打造全行业全渠道全场景的saas产品&#xff0c;为经营场景提供一体化解决方案&#xff1b;门店经营区域化、网店经营一体化&#xff0c;本地化、全方位、一站式服务&#xff0c;为多门店提供统一运营解决方案&#xff1b;提供丰富多样的营销玩法覆盖所有经营场景…

在vue中使用echarts饼图示例

1.安装 npm install echarts --save 2.官方示例 option {title: {text: Referer of a Website,subtext: Fake Data,left: center},tooltip: {trigger: item},legend: {orient: vertical,left: left},series: [{name: Access From,type: pie,radius: 50%,data: [{ value: 104…

巧用cpl文件维权和免杀(下)

cpl文件的应用 bypass Windows AppLocker 什么是Windows AppLocker: AppLocker即“应用程序控制策略”&#xff0c;是Windows 7系统中新增加的一项安全功能。在win7以上的系统中默认都集成了该功能。 默认的Applocker规则集合,可以看到cpl并不在默认规则中: 开启Applocker规…

NVIDIA NIM 提供优化的推理微服务以大规模部署 AI 模型

NVIDIA NIM 提供优化的推理微服务以大规模部署 AI 模型 生成式人工智能的采用率显着上升。 在 2022 年 OpenAI ChatGPT 推出的推动下&#xff0c;这项新技术在几个月内就积累了超过 1 亿用户&#xff0c;并推动了几乎所有行业的开发活动激增。 到 2023 年&#xff0c;开发人员…

聊一聊常见的网络安全模型

目录 一、概述 二、基于时间的PDR模型 2.1 模型概念提出者 2.2 模型图 2.3 模型内容 2.3.1 Protection&#xff08;保护&#xff09; 2.3.2 Detection&#xff08;检测&#xff09; 2.3.3 Response&#xff08;响应&#xff09; 2.4 PDR模型思想 2.4.1 PDR模型假设 2…

【k8s】kubeasz 3.6.3 + virtualbox 搭建本地虚拟机openeuler 22.03 三节点集群 离线方案

kubeasz项目源码地址 GitHub - easzlab/kubeasz: 使用Ansible脚本安装K8S集群&#xff0c;介绍组件交互原理&#xff0c;方便直接&#xff0c;不受国内网络环境影响 拉取代码&#xff0c;并切换到最近发布的分支 git clone https://github.com/easzlab/kubeasz cd kubeasz gi…

【openGL4.x手册10】基元程序集和面部剔除

https://www.khronos.org/opengl/wiki/Face_Culling 一、说明 基元汇编是 OpenGL 渲染管道中的阶段&#xff0c;在该阶段&#xff0c;基元被划分为一系列单独的基本基元。经过一些小的处理后&#xff0c;如下所述&#xff0c;它们被传递到光栅器进行渲染。 二 早期原始组装 基…

Spring实例化Bean的三种方式

参考资料&#xff1a; Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数&#xff0c;使用p…

npm ERR! cb() never called!(已解决)

从仓库拉下来的代码&#xff0c;用npm install时报错 试了很多种方法&#xff0c;结果发现有一种可能是你的node版本过低导致的&#xff0c;可以升级node版本试一下。 node版本升级后&#xff0c;把上一次npm install错误的node_modules删除&#xff0c;重新npm install。

压力测试面试题及答案!

压力测试是软件测试中的一种测试方式&#xff0c;用于评估软件系统在各种压力条件下的性能表现。以下是常见的压力测试面试题及答案&#xff1a; 什么是压力测试&#xff1f; 压力测试是一种测试方式&#xff0c;用于模拟实际用户在正常和峰值负载条件下对软件系统施加的压力&…

java线程池原理浅析

问题与解决&#xff1a; 问题&#xff1a; 查询大数据量的时候&#xff0c;例如一次返回50w数据量的包&#xff0c;循环去查询发现读取会超时。 解决方案&#xff1a; 经过思考采用多线程去分页查询。使用线程池创建多个线程去查询分页后的数据最后汇总一下&#xff0c;解决…

双指针算法_盛水最多的容器

题目&#xff1a; 题目解析&#xff1a; 如图所示&#xff0c;一个数组内部存储的是高度&#xff0c;求数组中&#xff0c;能够组成最大容量的两个元素&#xff0c;需要注意的是容量是 高度*宽度&#xff0c;这里的宽度指的是两个数字之间的距离&#xff0c;且需要注意高度中&…

现代c++内存管理的方式有哪些?

在现代C编程实践中&#xff0c;内存管理是软件开发中的核心议题之一&#xff0c;直接影响着程序的性能、稳定性以及资源的有效利用。C提供了一系列丰富且灵活的内存管理机制&#xff0c;以适应不同场景的需求和应对潜在的内存问题&#xff0c;如内存泄漏、野指针和堆栈溢出等。…

VUE之首次加载项目缓慢

最近公司有个大型的项目&#xff0c;使用vue2开发的&#xff0c;但是最终开发完成之后&#xff0c;项目发布到线上&#xff0c;首次加载项目特别缓慢&#xff0c;有时候至少三十秒才能加载完成&#xff0c;加载太慢了&#xff0c;太影响用户体验了&#xff0c;最近研究了一下优…

java spirng和 mybatis 常用的注解有哪些

当在Java Spring和MyBatis中进行开发时&#xff0c;常用的注解对于简化配置和提高开发效率非常重要。以下是更多常用的注解以及它们的详细说明和用途&#xff1a; 在Spring中常用的注解&#xff1a; Component&#xff1a; 用途&#xff1a;表明一个类会作为组件被Spring容器管…

AJAX(一):初识AJAX、http协议、配置环境、发送AJAX请求、请求时的问题

一、什么是AJAX 1.AJAX 就是异步的JS和XML。通过AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。AJAX 不是新的编程语言&#xff0c;而是一种将现有的标准组合在一起使用的新方式。 2.XML 可扩展标记语言。XML被设计用来传输和…

C++(13) STL 库初识

文章目录 STL 库初识1. STL 库1.1 STL 库的案例1.2 C 标准模板库的三个组件1.3 案例展示 2. 迭代器1.1 概述和分类2.2 代码案例 STL 库初识 1. STL 库 1.1 STL 库的案例 类似学习了模板的概念。CSTL (标准模板库) 是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和…

【Linux详解】——进程信号

&#x1f4d6; 前言&#xff1a;本期介绍进程信号。 目录 &#x1f552; 1. 生活角度的信号&#x1f552; 2. 技术角度的信号&#x1f558; 2.1 Linux中的信号&#x1f558; 2.2 进程对信号的处理 &#x1f552; 3. 信号的产生方式&#x1f558; 3.1 键盘产生&#x1f558; 3.2…