私はWebベースのアプリケーションを使用して、学生から提出されたCプログラムを評価しています。いくつかの質問のために、私は学生に関数のコードを記入したいと思います。次の例は、学生に表示される画面の例です。関数内の空白部分にコードを記入するように学生に指示する
go() {
---------------------------------
| |
| |
| |
---------------------------------
}
main() {
go()
}
生徒は、ボックスの中にいくつかのコードを入力する必要があります。しかし、私は学生に次のような新しい関数を作成させたくありません。
go() {
---------------------------------
| go_help(); |
| } |
| go_help() { printf("hi"); } |
---------------------------------
}
main() {
go()
}
生徒が新しい関数を作成するのを防ぐにはどうしたらいいですか?学生が記入したコードとともに、コードテンプレートがコンパイルされ、サーバーによって実行されるのを待っているキューに送られます。私はそのキューのコードを変更したり、チェックすることはできません。私ができる唯一のことは、コードテンプレートを変更することです。
あなたはJavascriptでCパーサ/コンパイラを書きたい場合を除き、あなたはかなりの運命です。 – Mat
すべての機能や特定の機能を作成しないようにする必要はありますか? –
提出されたコードをチェックすることができない場合は、運が悪いです。送信されたコードがpå{}、()などの点でバランスがとれていることを確認する必要があります。これは、送信されたコードを分析することによってのみ行うことができます。 –