C++实战演练---负载均衡在线oj项目预热

顾得泉:个人主页

个人专栏:《Linux操作系统》 《C++从入门到精通》  《LeedCode刷题》

键盘敲烂,年薪百万!


前言

       学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题!!!


一、项目简介

       该项目是基于负载均衡的在线OJ平台,用户可以在浏览器访问各个题目,在编辑区编写代码提交,后端能够自动分配服务器资源,保持平衡的情况下为用户提供良好的编程运行环境,让代码快速运行和提交。

二、所需技术及开发环境

所需技术:

        C++ STL 标准库

        Boost 准标准库(字符串切割)

        cpp-httplib 第三方开源网络库

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

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

        负载均衡设计

        多进程、多线程

        MySQL C connect

        Ace前端在线编辑器(简单使用)

        html/css/js/jquery/ajax (简单使用)

开发环境:

        Centos 7 云服务器

        vscode

        Mysql Workbench

三、项目结构

我们的项目核心是三个模块

       1. comm : 公共模块

       2. compile_server : 编译与运行模块

       3. oj_server : 获取题目列表,查看题目编写题目界面,负载均衡,其他功能

一、leetcode结构

       我们只实现类似 leetcode 的题目列表+在线编程功能。

二、项目宏观结构

三、实现思路

       1. 先编写 compile_server

       2. oj_server

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

       4. 前端的页面设计

       5. version2 基于 MySQL 版的在线OJ

       目前所建立的结构树 :

四、预备工作

一、升级gcc

       用老的编译器,要么编译不通过,要么直接运行报错,大家可以自行百度搜索下载最新版的gcc,我当前的版本已经升级。

二、安装jsoncpp

   sudo yum install -y jsoncpp-devel

三、安装boost库

     sudo yum install -y boost-devel

       这个库安装稍慢,是我们所需要的开发库。


结语:关于该项目的简介这里就结束了,下篇文展将带大家深入实现项目部分功能,如果大家有什么问题,欢迎大家在评论区留言~~~ 

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

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

相关文章

使用streamlit构建网站

1.目的 最近团队有一个人脸识别的项目,想做一个网站界面来演示,同时使用了花生壳进行内网穿透,使得可以在其他设备访问该界面。 2.算法部分 import os os.environ[TF_CPP_MIN_LOG_LEVEL] 2 import matplotlib as mpl mpl.use(TkAgg) impo…

AI大模型探索之路-训练篇4:大语言模型训练数据集概览

文章目录 前言一、常用的预训练数据集1、网页2、书籍3、维基百科4、代码5、混合型数据集 二、常用微调数据集1、指令微调数据集1.1 自然语言处理任务数据集1.2 日常对话数据集1.3 合成数据集 2、人类对齐数据集 前言 在人工智能领域,构建强大的AI系统的关键步骤之一…

RTU遥测终端为城市排水安全保驾护航!

近年来,全球气候变迁与城市化进程不断加速,导致强降雨事件频发,道路低洼地带、下穿式立交桥和隧道等区域在暴雨中常易积水,严重阻碍了人民的出行,甚至危及生命与财产安全。而传统的排水管网管理方式已难以适应现代城市…

干货 :医疗企业渠道管理实战手册:策略、平台建设、CRM解决方案

最近与同行交流,对方调侃道:人形机器人和老头乐,应该也算医疗器械,是服务老人居家和出行的产品。确实,未来中国老龄化加重,医疗器械行业,也会注入新的增长动力。 长期以来,医疗器械…

用Vue做一个待办事项

这个待办事项有以下功能:增删查,既新增待办事项,删除待办事项,查看全部,未完成,完成待办事项,当鼠标移动到待办事项上时会显示删除按钮 分为四个部分来实现:ToDoHeader.vue、ToDoMai…

yudao-cloud微服务系统系统模块+后台管理系统成功运行

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列文章目录 第一章 芋…

Covalent Network(CQT)近三个月代币回购超 10 万美元

Covalent Network(CQT)报告了其代币回购计划的显著增长,自 2024 年 1 月底启动以来,已从公开市场回购了价值超过10万美元的 CQT 代币。该机制通过 Covalent Network(CQT)的 API 收入来回购 CQT 代币&#x…

大数据计算引擎中的Calcite

1.Calcite介绍 Calcite是一个动态数据库管理框架,具备数据库管理系统的功能 Calcite具备SQL解析、校验、优化、生成、连接查询等功能 Calcite能够为不同平台和数据源提供统一的查询引擎 2.Calcite能力 比如,对于HBase而言,没有SQL查询的能力…

【java】hashCode 方法

HashSet HashSet 是一个集合,该集合的作用是去重。 import java.util.HashSet; public class Test {public static void main(String[] args) {HashSet hashSet new HashSet();People people1 new People();People people2 new People();hashSet.add("hel…

大模型提示工程(Prompt)(上篇),掌握Prompt原理与技巧,提高AI生成内容质量

我们了解到,现在的大模型,基本都是基于transformer的GPT模型,以ChatGPT为例,之前我们提到了,它是一种基于GPT模型的对话生成模型,它可以让计算机自动学习对话语料库中的模式,并生成连贯、自然的…

C++中布隆过滤器

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

【css】select实现placeholder效果

场景&#xff1a;使用select下拉选择框的时候&#xff0c;需要像其他控件一样提示默认信息。 问题&#xff1a;表单控件select没有placeholder属性。 解决方案&#xff1a;通过css实现&#xff0c;不需要js <style>select > option[disabled]{ color:#999;cursor: n…