程序设计竞赛系统(源码)
随着计算机专业的学生的迅猛增多,为了解决程序题目评判的问题,开发程序设计竞赛系统。程序设计竞赛系统是一个在线评判代码正确性的系统,它能够接收学生的代码,并自动运行判断输入输出是否符合要求,从而判断代码的正确性。利用面向对象的软件工程的指导方法对系统进行需求分析和设计以及实现。本系统主要利用SpringMVC、Spring、Mybatis等技术搭建的B/S平台,封装并使用JVM的Runtime运行命令来做到自动评判。 关键字 程序设计竞赛系统, B/S 在线编译,自动评分
目录
1 引言 1
1.1 选题的背景及意义 1
1.2 国内外研究现状 1
1.3 研究方法 2
2 系统需求 2
2.1 可行性分析 2
2.2 目标系统 2
2.3 需求分析 3
2.4 系统约束 5
3 系统关键技术研究 6
3.1 组卷算法 6
3.2 评分原理 6
4 系统的总体设计 7
4.1 系统功能模块结构 7
4.2 系统数据库设计 8
5 详细设计与实现 13
5.1 前台界面设计 13
5.2 功能模块设计 15
6 测试 20
6.1 主要功能测试 21
结论 22
致谢 23
引言
选题的背景及意义
近年来,随着IT行业的火热发展,越来越多的高中毕业生选择计算机相关专业,甚至已经很多已经在工作的人都选择放弃现有职业转而从事计算机行业,计算机教育行业的发 应运而生,编程方面的发展尤为迅速,编程语言如雨后春笋一般蓬勃发展,各类技术,各大框架层出不穷。越来越多的高校开设计算机专业,学生的增长自然导致教师的教学任务的繁重,目前,我们计算机学院的编程课的所有竞赛都要靠教师一个一个运行去判断对错,题目复杂时甚至还需要放到编译器中运行,费时费力,有时过于劳累得到的答案还不准确难以提高学生的兴趣和能力。程序题不像客观题那样,对就是对,错就是错,也不像主观题那样,对错模棱两可。而是类似介于两者之间的一种题型,主观题可能做不到自动评 *好棒文|www.hbsrm.com +Q: ¥351916072$
分,但是程序题还是可以做到的,因为他的输入输出结果是固定的,这也是程序题的特点。为了方便教学,提高学生的思维和编码能力。一款自动命题、自动测评的软件成为需要。程序设计竞赛系统就是一个在线的测评系统,他可以对学生提交的源码进行编译和执行并通过预先设置的测试数据来检验程序代码的正确程度,并给予相应的分数,从而完成编程题目的自动测评。
国内外研究现状
目前,国内外网上测评系统都已经能很好地完成对客观题的测评,但对于一些主观性很强的问题,尤其是程序设计问题,都还没有找到很好地解决方案。
ACM/ICPC(ACM 国际大学生程序设计竞赛)是一公认的时间上最早的程序竞赛,他培养和锻炼了大学生的思维,丰富了学生课余生活。ACM/ICP使用的测试和练习系统拥有庞大的题库,可扩展性高,支持各种编程语言、性能强大、能够满足各种需求,其数据统计与分析,在线讨论等功能也很好的胜任了教学需要[1]。国内外类似的系统已经算不少,如北京大学,浙江大学等纷纷创建了自己的在线测评网站,包括蓝桥杯,算法之美等竞赛都是采用的类似ACM/ICPC一样的自动编译系统。当然,这些系统的评分规则也有些不同,ACM/ICPC作为世界上规模最大的竞赛,其评分规则自然严格,只要输出有一组不正确,那么便判错,包括一些著名大学自己开发的系统,其实现原理和评分规则都大同小异。但这种在线测评系统应用到真正的日常教学当中案例还不算多,原因在于其对输入输出的要求比较严格,而刚接触程序的新人比较难以适应。
研究方法
本课题采用软件工程的方法,使用面向对象对系统进行分析与开发。软件工程 是一门研究以工程学的角度去开发维护一款软件的学科,它让软件开发这项活动变得有章有法,步步为营。程序设计竞赛系统就是利用软件工程对系详细的分析,制作了行之有效的步骤。使用软件工程开发一个项目以一个项目管理者的角度去设计并开发一个系统。选择使用软件工程开发系统,不仅会使过程变得相当规范,合理的使用有限的资源,让系统满足最初的想法,达到高效高质,而且可以体验整个项目从无到有过程中的率动。面向对象的分析方法从问题的出发点,清楚的观察到系统中各个对象的关系与功能,各自的依赖关系,而且面向对象的分析方法使得分析与设计之间不再具有较大的界限。
系统需求
可行性分析
程序设计竞赛系统系统可以做到在线编译学生提交的代码,并运行获得输入输出结果,仅仅需要的是手动选择某一场竞赛,便可以实现自动,省时省力,只要测试数据设置的合理,又能保证评分的正确率,不仅可以节省教师的很多时间,还可以提高教师的工作效率,减轻工作压力;其交流系统也能促进师生之间的知识与经验的分享,可以帮助刚接触程序的新生快速熟悉知识,提高学生的学习兴趣。本系统一经上线,师生都会乐于使用它完成编程测试任务,只要有编程课,就会有用户来源。使用Java开发后台,H5开发前台,MySQL作为数据库,Java丰富的开源框架和我两年的Java开发经验都是的本项目的技术可行性的保障。
目标系统
经过对学校师生的走访,根据需求结合实际得到目标系统需要有三种类型的用户,学生,教师,管理员,各类型的用户对系统的需求如下。
学生要求系统能够提供以下功能:
管理自己的信息
报名参加竞赛功能
查询自己的信息成绩
能够有互相交流的地方
训练功能
教师要求系统能够提供以下功能:
管理自己的信息
能发起竞赛,包括题目设置,时间设置以及奖项设置
能查看、到处学生的成绩
推送通知
查看历次竞赛的得奖学生
网站管理员要求系统能够提供以下功能:
管理所有的信息
管理角色权限
能够为游客提供的功能有:
浏览
目录
1 引言 1
1.1 选题的背景及意义 1
1.2 国内外研究现状 1
1.3 研究方法 2
2 系统需求 2
2.1 可行性分析 2
2.2 目标系统 2
2.3 需求分析 3
2.4 系统约束 5
3 系统关键技术研究 6
3.1 组卷算法 6
3.2 评分原理 6
4 系统的总体设计 7
4.1 系统功能模块结构 7
4.2 系统数据库设计 8
5 详细设计与实现 13
5.1 前台界面设计 13
5.2 功能模块设计 15
6 测试 20
6.1 主要功能测试 21
结论 22
致谢 23
引言
选题的背景及意义
近年来,随着IT行业的火热发展,越来越多的高中毕业生选择计算机相关专业,甚至已经很多已经在工作的人都选择放弃现有职业转而从事计算机行业,计算机教育行业的发 应运而生,编程方面的发展尤为迅速,编程语言如雨后春笋一般蓬勃发展,各类技术,各大框架层出不穷。越来越多的高校开设计算机专业,学生的增长自然导致教师的教学任务的繁重,目前,我们计算机学院的编程课的所有竞赛都要靠教师一个一个运行去判断对错,题目复杂时甚至还需要放到编译器中运行,费时费力,有时过于劳累得到的答案还不准确难以提高学生的兴趣和能力。程序题不像客观题那样,对就是对,错就是错,也不像主观题那样,对错模棱两可。而是类似介于两者之间的一种题型,主观题可能做不到自动评 *好棒文|www.hbsrm.com +Q: ¥351916072$
分,但是程序题还是可以做到的,因为他的输入输出结果是固定的,这也是程序题的特点。为了方便教学,提高学生的思维和编码能力。一款自动命题、自动测评的软件成为需要。程序设计竞赛系统就是一个在线的测评系统,他可以对学生提交的源码进行编译和执行并通过预先设置的测试数据来检验程序代码的正确程度,并给予相应的分数,从而完成编程题目的自动测评。
国内外研究现状
目前,国内外网上测评系统都已经能很好地完成对客观题的测评,但对于一些主观性很强的问题,尤其是程序设计问题,都还没有找到很好地解决方案。
ACM/ICPC(ACM 国际大学生程序设计竞赛)是一公认的时间上最早的程序竞赛,他培养和锻炼了大学生的思维,丰富了学生课余生活。ACM/ICP使用的测试和练习系统拥有庞大的题库,可扩展性高,支持各种编程语言、性能强大、能够满足各种需求,其数据统计与分析,在线讨论等功能也很好的胜任了教学需要[1]。国内外类似的系统已经算不少,如北京大学,浙江大学等纷纷创建了自己的在线测评网站,包括蓝桥杯,算法之美等竞赛都是采用的类似ACM/ICPC一样的自动编译系统。当然,这些系统的评分规则也有些不同,ACM/ICPC作为世界上规模最大的竞赛,其评分规则自然严格,只要输出有一组不正确,那么便判错,包括一些著名大学自己开发的系统,其实现原理和评分规则都大同小异。但这种在线测评系统应用到真正的日常教学当中案例还不算多,原因在于其对输入输出的要求比较严格,而刚接触程序的新人比较难以适应。
研究方法
本课题采用软件工程的方法,使用面向对象对系统进行分析与开发。软件工程 是一门研究以工程学的角度去开发维护一款软件的学科,它让软件开发这项活动变得有章有法,步步为营。程序设计竞赛系统就是利用软件工程对系详细的分析,制作了行之有效的步骤。使用软件工程开发一个项目以一个项目管理者的角度去设计并开发一个系统。选择使用软件工程开发系统,不仅会使过程变得相当规范,合理的使用有限的资源,让系统满足最初的想法,达到高效高质,而且可以体验整个项目从无到有过程中的率动。面向对象的分析方法从问题的出发点,清楚的观察到系统中各个对象的关系与功能,各自的依赖关系,而且面向对象的分析方法使得分析与设计之间不再具有较大的界限。
系统需求
可行性分析
程序设计竞赛系统系统可以做到在线编译学生提交的代码,并运行获得输入输出结果,仅仅需要的是手动选择某一场竞赛,便可以实现自动,省时省力,只要测试数据设置的合理,又能保证评分的正确率,不仅可以节省教师的很多时间,还可以提高教师的工作效率,减轻工作压力;其交流系统也能促进师生之间的知识与经验的分享,可以帮助刚接触程序的新生快速熟悉知识,提高学生的学习兴趣。本系统一经上线,师生都会乐于使用它完成编程测试任务,只要有编程课,就会有用户来源。使用Java开发后台,H5开发前台,MySQL作为数据库,Java丰富的开源框架和我两年的Java开发经验都是的本项目的技术可行性的保障。
目标系统
经过对学校师生的走访,根据需求结合实际得到目标系统需要有三种类型的用户,学生,教师,管理员,各类型的用户对系统的需求如下。
学生要求系统能够提供以下功能:
管理自己的信息
报名参加竞赛功能
查询自己的信息成绩
能够有互相交流的地方
训练功能
教师要求系统能够提供以下功能:
管理自己的信息
能发起竞赛,包括题目设置,时间设置以及奖项设置
能查看、到处学生的成绩
推送通知
查看历次竞赛的得奖学生
网站管理员要求系统能够提供以下功能:
管理所有的信息
管理角色权限
能够为游客提供的功能有:
浏览
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/1554.html