【SQL开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了SQL开源代码-ACM在线评判系统设计与实现 - 期刊论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
34 Computer Era No. 2 2010 ACM 在线评判系统设计与实现 刘 楠,孙国道,田贤忠 浙江工业大学信息工程学院,浙江 杭州 310014 摘 要: 开发了 Online Judge 系统,即在线评判系统,主要应用于 ACM/ICPC 国际大学生程序设计竞赛中。
系统采用 Struts1.2Spring2.5Hibernate3.2SSH1组合框架。
分析了 ACM 在线评判系统的功能,阐述了系统技术,以 及 SSH 技术在实际开发中的应用,最后说明了数据库和内核的设计实现思路。
关键词:在线评判系统;Web 开发;SSH1 框架;ACM/ICPC;J2EE Design and Implementation of ACM Online Judge System LIU Nan,SUN Guo-dao,TIAN Xian-zhong (College of Information Engineering Zhejiang University of Technology Hangzhou Zhejiang 310014 China) Abstract: Online Judge system is developed which is mainly used in ACM/ICPC International Collegiate Programming Contest. The system uses Struts1.2 Spring2.5 Hibernate3.2 namely combination framework SSH1. The function of ACM online judge system is analyzed. The design and implementation technologies of the system and the application of SSH technology in actual development are expounded. Finally ideas of the design and implementation for the database and kernel are explained. Key
words:online judge system;
web development;SSH1 framework;ACM/ICPC;J2EE0 引言 它需要一个数据库来存储试题、用户信息、比赛信息等。
其次,比赛期间需要对所有参赛用户提交的结果进行统 ACM/ICPCACM International Collegiate Programming 计,并根据 ACM/ICPC 的标准规则,按照以下优先级顺序排名:Contest,国际大学生程序设计竞赛是由历史悠久、颇具权威性 解题多少,使用时间多少。
其中使用时间包括用户提交了错误的组织 ACM(Association for Computing Machinery 国际计算 每次 20 分钟。
程序的处罚时间,机协会)主办的,是世界上公认的规模最大、水平最高的国际大 再次,由于用户的代码会在服务器中运行,用户有可能无学生程序设计竞赛项目,其目的是促进大学生提高运用计算机 意甚至恶意提交含有危险操作的代码程序,比如在程序中执行分析问题和解决
问题的能力1。
关机,格式化硬盘等,所以系统必须采取有效措施,以保证系统 ACM 在线评判系统是该项比赛的评判事务处理平台,是 安全。
一个基于 B/S 结构的多用户在线系统,允许用户在线提交自己 基于以上因素的分析,我们为 ACM 在线评判系统
设计了的解题代码,系统自动编译运行给出裁判结果,并根据用户解 以下六个模块:用户模块,试题库模块,裁判模块,比赛模块,站题数和用时排出名次。
内信模块,新闻公告模块。
1 系统功能需求分析 其中裁判模块是系统的核心,它负责启动运行编译好的用 本文设计的评测系统的判题流程为: 户程序,需要完成的工作流包括:启动程序,设置安全,重定向 当用户登录之后,可以在线查阅题库中的试题,并在客户 输入输出流,写入测试数据,获取输出答案,比较答案,以文件端电脑先调试自己的解题程序,然后将代码提交给系统;随后 形式返回裁判结果。
系统安全则通过用户权限、访问限制等手系统将产生一条数据库记录保存本次提交,同时保存用户提 段加以保证。
交的代码;接着调用用户提交时选择的编译器编译用户的代 系统的功能模块结构如图 1 所示。
码,再启动编译好的程序,并将测试数据输入该程序,通过输 ACM 在线评判系统入输出流的重定向,获取用户
程序的输出结果,与标准答案比 试 站 用 裁 比 新较;最后将比较结果写入数据库同时反馈给用户本次判定的 户 题 判 赛 闻 内 库 信 模 模 模 公结果。
块 模 块 块 告 模 块 块 首先,ACM 在线评判系统应被设计为一种 B/S 结构的、可多人在线练习编程的、参加 ACM 竞赛的 Web 应用系统。
显然, 图1 系统功能结构图 基金项目:浙江工业大学校教改项目JG0812
计算机时代 2010 年 第 2 期 352 系统设计 客户端: HTML 超文本 业务处理基类 BaseService 具体业务实现类 ServiceBean Hibernate 数据库 连接配置文件 MySQL 数据库文件2.1 技术
方案 表示层 控制层 业务层 持久层 数据层 传统 J2EE 结构使用 JSPServletJavaBean 实现表示层、控制层、模型的三层结构,尽管采用 MVC 设计模式,但是分层结 服务器端: JSP 页面和标签 前端控制器 Action 组件 业务控制器 Action 组件 业务实体类 PO JavaBean 具体数据操作类 DAO
JavaBean 数据操作基类 BaseDAO JavaBean构仍然有太