springcloud +Vue 前后端分离的onlinejudge在线评测系统

功能描述:

        本系统的研究内容主要是设计并实现一个一个在线测评系统(OJ),该系统集成了博客、竞赛、刷题、教学,公告,个人管理六大功能,用户注册后登录系统,可以浏览本站的全部文章、发布自己的心得体会、同时也允许修改自己的文章在发布,以及对发布了的文章进行删除,本站还会推荐每天浏览量前五的文章进行曝光,让更多人发现优秀文章;用户可以在题库页看到本站提供的全部已启用的题目,每个题目系统都提供了通过率和题目难度,用户可以根据自己的学习阶段点击相应题目,进行做题,每道题目提供了测试和提交两种提交方式,点击测试按钮用户可以对自己的源代码就行调试,并和正确答案进行对比,点击提交按钮,系统将源代码编译成class文件并运行,将输出的结果和正确答案对比,判断答案是否正确,并将结果返回到用户前端。用户在竞赛页,可以查看到竞赛的一些基本信息,点击竞赛就可以进行报名竞赛并参赛,赛后可以查看到自己通过的题目和排名等。同时支持用户查看往期竞赛,用户需要通过在个人中心认证身份后,才能使用教学功能,学生可以在教学页搜索教学组,然后填写老师的邀请码进入教学组,老师可以选择教学组进行发布作业,学生可以在收到作业后进行完成。

系统架构:

        本系统采用B/S架构的设计,B/S架构是在C/S架构基础上发展起来的一个架构,并得到了广泛的应用,其原因在于,B/S架构是基于浏览器的一种交互模式,其将逻辑集中在浏览器和中间件来提高数据处理能力。B/S架构无需下载,只需知道该软件的服务网址即可进行访问,无需安装即可使用,通用性和便捷性都更优秀。

技术栈:

        主要采用的技术有springcloud + mybatis + redis + vue + bootstrap。Springcloud是基于springboot作为model进行分布式开发,借用springboot快速开发的优点,将各个服务注册到eureka中,通过zuul网关访问eureka中的服务,各服务模块间采用feign进行RPC远程过程调用,当访问的某个服务因为某种原因不可用时,通过hystrix进行服务降级和熔断,提高用户的系统体验;mybatis是当下最流行的基于java的可持久框架,通过简单的xml配置,屏蔽了全部的jdbc代码和参数的设置,使用起来更加灵活;Redis是一个高性能的key-value型数据库,通过将一些需要反复调用数据进行缓存,使用时只需要通过key值即可取到,极大的减轻了数据库的压力。

系统流程图:

系统运行环境:

(1)硬件环境:

操作系统:Windows 10

关系性数据库管理系统:MySQL 5.7

数据库管理工具:Navicat

缓存:Redis

浏览器:IE浏览器6.0以上及谷歌浏览器

JDK版本:JDK1.8

开发工具:Idea 2019、VS code

(2)客户端环境

Springcloud服务,Vue服务,redis客户端服务器

 系统功能实现:

登录注册模块

        在浏览器搜索栏输入OJ系统的入口URL,来到系统的登录界面,OJ系统首页页面如图所示。

        游客若没有账号应先进行注册,用户注册页如图所示。

        如果用户已经在OJ系统注册过账号但是忘记了密码,则可以点击找回密码进行找回,系统找回密码页面如图所示。

个人中心模块

        用户点击头像,弹出下拉框,进入个人中心模块,功能包含了个人中心,博客管理,隐私设置,评测记录,退出登录。个人中心页面包含了自己的基本信息和自己发布的热门文章,个人中心页面如图所示。

        博客管理中展示自己发布的全部博客如图所示,点击博客标题可以修改博客信息,如图所示。 

        个人设置可以进行一些隐私设置来包含自己的隐私,个入设置如图所示。

         评测记录包含了个人评测的全部记录信息,并且可以查看源代码,如图所示。

     身份认证包含了学生认证和教师认证,身份认证如图所示。 

 身份认证后,展示认证后的身份。

博客模块 

        博客模块包含了浏览博客内容,搜索相关博客,对某篇博客进行点赞,向用户推荐博客以及博客达人等功能,博客模块包含了全部的博客信息以及博客达人的推荐如图所示。

        点击博客的标题查看博客的具体信息已热门博客推荐。如图所示。

点击“一起分享新鲜事”,跳转发布博客界面,如图所示。 

        在输入框输入想要查找的博客,点击查找图标,查找想要的博客。如图所示。 

题库模块

题库模块包含了用户查看题目,搜索题目,题目的热门推荐,题目的搜索,题目的提交和测试,查看当前题目提交过的记录等,题库页面如图所示。

