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

做网站用到的技术网站关键词排名服务

做网站用到的技术,网站关键词排名服务,义乌网站建设多少钱,好的h5制作网站模板一.前言 前文讲到了OJ模块的设计思路,毫无疑问这是一个网络服务,我们先使用httplib,将源文件的路由功能实现,先把框架写好,后续再更改回调方法。 随后计划编写Modify模块,提供增删查改题库的功能(主要是查…

一.前言

前文讲到了OJ模块的设计思路,毫无疑问这是一个网络服务,我们先使用httplib,将源文件的路由功能实现,先把框架写好,后续再更改回调方法。

随后计划编写Modify模块,提供增删查改题库的功能(主要是查),所以在这之前,我们必须先构建一个题库。题库有文件和MySQL两种版本,我们暂时先写文件版的。

二.源文件路由功能

所谓的路由,即用户访问不同的URL,我们调用不同的方法来构建response,这需要我们在启动服务之前注册回调函数。

#include <iostream>
#include "../Common/httplib.h"using namespace httplib;int main()
{Server svr;//获取题目列表svr.Get("/all_questions", [](const Request& req, Response& resp){resp.set_content("这是所有题目的列表", "text/plain; charset=utf-8");});//根据题目编号,获取题目内容svr.Get(R"(/questions/(\d+))", [](const Request& req, Response& resp){std::string number = req.matches[1]; //拿到正则表达式匹配到的内容resp.set_content("这是指定的一道题:" + number, "text/plain; charset=utf-8");});//提交代码判题获取结果svr.Get(R"(/judge/(\d+))", [](const Request& req, Response& resp){std::string number = req.matches[1]; //拿到正则表达式匹配到的内容resp.set_content("这是指定的一道题判题:" + number, "text/plain; charset=utf-8");});//设置web根目录,首页就是wwwroot下的index.htmlsvr.set_base_dir("./wwwroot");svr.listen("0.0.0.0", 8080);return 0;
}

 回调函数中的内容等我们完成MVC三个模块后再更改

三.文件版题库构建

一道题目的相关信息如下:

  1. 题目编号
  2. 题目名称
  3. 题目难度
  4. 题目内容
  5. 时间和空间资源约束
  6. 预设的初始代码
  7. 用来测试用户提交代码正确性的代码,包含多组测试用例

其中1-6是会展示给用户,而用来测试的代码是OjServer自己内部使用的。OjServer收到了用户提交的代码,再把测试代码拼接到尾部,构造一个完整的源文件,再放到编译运行模块去运行,得到运行结果,看看通过了几组测试用例。

也就是说,我们设计的是类似leetcode的OJ模式,只让用户实现核心功能,用户不能自己编写main函数。

把这些内容都放在一个文件里不太合适,题目内容,初始代码,测试代码内容较多,应该分开存放,其余内容用一个文件存放即可。

即所有题目的题号,名称,难度,时间约束,空间约束都放在questions.list中,一个题目相关的信息占一行。

一个题目的内容,初始代码,测试代码放到一个文件以题号命名的文件夹中,分三个文件存放。有多少个题目,就建立多少个文件夹。结构如下图:

将来题库是需要加载到内存中的,先加载questions.list文件,而每行都含有题号,根据题号,去相应的以题号命名的文件夹中就能找到对应的题目内容,初始代码和测试代码。所以这两批文件就通过用题号给文件夹命名的方法关联起来了。

四.题目实例

下面以题库中的第一题为例,看看文件里都有什么内容

questions.list:

1/desc.txt: 

1/header.cpp: 

1/tail.cpp: 

说明:如果不引入header.cpp,就没有Solution类,编写测试代码时就会有语法报错,所以开头的条件编译是为了编写tail.cpp时更加方便,不产生语法报错。

正式提交给编译模块的时候,用户提交的代码和tail.cpp已经合并到一块。我们可以在稍微更改一下编译模块,加上-D COMPILE_ONLINE,引入这个宏常量后就不会执行#include了

http://www.ds6.com.cn/news/24136.html

相关文章:

  • 珠宝网站模板seo培训讲师招聘
  • 衡水网站建网页搜索优化
  • 织梦网站怎样做锚文本社群营销活动策划方案
  • 国外服务器租用价格宁波seo公司排名榜
  • 研磨材料 东莞网站建设黄金网站软件免费
  • 万州建网站市场营销推广方案怎么做
  • 2018网站开发学大教育培训机构怎么样
  • 企业网站制作心得站长工具seo综合查询工具
  • 广州网站建设88搜索百度
  • 江苏住房和建设厅网站爱站网的关键词是怎么来的
  • 设计师设计费一般多少seo初学教程
  • 武汉网站建设有名 乐云践新友情链接检测平台
  • 北京做网站制作公司今日头条国际新闻
  • 住房和城乡建设委员会门户网站哪里注册域名最便宜
  • 西安网站制作公司哪seo包年优化平台
  • 网站推广软文几个绝招seo网站关键字优化
  • 如何做展示型网站外贸网站seo
  • 做散客机票的网站如何推广搜索百度网页版
  • 绵阳市做公司网站无代码免费web开发平台
  • 网站关键词挖掘给你一个网站怎么优化
  • 北京十佳网站建设商务软文写作范文200字
  • 贵阳开发网站建设天津百度推广排名优化
  • 聊天网站制作教程企业网站优化服务
  • 怎么制作网站首页平台推广费用
  • 做网站内嵌地图百度最新版app下载安装
  • 网站做站群网络广告营销典型案例
  • 猪八戒网做网站个人网站制作源代码
  • 做电影网站要怎么拿到版权网站流量排名查询工具
  • 哪家公司做网站专业长沙网络营销学校
  • 找事做网站怎么弄沪指重上3000点