1. 能在服务器端自动编译C/C++/Pascal/Java等编程语言所编写的源程序, 并能向客户端远程反馈编译错误信息;
2. 能自动运行编译后的用户程序,在用户程序运行超过时间限量、内存限量和输出数据限量时自动立即终止它;毕业论文
http://www.751com.cn/3. 能判断出用户程序是否发生了编译错误、运行时错误、输出格式错误、 超时错误、超内存错误、超输出错误、答案错误、答案为空或程序正确,并向客户端远程反馈评测结果;
4. 能获取用户程序运行的状态参数,如所开销的真实CPU时间、内存用量,以评价算法性能。
3.3.2 判题内核功能工作流程:
图3-1 判题内核工作流程图
3.4 核心业务用例
3.4.1 详述用例文本
用例 UC1: 用户在线做题
范围: Online Judge系统
级别: 用户目标
主要参与者: 用户
涉众及其关注点:
-用户: 希望能够快速浏览题目,理解题目要求并且能够选择合适的语言,提交代码,并且尽可能快地查看结果,能够根据不同的返回结果作相应的改正;对每道题提交情况的查看,排名以及其他用户名词的查看
前置条件: 用户必须经过确认和认证.
成功保证 (或后置条件):
1. 用户通过登录界面进行登录
2. 用户操作写入系统日志;
3. 用户选择功能:浏览题目
4. 用户输入相应代码,进行发送;
5. 用户获得服务器返回的判题信息,判题成功;
6. 用户注销登录。
扩展
*a. 用户查看本人提交特定题目的信息
1. 出现“编译错误”的提示时,用户可点击进入查看错误信息
2. 用户可查看已提交的源代码
3. 用户可选择在原来的基础上编辑已提交的源代码,节省做题时间
*b. 用户查看本人以及其他用户做题情况以及可公开的信息
1. 查看题目状态时,点击作者姓名,可进入选定用户查看其公开信息以及做题状况,方便比较
2. 点击自己的用户名,可进入查看自己的做题状况,正确率等信息,了解自己的做题状况并且方便比较
*c. 用户查看排名
1. 同户可点击查看总的排名表
2. 点击用户名可查看相应用户的信息
3. 点击题目可进入相应的题目浏览
特殊需求:
1. 准确。能够正确评测出用户程序的结果。特别是以下几个小的方面:给出正确的 Compile Error 信息。Presentation Error 和 Wrong Answer 的区分。如何准确测量用户程序的执行时间。如何准确测量用户程序执行时所用的内存数量。
2. 稳定。一方面体现在网站的架设上,要求访问页面快速;另外体现在判题的速度上。同样程序多次重复提交时结论相同,参数(运行时间和内存)基本一致。对于大量并发访问具有很强的伸缩性。
3. 安全。由于Online Judge System系统的特殊性,在通常网站安全设置的基础上,由于可以执行用户程序,还要在安全上作更多的考虑。如:防止用户将题目测试数据外传。如通过网络将输入数据传走。防止用户通过程序获取服务器内部信息。如passwd文件。防止由于用户有意破坏系统。如用户程序执行system(“reboot”),或者最经典的while(1) fork();代码。防止无意的系统破坏。如由于缓冲区溢出造成的错误。
4. 用户文档:设计完成后需要提交的用户文档,以及所有己知用户文档的交付格式或标准。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
php在线判题系统设计+ACM在线评判系统+用例图 第6页下载如图片无法显示或论文不完整,请联系qq752018766