logo资料库

linux三级项目 ACM自动测评系统.doc

第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
资料共31页,剩余部分请下载后查看
1.项目概述
1.1.项目背景
1.2.问题描述
1.3.主要技术
2.需求分析
2.1.存储需求
2.2.控制流程
2.3.可行性分析
3.总体设计
3.1.系统架构
3.2.J1模块
3.3.J2模块
3.4.数据库模块
3.5.开发工具
4.详细设计
4.1.数据文件
4.1.1. 建立2级目录
4.1.1. 题目子目录
4.2.数据库
4.2.1. 学生信息表
4.2.2. 题目信息表
4.2.3. 提交过程表
4.3.J1设计
4.3.1.数据库连接
4.3.2.学生信息表操作
4.3.3.题目信息表操作
4.3.4.shell中sql语句与bash命令切换
4.4.J2设计
4.4.1.J2的工作流程
4.4.2.实现细节
5.项目结果
5.1.主界面
5.2.数据库
5.2.1.进入mysql
5.2.2.创建sys数据库
5.2.3.创建学生表
5.2.4.创建题目表
5.2.5.创建提交信息表
5.2.6.创建完成的数据库
5.3.J1模块
5.3.1.学生信息添加
5.3.2.学生信息删除
5.3.3.学生信息查询
5.3.4.学生信息修改
5.3.5.题目信息增加
5.3.6.题目信息删除
5.3.7.题目信息查询
5.3.8.题目信息修改
5.4.J2
5.4.1.60s定时成功
5.4.2.J2运行过程
5.4.3.测评结果成功提交到submit_table
6.心得总结
, Linux 三级项目需求分析报告 Linux Applied Technology Experiment Report
ACM 程序自动评测系统 (燕山大学 信息科学与工程学院) 摘 要: 随着计算机技术的发展和提高,计算机辅助评价(CAA)已成为当前 计算机教育应用的热点研究问题。本次 Linux 三级项目则是基于此对是 ACM 程序 实现自动测评,实现程序源代码的自动化。本系统通过利用 Linux 中 Shell 高级程序 设计及 Mysql 实现一个 ACM 程序自动评测系统。系统分为两个部分,数据库部分、 测评部分,其中测评部分包括 J1 负责基本信息维护(设置)、J2 负责评测程序; 通过对自动测评系统进行验证与分析,表明本系统采用的方法能够的程序实现自动 测评,设计和开发的自动测评系统具有一定的实用价值。 关键词: Bash; Mysql;自动测评
目 录 1. 项目概述...................................................................................................................... 1 1.1. 项目背景..........................................................................................................1 1.2. 问题描述..........................................................................................................1 1.3. 主要技术..........................................................................................................1 2. 需求分析...................................................................................................................... 2 2.1. 存储需求..........................................................................................................2 2.2. 控制流程..........................................................................................................2 2.3. 可行性分析......................................................................................................2 3. 总体设计...................................................................................................................... 3 3.1. 系统架构..........................................................................................................3 3.2. J1 模块.............................................................................................................3 3.3. J2 模块.............................................................................................................4 3.4. 数据库模块......................................................................................................5 3.5. 开发工具..........................................................................................................6 4. 详细设计...................................................................................................................... 7 4.1. 数据文件..........................................................................................................7 4.2. 数据库..............................................................................................................8 4.3. J1 设计.............................................................................................................9 4.4. J2 设计...........................................................................................................10 5. 项目结果.................................................................................................................... 14 5.1. 主界面............................................................................................................14 5.2. 数据库............................................................................................................14 5.3. J1....................................................................................................................16 5.4. J2....................................................................................................................19 6. 心得总结.................................................................................................................... 22 参考文献.......................................................................................................................... 23
1. 项目概述 1.1. 项目背景 在计算机技术高速发展的今天,计算机技术已经渗透到我们身边的各个领 域,ACM 国际大学生程序设计竞赛是由国际计算机协会主办的,旨在展示大 学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞 赛。一个良好的程序测评系统,为比赛的公平、公正、高效提供了保证。 1.2. 问题描述 (1) 教师有多道 C 语言题目要求及测试用例; (2) 利用 Linux 中 Shell 高级程序设计,帮助教师开发一个程序自动评测系统(教 师用); (3) 学生完成 C 语言程序设计后,提交到系统,系统自动评测学生提交的 C 语 言程序是否通过测试。 (4) 教师利用此系统管理学生信息、题目信息、提交过程信息。 1.3. 主要技术 (1) Shell:作为命令语言,它交互式解释和执行用户输入的命令 或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定 义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循 环和分支。 (2) Bash: 是一个为 GNU 计划编写的 Unix shell。是大多数 Linux 系统以及 Mac OS X 默认的 shell。 (3) MySQL:是一个关系型数据库管理系统,MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总 体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据。 1
2. 需求分析 2.1. 存储需求 (1) 存储学生的基本信息(ID 号,姓名,班级,学号)。可以逐条输入,可以 批量导入; (2) 存储题目信息(题目 ID 号,题目名称,题目描述,题目测试案例 1,2,3 等输入,输出文件,题目要求的程序运行时间、内存大小)。可以逐条输入, 可以批量导入; (3) 存储学生提交程序的过程信息(提交的题目编号,提交时间,是否通过、 不通过的原因(编译错误;运行时间超时,内存超出))。 2.2. 控制流程 系统为单机版运行,由系统管理员一人操作。系统的功能分为两个方 面。 (1) 基本信息维护:管理员管理学生基本信息,题目信息。 (2) 评测程序的过程:学生的程序被复制到某个目录下面,后台自动调用评测 脚本,评测程序。将相应的评测结果存入数据库。 2.3. 可行性分析 图 2-1 系统状态转换图 ACM 程序自动评测系统可以定时自动的对学生程序进行测评,实现自动测 评、多情况更新,提高了阅卷效率、保证了竞赛的公平性,是计算机编程阅卷 的大趋势,具有经济、技术、操作可行性。 2
3. 总体设计 3.1. 系统架构 整个系统分为两个脚本程序和一个数据库管理系统。用 J1 和 J2 分别表示 两个脚本程序。 J1 负责基本信息维护(设置); (1) (2) J2 负责评测程序; (3) 数据库存储数据。 J1 J2 Mysql 数据库 图 3-1 总体设计图 3.2. J1 模块 实现系统的基本信息维护及对基本信息的设置。教师作为管理员可以通过 该模块导入或输入学生基本信息和题目信息。 J1 模块的功能: (1) 新增、删除、修改、查找学生基本信息(学生信息表); (2) 新增、删除、修改、查找题目信息(题目信息表); (3) 用功能选择(bash 脚本中的 select); 图 3-2 J1 模块流程图 3
分享到:
收藏