当前位置: 首页 > news >正文

在线OJ平台项目

一、项目源码

Online_Judge · yblhlk/Linux课程 - 码云 - 开源中国 (gitee.com)


二、所用技术与开发环境

1.所用技术:

MVC架构模式 (模型-视图-控制器)

负载均衡系统设计

多进程、多线程编程

C++面向对象编程 & C++ 11 & STL 标准库

C++  Boost 准标准库

jsoncpp     第三方开源序列化、反序列化库

cpp-httplib 第三方开源网络通信库

ctemplate  第三方开源前端网页渲染库

Ace前端在线编辑器

html/css/js/jQuery/ajax

使用Postman进行网络服务测试

2.开发环境

Centos 7.8 云服务器

VSCode

Google Chrome

Mysql Workbench


三、项目宏观结构

I. 项目模块介绍

我们的项目核心是两个模块:

1. compile_server : 编译与运行模块。

2. oj_server : 文件/数据库交互,网页渲染,负载均衡,其他功能。

II.项目宏观结构图

III.编写思路

采取从后端向前端实现的思路

1. 先编写 compile_server

2. oj_server

3. version1 基于文件版的在线OJ

4. 前端的页面设计

5. version2 基于 MySQL 版的在线OJ

先编写整体结构(需要什么函数),然后再实现函数细节(包括返回值和参数的调整)


四、compiler_server目录

 1.compiler.hpp (编译模块)

 2.runner.hpp (运行模块)

 3.compile_run.hpp(编译、运行的整合模块)

 

 4.compile_server.cc (处理编译运行代码的网络请求)

 

 5.使用Postman对compile_server进行整体测试

Postman是一款功能强大的网页调试、HTTP请求发送及接口测试用例运行的工具

能够模拟各种HTTP Request如GET、POST 、header、 PUT、 DELETE…等等

请求中还可以发送文件(图片、文本文件等)、额外的header等,实现特定的接口测试

能够高效的帮助后端开发人员独立进行接口测试

PostMan——安装使用教程

也可以在chrome里面安装Postman插件

如何在 Postman 中进行 HTTPS 请求 (baidu.com)


五、OJ_server目录

        未完待续……

相关文章:

在线OJ平台项目

一、项目源码 Online_Judge yblhlk/Linux课程 - 码云 - 开源中国 (gitee.com) 二、所用技术与开发环境 1.所用技术: MVC架构模式 (模型-视图-控制器) 负载均衡系统设计 多进程、多线程编程 C面向对象编程 & C 11 & STL 标准库 C Boost 准标…...

go语言kafka入门