用户点击搜索界面输入想要查找的题目信息,点击查找按钮。如图所示。 

用户点击题目标题进入题目内容页面。如图所示。 

在题目内容界面点击提交记录可以查看当前题目的提交记录,如图所示。 

 用户编写代码后,点击提交按钮,对代码进行评测等待输出结果,如图所示。

竞赛模块

竞赛模块包含了用户查看近/往期竞赛,参加竞赛,查看竞赛题目、竞赛选手、排行榜。允许用户和选手们进行交流,竞赛页如图所示。

竞赛页面内点击参数选手可以查看当前比赛的参赛选手,如图所示 。

竞赛页面内点击排行榜,可以查看当前比赛的排行榜,如图所示。

 

 竞赛页面内点击聊天室,可以当前在线的选择进行聊天,如图所示。

教学模块

        教学模块又分为学生端教学模块和教师端教学模块,学生端教学模块包括了教学组的添加、搜索等。学生查看、完成老师布置的作业,老师可以查看自己发布的作业,查看/修改/启用/编辑/删除/发布 竞赛、题目、教学组等,学生教学模块如图所示。

 

教师的教学页包含了作业、教学组、竞赛、题目的管理,作业和教学组管理如图4.25所示,竞赛和题目管理如图所示。 

教师点击作业和教学组标题可以对作业/教学组进行编辑修改,如图所示。 

教师点击竞赛和题目的标题可以对竞赛/题目进行编辑,如图所示。 

公告模块

        公告模块中,学生只允许查看公告,老师可以修改,发布、删除公告等,公告如图所示,公告管理页面如图所示。

         

 效果预览:

毕业设计——onlinejudge在线评测系统

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis(五)管道

文章目录 官网总结Pipeline与原生批量命令对比Pipeline与事务对比使用Pipeline注意事项 官网 https://redis.io/docs/manual/pipelining/ Pipeline是为了解决RTT往返回时,仅仅是将命令打包一次性发送对整个Redis的执行不造成其它任何影响 总结 Pipeline与原生批量…

解决 ssh: connect to host github.com port 22: Connection timed out

问题 今天使用git克隆github上的代码时,一直报错 原以为是公钥过期了,就尝试修改配置公钥,但是尝试了几次都不行,最终在博客上找到了解决方案,在次记录一下,以备不时之需 解决ssh-connect-to-host-github…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-9 HTML5 表单验证

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>HTML5 表单验证</title> </head><body> <form action"#" method"get">请输入您的邮箱:<input type"email&q…

python-自动篇-办公-用Excel画画

文章目录 代码所遇问题ModuleNotFoundError: No module named xlsxwriterFileNotFoundError: [Errno 2] No such file or directory: 111.jpg 效果附件图片excel 代码 # coding: utf-8from PIL import Image from xlsxwriter.workbook import Workbookclass ExcelPicture(obje…

前端面试题-(BFC,前端尺寸单位,网站页面常见的优化手段)

前端面试题-BFC&#xff0c;前端尺寸单位&#xff0c;网站页面常见的优化手段 BFC前端尺寸单位网站页面常见的优化手段 BFC BFC&#xff08;block formartting context&#xff09;块格式化上下文。是通过独立渲染的区域&#xff0c;它拥有自己的渲染规则&#xff0c;可以决定…

使用AFPN渐近特征金字塔网络优化YOLOv8改进小目标检测效果(不适合新手)

目录 简单概述 算法概述 优化效果 参考文献 文献地址&#xff1a;paper 废话少说&#xff0c;上demo源码链接&#xff1a; 简单概述 AFPN的核心思想&#xff1a;AFPN主要通过引入渐近的特征融合策略&#xff0c;逐步整合底层、高层和顶层的特征到目标检测过程中。这种融合…

(十一)Head first design patterns状态模式(c++)

状态模式 如何去描述状态机&#xff1f; 假设你需要实例化一台电梯&#xff0c;并模仿出电梯的四个状态&#xff1a;开启、关闭、运行、停止。也许你会这么写 class ILift{ public:virtual void open(){}virtual void close(){}virtual void run(){}virtual void stop(){} }…

8. UE5 RPG创建UI(上)

UI是显示角色的一部分属性玩家可以直接查看的界面&#xff0c;通过直观的形式在屏幕上显示角色的各种信息。如何使用一种可扩展&#xff0c;可维护的形式来制作&#xff0c;这不得不说到耳熟能详的MVC架构。 MVC&#xff08;Model-View-Controller&#xff09;是一种常见的软件…

【C++】IO流

