|
- module CodeExample
- extend ActiveSupport::Concern
-
- #老师C语言的标准代码
- def c_stantard_code_teacher
- "// 老师您好!这是一个C语言的样例程序
- // 程序功能:输入两个整数,输出两者之和
- // 测试集合:老师可以给出多组测试集,例如:
- // 输入1和2,输出3
- // 输入3和4,输出7
- // ... ...
- // 系统将根据您给出的测试集对学生代码进行自动评分
-
- // 特别提醒:程序采用命令行传参方式,输入通过argv传入
- // 否则您的作业标准代码将不能通过测试
-
- #include <stdio.h> //引用必须头文件
- int main(int argc, char** argv) {
- int a = atoi(argv[1]); //将第一个输入转成整型
- int b = atoi(argv[2]); //将第二个输入转换为整型
-
- printf(\"%d\",a+b); //输出a+b
- return 0;
- }".html_safe
- end
-
- #老师C++语言的标准代码
- def c_stantard_code_teacher_
- "// 老师您好!这是一个C++语言的样例程序
- // 程序功能:输入两个整数,输出两者之和
- // 测试集合:老师可以给出多组测试集,例如:
- // 输入1和2,输出3
- // 输入3和4,输出7
- // ... ...
- // 系统将根据您给出的测试集对学生代码进行自动评分
-
- // 特别提醒:程序采用命令行传参方式,输入通过argv传入
- // 否则您的作业标准代码将不能通过测试
-
- #include <iostream> //引用必须头文件
- #include <cstdlib>
- using namespace std;
- int main(int argc, char** argv){
- int a = atoi(argv[1]); //将第一个输入转成整型
- int b = atoi(argv[2]); //将第二个输入转换为整型
- cout<<a+b; //输出a+b
- return 0;
- }".html_safe
- end
-
- #学生C语言的标准代码
- def c_stantard_code_student
- "// 同学好!这是一个C语言的样例程序
- // 程序功能:输入两个整数,输出两者之和
- // 测试集合:老师可以给出多组测试集,例如:
- // 输入1和2,输出3
- // 输入3和4,输出7
- // ... ...
- // 系统将根据您给出的测试集对学生代码进行自动评分
-
- // 特别提醒:程序采用命令行传参方式,输入通过argv传入
- // 否则您的作业标准代码将不能通过测试
-
- #include <stdio.h> //引用必须头文件
- int main(int argc, char** argv) {
- int a = atoi(argv[1]); //将第一个输入转成整型
- int b = atoi(argv[2]); //将第二个输入转换为整型
-
- printf(\"%d\",a+b); //输出a+b
- return 0;
- }".html_safe
- end
-
- #学生C++语言的标准代码
- def c_stantard_code_student_
- "// 同学好!这是一个C++语言的样例程序
- // 程序功能:输入两个整数,输出两者之和
- // 测试集合:老师可以给出多组测试集,例如:
- // 输入1和2,输出3
- // 输入3和4,输出7
- // ... ...
- // 系统将根据您给出的测试集对学生代码进行自动评分
-
- // 特别提醒:程序采用命令行传参方式,输入通过argv传入
- // 否则您的作业标准代码将不能通过测试
-
- #include <iostream> //引用必须头文件
- #include <cstdlib>
- using namespace std;
- int main(int argc, char** argv){
- int a = atoi(argv[1]); //将第一个输入转成整型
- int b = atoi(argv[2]); //将第二个输入转换为整型
- cout<<a+b; //输出a+b
- return 0;
- }".html_safe
- end
-
- def compile_command
- "compile(){
- # 编译命令
- compileCommand=\"COMPILECOMMAND\"
- # 取当前关卡的编译文件
- challengeProgramName=${challengeProgramNames[$1 - 1]}
- # 获取编译结果(此处编译无输出则说明编译通过,否则输出编译错误信息,请按实训实际情况调整)
- compileResult=$($compileCommand $challengeProgramName 2>&1 | base64)
- if [ -z \"$compileResult\" ]; then
- compileResult=$(echo -n \"compile successfully\" | base64)
- fi
-
- }
- compile $1"
- end
-
- def execute_command
- "execute(){
- #执行命令
- executeCommand=\"EXECUTECOMMAND\"
- #执行文件名
- sourceClassName=${sourceClassNames[$1 - 1]}
- challengeStage=$1
-
- output=''
- i=0
- while [[ i -lt ${#ins[*]} ]]; do
- #执行,并拼接执行结果
- result=$(echo \"${ins[$i]}\" | base64 -d | $executeCommand $sourceClassName 2>&1 | base64)
- #拼接输出结果
- output=$output\\\"$result\\\",
- let i++
- done
- output=\"[${output%?}]\"
- }
-
- execute $1
- "
- end
- end
|