此外,在许多高校的编程语言课堂上,作业和考试都要求学生写出解决问题的源 代码,然而这种考核编程能力的方法十分低效且效果不佳。一行行去读代码非常耗时, 而且理解别人写的代码也不容易,即使读懂也难以发现细微之处的错误。不仅仅是课 堂,在企业笔试面试时也面临此问题。
综上所述,为了达到程序设计竞赛的要求,同时服务于程序设计的课堂教学和考 核,一个程序设计竞赛自动阅卷系统必不可少。
1。2 研究现状
1。3 主要内容
全文分为五个章节,每章的主要内容如下: 第一章—绪论,介绍本项目的研究背景与意义,并分析了国内外研究现状。 第二章—相关技术及环境配置,介绍了开发课题用到的技术,开发过程中使用的
工具及配置环境的方法。 第三章—系统总体设计,首先进行了需求分析,接着进行了可行性研究,最后给
出了系统模型及相对应的各类图表。 第四章—是详细设计与实现,介绍了系统四个模块的详细设计,并结合关键代码,
展示实现方式。 第五章—系统测试,介绍了测试平台与工具,并设计测试方案,最后对测试结果
进行分析。
第二章 相关技术及环境配置
在进入正式开发之前,必须学习、掌握相关技术。本章主要介绍在开发前端、后 端、数据库和判题模块中使用到的技术、工具,以及配置运行环境的方法,它们是完 成整个系统必不可少的因素。
2。1 相关技术介绍
OJ 系统本质上就是一个特殊的网站。因此需要用到网页开发的相关技术,前端 使用到 HTML、JavaScript、Bootstrap,后台使用了 Nodejs 开发,数据库采用非关系 型数据库 MongoDB。最后,判题模块使用 C++语言编程实现。 文献综述
2。1。1 Bootstrap 介绍
Bootstrap 是为开发网站和网络应用设计的开源免费的前端库。集成了基于 HTML 和 CSS 的一系列模板,包含了排版、表格、按钮、导航和其他界面组件[2],目的在于 简化动态网站和网络应用的开发。
最初,Bootstrap 被称为 Twitter Blueprint,由 Mark Otto 和 Jacob Thornton 在 Twitter 工作时开发,于 2011 年 8 月发布。在此之前,界面开发需要很多不同的 库,这导致了高昂的维护负担。
Chorme、FireFox、IE、Opera、Safari 等常见的浏览器均支持 Bootstrap。 Bootstrap 从 2。0 版本开始支持响应式页面,可以根据不同设备(台式电脑、平板电 脑、手机等)的特点,动态调整网页布局。从第三版开始,更是把手机端放在第一位, 默认开启响应式设计。
Bootstrap 开源发布在 GitHub 上。开发者可以参与到项目中,做出自己的贡献。 本文会在之后的章节阐述课题中使用 Bootstrap 的方法及产生的效果。
2。1。2Node。js 介绍
Node。js 于 2009 年 5 月发布,是一个开源、跨平台的开发服务器端 Web 应用的 运行环境。虽然 Node。js 不是 JavaScript 框架,但它的许多基本模块是用 JavaScript 语言编写的,开发者可以使用 JavaScript 编写新的模块。它使用 Google V8 引擎解 析 JavaScript 语言[3]。
Node。js 采用能够处理异步 I/O 请求的事件驱动架构,目的在于提高 Web 应用的
吞吐量和可扩展性。更适合于有大量输入输出操作的 Web 应用,例如及时通讯软件和 网页游戏。
Node。js 的开发由 Node。js 基金会主导,Linux 基金会的合作项目提供支持。目 前,IBM、LinkedIn、微软、雅虎等大公司都在使用 Node。js。