IO流 一、C语言的输入输出二、流的概念三、C IO流1. C标准IO流2. C文件IO流 四、stringstream 的简单介绍1. 将数值类型数据格式化为字符串2. 字符串拼接3. 序列化和反序列化结构数据 一、C语言的输入输出 C语言中我们用到的最频繁的输入输出方式就是 scanf () 与 printf() &a…

HarmonyOS 应用开发入门

HarmonyOS 应用开发入门 前言 DevEco Studio Release版本为&#xff1a;DevEco Studio 3.1.1。 Compile SDK Release版本为&#xff1a;3.1.0&#xff08;API 9&#xff09;。 构建方式为 HVigor&#xff0c;而非 Gradle。 最新版本已不再支持 &#xff08;”Java、JavaScrip…

计算机基础之微处理器简介

微处理器 微处理器定义 微型计算机的CPU也被称为微处理器&#xff0c;是将运算器、控制器和高速缓存集成在一起的超大规模集成电路芯片&#xff0c;是计算机的核心部件。能完成取指令、执行指令&#xff0c;以及与外界存储器和逻辑部件交换信息等操作。 微处理器发展 CPU从…

Spring Security快速入门

入门案例 创建一个Spring MVC应用程序&#xff0c;该应用程序使用用户登录来保护页面。 Spring Initializer创建项目 如果Spring Web和Thymeleaf依赖无法下载&#xff0c;可以检查项目的Maven配置是否正确&#xff01; 创建“不安全”的Web应用程序 Web应用程序包括两个简单…

语义分割常用评价指标

在图像处理领域中&#xff0c;语义分割是很重要的一个任务。在实际项目开发中,评估模型预测效果以及各指标的含义对于优化模型极为重要。 本文将主要评价指标的计算算法进行了详细说明,并加上注释解释每个指标的含义。这对理解各指标背后的数学原理以及能否在实践中应用或许有…

UE5 C++ 学习笔记 UBT UHT 和 一些头文件

总结一些似懂非懂的知识点&#xff0c;从头慢慢梳理。 任何一个项目都有创建这些三个.cs。 这个是蓝图转C 这个是本身就是C项目,应该就是多了一个GameModeBase类 Build.cs包含了每个模块的信息&#xff0c;表明了这个项目用到了哪一些模块。该文件里的using UnrealBuilTool 是…

Linux系统Shell脚本 ----- 编程规范和变量详细解读

一、Shell脚本概述 1、什么是Shell Linux系统中运行的一种特殊程序在用户和内核之间充当“翻译官”用户登录Linux系统时&#xff0c;自动加载一个Shell程序Bash是Linux系统中默认使用的Shell程序 2、Shell的作用 Linux系统中的shell是一个特殊的应用程序&#xff0c;它介于操…

在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

在给核桃派开发板用OpenCV读取图像并显示到pyqt5的窗口上并加入颜色检测功能&#xff0c;尝试将图像中所有蓝色的东西都用一个框标记出来。 颜色检测核心api 按照惯例&#xff0c;先要介绍一下opencv中常用的hsv像素格式。颜色还是那个颜色&#xff0c;只是描述颜色用的参数变…

反序列化字符串逃逸(上篇)

首先&#xff0c;必须先明白&#xff0c;这个点并不难&#xff0c;我给大家梳理一遍就会明白。 反序列化字符串逃逸就是序列化过程中逃逸出来字符&#xff0c;是不是很简单&#xff0c;哈哈哈&#xff01; 好了&#xff0c;不闹了&#xff0c;其实&#xff1a; 这里你们只要懂…

【服务器NextChat】创建部署NextChat网站

目录 🌺【前言】 🌼1. 购买服务器 🌼2.【NextChat—gpt-3.5-turbo模型】 🌻2.1 服务器设置 🌻2.2 打开Xshell软件:安装docker环境 (1)安装OpenAI (2)检查下是否运行成功 🌻2.3 重置OpenAPI 秘钥方法 🌻2.4 如需域名访问,请接着往下看 🌼3.【Ne…

Docker项目部署()

1.创建文件夹tools mkdir tools 配置阿里云 Docker Yum 源 : yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker - ce.repo 更新 yum 缓存 yum makec…

产品经理学习-产品运营《用户运营策略》

⽤户画像与⽤户运营策略 什么是用户画像 对产品运营而言&#xff0c;用户画像就是对用户的各种特征贴上标签通过这些标签将用户分成不同的用户群体 为用户提供有针对性的服务。 制作用户画像是为了专注和精准 使产品的服务对象更加聚焦&#xff0c;更加专注&#xff1b;根据产…