消息队列:一种基于异步通信的解耦机制,用于在应用程序或系统组件之间传递消息和数据 消息队列相关概念: 生产者(Producer):生成并发送消息到消息队列中的应用程序或系统组件。 消费者(Consumer&…...

自定义拖拽功能,上下拖拽改变盒子高度

核心在于监听鼠标的move来改变div的高度&#xff0c;抽成了组件 <template><div ref"container" class"drag"><z-tooltip v-if"isShowIcon" effect"dark" content"格式化" placement"top-start"&…...

JavaScript Es6_4笔记

JavaScript 进阶 文章目录 JavaScript 进阶深浅拷贝浅拷贝深拷贝递归实现深拷贝js库lodash里面cloneDeep内部实现了深拷贝JSON序列化 异常处理throwtry ... catchdebugger 处理this普通函数箭头函数改变this指向callapplybind 防抖节流 深浅拷贝 浅拷贝 首先浅拷贝和深拷贝只…...

Python“牵手”易贝(Ebay)商品列表数据,关键词搜索ebayAPI接口数据,ebayAPI接口申请指南

Ebay平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c; EbayAPI接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问Ebay平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现Ebay平…...

C语言:选择+编程(每日一练Day8)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;字符个数统计 思路一&#xff1a; 题二&#xff1a;多数元素 思路一&#xff1a; 本人实力有限可能对一些…...

使用 uniapp 适用于wx小程序 - 实现移动端头部的封装和调用

图例&#xff1a;红框区域&#xff0c;使其标题区与胶囊对齐 一、组件 navigation.vue <template><view class"nav_name"><view class"nav-title" :style"{color : props.color, padding-top : toprpx,background : props.bgColor,he…...

ARM Linux 系统稳定性分析入门及渐进 13 -- gdb 反汇编 disassemble 命令详细介绍及举例】

文章目录 1.1 gdb 调试回顾1.1.1 gdb list 命令介绍 1.2 反汇编命令 dis 介绍1.2.1 如何设置 gdb 汇编代码的格式 1.1 gdb 调试回顾 在GNU调试器&#xff08;GDB&#xff09;中&#xff0c;有许多命令可以帮助我们调试应用程序。 gdb: 这是一个强大的Unix下的程序调试工具。以…...

python连接Microsoft SQL Server 数据库

python代码 Author: tkhywang 2810248865qq.com Date: 2023-08-21 11:22:24 LastEditors: tkhywang 2810248865qq.com LastEditTime: 2023-08-21 11:29:30 FilePath: \PythonProject02\Microsoft SQL Server 数据库.py Description: 这是默认设置,请设置customMade, 打开koroFi…...

docker可视化工具

安装Portainer 官方安装说明&#xff1a;https://www.portainer.io/installation/ [rootubuntu1804 ~]#docker pull portainer/portainer[rootubuntu1804 ~]#docker volume create portainer_data portainer_data [rootubuntu1804 ~]#docker run -d -p 8000:8000 -p 9000:90…...

MySQL 用户管理操作

目录 一、用户管理概述 二、用户管理 1、创建用户 2、删除用户 三、账户密码管理 1、root用户修改自己的密码 2、ROOT用户修改其他普通用户密码 3、普通用户修改自己的密码 4、ROOT用户密码忘记解决办法 1&#xff09;Linux系统 2&#xff09;windows系统 四、用户权…...

【python办公自动化】PysimpleGUI中的popup弹窗中的按钮设置居中

PysimpleGUI中的popup弹窗中的按钮设置居中 背景问题解决背景 默认的popup弹窗中的OK按钮是在最下面偏左侧一些,有时需要将按钮放置居中 问题解决 首先找到pysimplegui源代码文件中popup的部分 然后定位到19388行,源文件内容如下 关于popup弹窗OK按钮的设置,将pad属性…...

postgresql 同步流复制两个相关参数synchronous_commit 和 synchronous_standby_names

一&#xff1a;synchronous_commit 1.synchronous_commit参数含义 这个参数用来设置事务提交返回客户端之前&#xff0c;一个事务是否需要等待 WAL 记录被写入磁盘。合法的值是{local,remote_write,remote_apply,on,off}。默认设置是on。 2.各可选值含义 2.1 local 当事务…...

运算放大器发展史

在内部集成了一个补偿电容 MPS公司OP07推出后&#xff0c;大受欢迎。各家厂商都推出了自己的 这4款都是可以替换的...

LVS+Keepalived 实验

Keepalived 是什么 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题的一款检查工具 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色的服务器…...

FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装

FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装 0. 界面预览1. Docker安装1.1 下载docker镜像1.2 启动docker镜像1.3 登录 2. 脚本安装2.1 下载2.2 安装2.3 登录2.4 卸载程序 3. 镜像安装3.1 下载镜像3.2 安装镜像3.3 登录 0. 界面预览 http://myfs.f3322.net…...

内网渗透神器CobaltStrike之权限提升(七)

Uac绕过 常见uac攻击模块 UAC-DLL UAC-DLL攻击模块允许攻击者从低权限的本地管理员账户获得更高的权限。这种攻击利用UAC的漏洞&#xff0c;将ArtifactKit生成的恶意DLL复制到需要特权的位置。 适用于Windows7和Windows8及更高版本的未修补版本 Uac-token-duplication 此攻…...

使用haproxy搭建web架构

haproxy HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。 HAProxy提供了可以在七层和四层两种负载均衡能力&#xff0c;它可以提供高可用性、负载均衡、及基于TCP和HTTP应用的代理。适用于负载大的Web站点&#xff0c;在运行在硬件上可…...

Java基础之IO流File类创建及删除

1.File类概述及构造方法 2.File类创建功能 文件创建成功&#xff01; 如果文件不存在&#xff0c;就创建文件&#xff0c;并返回true 如果文件存在&#xff0c;就不创建文件&#xff0c;并返回false 如果文件夹不存在&#xff0c;就创建文件夹&#xff0c;并返回true 如果文件…...

高速道路监控:工业路由器助力高速监控远程管理与维护

工业路由器在物联网应用中扮演着重要的角色。物联网的发展使得大量设备和传感器能够互联互通&#xff0c;而工业路由器作为连接这些设备和网络的中间桥梁&#xff0c;承担着数据传输和安全管理的重要责任。 工业路由器能够为高速监控提供网络功能&#xff0c;实现户外无线网络部…...

11.0592MHz晶振在51单片机串口通信中的优势解析

1. 为什么11.0592MHz晶振成为单片机工程师的首选在嵌入式系统设计中&#xff0c;晶振的选择往往决定了整个系统的稳定性和精度。作为一名从事单片机开发多年的工程师&#xff0c;我发现11.0592MHz的晶振在51单片机项目中出现的频率异常高。这绝非偶然&#xff0c;而是由一系列精…...

nRF52与RFX2401C的PA+LNA优化方案:基于SoftDevice的高效驱动实现

1. 为什么需要PA和LNA优化方案 如果你正在用nRF52开发BLE设备&#xff0c;可能会遇到这样的困扰&#xff1a;明明参数配置没问题&#xff0c;但通信距离就是达不到预期。这时候就该请出我们今天的主角——RFX2401C这颗PA/LNA芯片了。我去年做智能牧场项⽬时就踩过这个坑&#…...

2025.12晶晨S905L3S-L3SB安卓9通刷实战:当贝桌面加持,解锁多品牌盒子新玩法

1. 晶晨S905L3S-L3SB通刷包的前世今生 第一次听说晶晨S905L3S-L3SB芯片能通刷时&#xff0c;我正对着家里三台不同品牌的电视盒子发愁。这些盒子有的来自运营商赠送&#xff0c;有的是二手市场淘来的&#xff0c;虽然硬件配置相近&#xff0c;但系统体验天差地别。直到发现这个…...

Argos Translate:5分钟掌握开源离线翻译API的全面集成方案

Argos Translate&#xff1a;5分钟掌握开源离线翻译API的全面集成方案 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate Argos Translate是一款基于Ope…...

别再手动改daemon.json了!1Panel面板里一键配置Docker国内镜像源(附最新可用源列表)

1Panel面板实战&#xff1a;3分钟搞定Docker国内镜像加速配置 刚部署完1Panel的新用户总会遇到一个经典问题——Docker拉取镜像慢得像蜗牛爬。传统解决方案是手动编辑daemon.json文件&#xff0c;但如今有了更优雅的选择。作为一款现代化服务器管理面板&#xff0c;1Panel将复杂…...

UDS诊断服务-10例程控制服务(0x31)实战:从协议解析到车辆传感器校准

1. 从车辆抖动问题认识0x31服务的重要性 去年夏天&#xff0c;我遇到一辆行驶里程8万公里的SUV&#xff0c;车主反映急加速时发动机抖动明显。用诊断仪读取故障码显示"P0172 - 燃油修正系统过浓"&#xff0c;但更换氧传感器和火花塞后问题依旧。这时候就需要请出我们…...

CogVideoX-2b多轮迭代技巧:基于首版视频反馈优化Prompt的实战方法

CogVideoX-2b多轮迭代技巧&#xff1a;基于首版视频反馈优化Prompt的实战方法 1. 从新手到导演的快速入门 如果你正在寻找一个简单好用的文字生成视频工具&#xff0c;CogVideoX-2b可能会成为你的新宠。这个基于智谱AI开源模型的工具&#xff0c;专门为AutoDL环境优化&#x…...

Pixel Couplet Gen部署案例:混合云架构(公有云API+私有云模型)方案

Pixel Couplet Gen部署案例&#xff1a;混合云架构&#xff08;公有云API私有云模型&#xff09;方案 1. 项目背景与价值 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成器。该项目基于ModelScope大模型驱动&#xff0c;通过创新的8-bit像素游戏UI设…...

解决Android 12 NFC功能失效:PendingIntent.FLAG_MUTABLE的正确用法

Android 12 NFC开发实战&#xff1a;PendingIntent可变性标志的深度解析 在移动支付和门禁系统逐渐普及的今天&#xff0c;NFC技术已经成为现代智能手机不可或缺的功能之一。然而&#xff0c;随着Android系统的版本迭代&#xff0c;开发者们不得不面对各种兼容性挑战。特别是在…...

Hi3559平台ISP调试实战:从参数配置到画质优化

1. Hi3559平台ISP基础概念与工作原理 第一次接触Hi3559平台的ISP模块时&#xff0c;我完全被各种专业术语搞晕了。后来在调试车载摄像头项目时才发现&#xff0c;理解ISP的工作原理对画质优化有多重要。简单来说&#xff0c;ISP就像是我们手机里的美颜功能&#xff0c;只不过它…...