Проект Интернет OJ

Требования: для достижения онлайн судьи, пользователи подготовить и представить код через браузер, передаваемых по сети, код загружается в фоновом режиме, фон кода представлен компиляции и запуска, будет скомпилировать и запустить результаты обратно к пользователю
станции обработки до и после того, как в интернет - OJ :
Проект Интернет OJ

Проект разделен на пять модулей:

Network Service Module
для сборки сервера HTTP:
я доступен на GitHub с открытым исходным кодом библиотеки httplib.h при создании HTTP услуг, нам нужно только включить этот заголовочный файл может быть использовано
для обеспечения HTTP услуг, модули и скомпилировать и запустить вопросы серии модуль
1. Получить тему список
2. Представить выбранную тему
3. Представить предметный код и описание предмета, составленный блоковый код
модуль вопросов
1. Названия загруженного из файла конфигурации
формата файл конфигурации:
конвенции профиля субъекта среди описания
субъекта номер, название предмета, каталог , в котором название, пункт трудность
б. нагрузить предмет профилей , используя структуру данных , хранящуюся загруженную из темы предоставляет информацию
с. по каждому предмету, необходимо загрузить путь с учетом
2. обеспечить доступ ко всей теме интерфейса
к модулю сетевого сервиса предоставляет интерфейс на все вопросы можно получить , как описано, отображается для пользователя
3. чтобы обеспечить единый интерфейс на тему
получения одного описания заголовка и интерфейса ответа на модуль сетевого сервиса, представляется пользователю
для компиляции и запуск модуль
1. компиляция
а. код записывается в файл , представленного пользователь
б. создать ребенок в и выполняет программу замененные программы G ++, компиляции исходных файлов
с. компилируется результаты на стандартный вывод или записать файл среди стандартного файла ошибок
2. Запуск
а. Если код приходят операционную фазу, некоторые инструкции исполняемая программа составлена и создать дочерний процесс, и пусть замену ребенка программироваться, замените исполняемую программу
в б. результат программы, сохранить его на стандартный вывод или стандартный файл ошибок
Модуль входа
1. Обеспечить штамп времени: Для того, чтобы различать различные коды , представленных пользователем, в том числе современного записываются в файл , когда он с помощью метки времени для различения
2. Для того, чтобы обеспечить URL декодирования работы
модуля инструмента
1. Для достижения функции резки строки
2. предоставить записи операции с файлами
3. обеспечивают операции чтения файлов

рекомендация

отblog.51cto.com/14233078/2482945