Разработка системы тестирования решений задач для проведения олимпиад по программированию

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Реферат

Выпускная работа содержит пояснительную записку на 39 листах формата А4, включающую 10 рисунков, 15 таблиц, 6 литературных источника, приложение А.

Ключевые слова: Олимпиада по программированию, базы данных, Проверка решений, групповая политика доступа, компилирование исходных кодов.

Цель работы - разработка системы тестирования решений задач для проведения олимпиад по программированию.

В качестве сервера БД и СУБД в дипломной работе используется MySQL. Для написания графического интерфейса пользователя были использованы языки верстки веб страниц HTML и CSS. Для разработки ядра системы использовались скриптовые языки программирования PHP.

В результате работы была разработана система тестирования, обладающая возможностью: создания, редактирования и удаления информации о пользователях, турнирах, задачах и т.д., осуществлена групповая политика доступа к турнирам и задачам, осуществлен просмотр данных из БД в формате таблиц.

Введение

Восприятие реального мира можно соотнести с последовательностью разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди пытались описать эти явления (даже тогда, когда не могли их понять). Такое описание называют данными.

В современном информационном обществе объём данных растёт с огромной скоростью, как и потребность в их систематизации для удобного использования и доступа. Одним из способов хранения этой информации являются базы данных.

Базы данных - совокупность взаимосвязанных для некоторой предметной области, используемые одними или несколькими приложениями и хранящимися с минимальной избыточностью.

Такой способ хранения информации получил очень широкое распространение во всех сферах. Его используют организации для хранения данных о сотрудниках, библиотеки для хранения данных о книгах, ВУЗы для хранения информации о студентах и т.д. Одной из разновидностей БД являются реляционные базы данных - базы данных, основанная на реляционной модели. Реляционная модель данных - логическая модель данных, отличительной чертой которой является понятие линейного списка, позволяющее использовать в реляционных СУБД реляционной алгебры. В РМД данные представляют собой набор отношений. Отношения (таблицы) отвечают определённым условиям целостности. Данная работа представляет собой систему тестирования и так же построена на использовании реляционных баз данных. В базе хранятся турниры, задачи, информация о пользователях, результаты тестирования и т.д. В качестве сервера БД и СУБД в дипломной работе используется MySQL. Для написания графического интерфейса пользователя были использованы языки верстки веб страниц HTML и CSS. Для разработки ядра системы использовались скриптовые языки программирования PHP.

1. Постановка задания

.1 Описание предметной области

Система тестирования решений - программный продукт, который поможет автоматизировать проверку корректности выполнения решений, выбранных для тестирования.

Задача записана в неформализованном виде с указанием всех необходимых ограничений входных и выходных данных. Решение задачи представляет собой исходный код программы, который компилируется в исполняемый файл в процессе тестирования. При помощи набора тестов проверяется корректность выполнения исполняемого файля полученного ранее.

В данном программном продукте предусмотрены результаты тестирования следующих типов:

Решение принято с первой попытки (данное решение корректно работает на всех тестах, решение отправлялось один раз)

Решение принято, но не с первой попытки (конечный вариант данного решения корректно работает на всех тестах, решение отправлялось более одного раза)

Ошибка времени выполнения (на выполнение решения потрачено времени, больше чем предполагалось, тестирование завершается)

Неверный ответ (решение дает неправильный результат, в этом случае решение не принимается и тестирование завершается)

Непредвиденный сбой (возникла исключительная ситуация во время тестирования решения, тестирование завершается)

1.2 Задание

Необходимо написать систему тестирования. Данная система должна включать возможности компилирования решения с последующим тестированием. В системе задачи должны быть разбиты на категории и турниры, должна быть осуществлена групповая политика доступа к конкретному турниру или задаче.

Приложение для администратора должно позволять управлять данными базы данных (создавать, изменять, удалять записи о группах, турнирах, задачах и т.д.). Приложение для пользователя должно позволять пользователю участвовать в выбранных турнирах или решать задачи из выбранных категорий. Тестирование решений должна быть автоматизирована. По окончании тестирования, результат тестирования должен предоставляться пользователю.

1.3 Список объектов и их свойств

Предметная область включает в себя следующие предметы и их свойства.

Список пользователей

Код пользователя

Логин

Пароль

Электронный адрес

Код текущего турнира

Список групп

Код группы

Название

Описание

Список пользователей в группе

Код группы

Код пользователя

Список турниров

Код турнира

Название

Описание

Дата начала турнира

Дата завершения турнира

Список задач

Код задачи

Название

Автор

Постановка задачи

Формат входного файла

Фо