一、本课题的目的和意义
随着Internet的广泛应用和计算机技术的飞速发展,计算机算法在其中发挥着极,其重要的作用。 为了更好地适应这个社会选拔人才的要求,同学们提高程序设计能力的愿望越发强烈,然而人工评测程序的效率还是很低的。因此在线评测系统应运而生了,在线评测系统主要由三个大的部分组成,即数据库部分,网站部分和编译器的调用部分。 程序设计竞赛系统是在互联网的基础上兴起的,随着WEB数据库技术的发展日趋成熟,国内的网络化竞赛正逐渐兴起。在线评判系统(简称OJ,Online Judge)指在线用来评判程序的正确性、时间与效率空间效率的评判系统,一般在ACM/ICPC(国际大学生程序设计竞赛),蓝桥杯等各种形式的编程比赛、教学或训练中用以评判提交的程序。
在线代码评测系统为确保提高学生代码编写能力提供了一个新的模式,在线评测系统其主要特性是多语言性,高效性,提交代码即可知道结果,并提供答题排行榜,这对提高学生编程的积极性也有一定的帮助。
二、课题的国内外开发动态
随着网络和计算机技术对当今社会及人们生活各个层面的逐渐渗透,我国的教育体系结构也在进行不断的改革与发展,计算机教育的发展已经成为了其中非常重要的一环,也是我国未来战略化发展多样性体制教育里不能缺少的重要组成部分。对于国内众多教授计算机科学的教育机构来说,如何快速准确获知学生的计算机水平,从而更好的为其提供选课参考、指导制定学习计划和学习目标,最终达到因材施教的效果成为了这些机构开始关注的问题。本文设计并实现了一个功能较为完善的计算机竞赛在线测评系统。
在国内,普遍地看,绝大多数远程教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台,作为网络课程重要组成部分的网络考试系统也相继问世。
三、课题的基本内容
本系统按功能分为以下几个模块:
(1)题库:在此模块可以查看全部的练习题,方便学生们的在线练习,可进行难度的筛选。
(2)提交记录:在此模块可以查看自己的提交记录和自己的提交代码,可以对自己的提交错误信息进行修改,也可以看其他人的提交记录,不已单机的形式展示。
(3)编程竞赛:在此模块可以参加学校老师举办的编程比赛,比如说校赛的举办,在此模块进行报名参赛,竞赛是具有一个时间段限制,开始时间和结束时间,在此期间可以进行答题,比赛过程中还可以查看时时的比赛排名。
(4)判题:判题模块也是系统的核心部分,主要负责把用户提交上来的代码进行编译和运行,然后判断答案是否正确,把结果返回给用户。
(5)登录注册:在此模块可以进行登录和新用户的注册。
四、拟解决的主要问题
(1) 业务逻辑的理解;
(2) 是需求的确定,各个功能点的需求必须明确;
(3) 是数据库逻辑结构的设计。
(4) 在线测评中编译和运行功能的开发研究。
(5) 在线测评的运行代码的安全性和性能。
五、课题设计的实现方案
本系统使用intellig idea、JAVA、HTML+CSS、Javascript 、MySQL、python3等技术和工具来实现。IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、JUnit、代码审查、设计等方面的功能可以说是超常的。
其中,创建、管理数据库使用的工具是MySQL关系型数据库,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。
六、研究方法
该毕业设计采用的研究方法主要有文献法和调查法。该毕业设计具体功能的获取过程主要使用文献法和走访调查法,通过网络调查和查阅网络资料来具体确定该软件的功能需求细节;在软件开发过程中,解决技术问
1