面向对象程序设计语言测试平台及题库建设通过参考北京大学ACM评测平台POJ的设计,求大神指教自动评测的设计,要求用面向对象的思想,java语言
面向对象程序设计语言测试平台及题库建设通过参考北京大学ACM评测平台POJ的设计,求大神指教自动评测的设计,要求用面向对象的思想,java语言1. 自动评测
自动评测的主要工作是接收客户端IE 浏览器通过中间层的CGI 程序提交到数据库的数据,选择适当的数据投入自动测评的全过程,包括:编译、链接、运行、测试、评审、返回结果等一系列操作。自动评测进程在未接到工作任务时,处于睡眠状态,等待相关用户请求进程发送消息信号,唤醒后转入运行状态。
2. 数据/信号的发送和接收
数据/信号的发送使用Windows系统进程间通信VIPC 的消息队列的方式,由中间层应用服务器的CGI 程序把用户提交的源程序
3. 编译与链接
自动评测进程使用系统的函数调用,调用GNU 编译器对源程序代码执行自动编译,并通过系统调用的返回值,捕捉系统调用的编译命令是否成功,否则保存编译错误的信息,同时中断以后的执行。经过编译成功之后,自动评测进程继续使用系统调用对编译生成的二进制代码执行自动链接,产生对应的可执行的二进制代码供下一步操作使用。
4. 运行与测试
把链接生成的可执行程序投入自动运行。同时,在程序运行的过程中,通过Windows系统捕捉系统信号,检查程序的运行过程中是否出现超时、栈溢出、段错误等非法情况。另外,运行时还要完成测试数据的输入和输出的转换,通过系统函数把数据的文件输入重定向到标准输入,把数据的标准输出重定向到文件输出,从而使得程序运行的结果保存为一个临时的文本文件,交给下一步操作进行评审。
5. 评审与返回结果
经过编译、链接、运行他和测试后,转入运行结果的阶段,对保存在临时文件中的输出数据进行检查,与标准数据进行一致性的对比。
平台 语言 java
补充:Java , Web 开发