オンラインOJプロジェクト

要件:オンライン裁判官を達成するために、ユーザーが作成し、ネットワーク上で転送、ブラウザを介してコードを提出し、コードを背景にアップロードされ、コード提出コンパイルと実行の背景には、コンパイルして実行します結果は、ユーザーにバックアップ
オンラインOJの前と後の処理ステーション:
オンラインOJプロジェクト

プロジェクトは、5つのモジュールに分かれています。

ネットワークサービスモジュールの
ビルドサーバーへのhttp:
私は、httpサービスを構築する際に、我々は唯一、このヘッダーファイルをインクルードする必要がGitHubのオープンソースhttplib.hライブラリで提供されていますが、使用することができます使用
HTTPサービス、モジュール、およびコンパイルを提供し、シリーズの質問を実行しますモジュール
1のGetトピックリストを
選択したトピックを提出してください。2.
対象コードと対象の説明を提出3、コンパイルされたコードブロック
の質問は、モジュール
の設定ファイルからロード1.タイトル
:設定ファイルのフォーマットを
の説明の中で、対象の規則プロファイル
の対象を番号、被験者の名前、タイトル、項目困難ディレクトリ
トピックのうちロード格納され、Bは、データ構造を使用したプロファイルの対象をロードは、情報提供
Cを。すべての被験者について、指定されたパスをロードする必要性を
2.インターフェースの全対象へのアクセスを提供
するネットワークサービスモジュールには、説明したように、ユーザに表示を得ることができ、すべての質問へのインターフェースを提供する
トピックへの単一のインタフェースを提供するために、3
ユーザに提示、ネットワーク・サービス・モジュールへの単一のタイトルの説明と回答インターフェイスを取得
コンパイルし、実行モジュール
1.コンパイル
A。コードは、ユーザーが提出したファイルに書き込まれ
、B。に子を作成 ソースファイルをコンパイルするプログラムをg ++プログラムを置き換え、そして行い、
cが。結果を標準出力にコンパイルまたは標準エラーファイルの中のファイルの書き込みを取得します
。2.ファイル名を指定して実行
。コードが動作フェーズを来た場合は、特定の命令の実行可能プログラムをコンパイル子プロセスを作成し、子供が交換をプログラムすることが聞かせて、実行可能プログラムを置き換える
Bに。プログラムの結果を、標準出力や標準エラーファイルに保存します
ログインモジュール
それは区別するためにタイムスタンプを使用した場合、ファイルに書き込まれ、現代の中で、利用者から提出された異なるコードを区別するために:タイムスタンプを提供するために、1.
操作デコードURLを提供するために2を
工具モジュール
カット機能文字列を達成するために1を
2.書き込みファイル操作提供
3.読み取りファイル操作を提供します

おすすめ

転載: blog.51cto.com/14233078/2482945