Cистема автоматизации тестирования знаний студентов

Разработка программно-вычислительного комплекса, предназначенного для автоматизации тестирования знаний студентов по темам дисциплин учебного плана. Функционирование системы в глобальной сети Интернет. Способы построения системы, программное обеспечение.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 06.06.2013
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

  • Введение
  • 1. Постановка задачи
  • 1.1 Наименование и область применения
  • 1.2 Основания для разработки
  • 1.3 Характеристика объектов проектирования
  • 1.4 Требования к аппаратной и программной совместимости
  • 2. Обзор литературных источников
  • 2.1 Обзор программных платформ
  • 2.1.1 Клиентские языки веб-программирования
  • Серверные языки веб-программирования
  • 2.3 Обзор предметной области
  • 2.4 Анализ и обзор систем тестирования знаний
  • 2.5 Итоги анализа систем
  • 3. Системный анализ структуры системы тестирования знаний студентов
  • 3.1 Принцип конечной цели
  • 3.1.1 Принцип единства
  • 3.2 Принцип связности
  • 3.3 Принцип модульности
  • 3.4 Принцип иерархии
  • 3.5 Принцип функциональности
  • 3.6 Принцип развития
  • 3.7 Принцип централизации и децентрализации
  • 3.8 Принцип учёта неопределенностей и случайностей
  • 3.9 Проектирование базы данных
  • 4. Вариантный анализ способов построения системы
  • 5. Описание программного обеспечения подсистемы студента
  • 5.1 Создание базы данных
  • 5.2 Описание модулей системы
  • 6. Результаты тестирования
  • 7. Описание применения системы
  • 8. Технико-экономическое обоснование проекта
  • 8.1 Маркетинговые исследования
  • 8.2 Исследование программного продукта
  • 8.2.1 Назначение программного продукта
  • 8.2.2 Основные свойства программного продукта
  • 8.2.3 Основные потребительские свойства
  • 8.2.3 Требования к функциональным характеристикам программного продукта
  • 8.2.4 Требования к надёжности программного продукта
  • 8.2.5 Требования к условиям эксплуатации
  • 8.2.6 Конкурентоспособность
  • 8.2.6 Оценка рыночной направленности
  • 8.3 Исследование рынка сбыта
  • 8.3.1 Сегментация рынка
  • 8.3.2 Анализ тенденций рынка
  • 8.3.3 Предпочтительный потребитель
  • 8.3.4 Возможные причины финансовых неудач
  • 8.4 Жизненный цикл товара
  • 8.5 Обоснование метода ценообразования
  • 8.6 Итоги маркетинговых исследований
  • 8.7 Определение затрат на проектирование продукта
  • 8.7.1 Вычисление трудоёмкости
  • 8.7.2 Расчёт себестоимости часа машинного времени
  • 8.8 Расчёт сметы затрат на проектирование программной системы
  • 8.9 Формирование цены предложения разработчика
  • 8.10 Расчёт капитальных затрат
  • 8.11 Расчёт эксплуатационных расходов
  • 8.11.1 Эксплуатационные расходы
  • 8.11.2 Заработная плата оператора с отчислениями
  • 8.12 Материальные расходы
  • 8.13 Оценка эффективности
  • 8.14 Выводы
  • 9. Раздел охраны труда
  • 9.1 Анализ условий труда разработчика
  • 9.1.1 Краткая характеристика помещения
  • 9.1.2 Планировка и размещение оборудования и рабочих мест
  • 9.1.3 Микроклимат рабочей зоны
  • 9.1.4 Шум и вибрации
  • 9.1.5 Освещение
  • 9.1.6 Соответствие требованиям электробезопасности
  • 9.1.8 Соответствие требованиям пожарной безопасности
  • 9.1.9 Соответствие требований к защите от статического электричества и излучения
  • 9.1.9 Эргономика
  • 9.1.10 Режим труда и отдыха работников
  • 9.2 Расчёт искусственного освещения
  • 10. Безопасность в чрезвычайных ситуациях
  • 10.1 Вводная часть
  • 10.2 Расчётная часть
  • 10.3 Мероприятия по защите сотрудников офиса
  • Заключение
  • Библиографический список

Введение

Web-технологии сегодня позволяют создавать Интернет проекты самого разного типа сложности и целевой направленности. Они, как и любые другие разработки, постоянно совершенствуются и развиваются: добавляются новые, заменяются устаревшие. Иными словами идет естественный процесс эволюции Интернета, вообще, и web-технологий в частности.

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

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

В первом разделе пояснительной записки формулируется постановка задачи для разработки системы автоматизации тестирования знаний студентов, подсистемы студента. Во втором - приведен обзор существующих систем автоматизации тестирования знаний, рассмотрены программные платформы для разработки веб-приложений, дана характеристика системам управления базами данных, произведен обзор предметной области. Третий раздел посвящён системному анализу данной программной системы. В четвёртом разделе представлены расчёты, используемые при выборе программной платформы для разработки системы. В пятом разделе производится детально описание программы. В шестом разделе приведены результаты тестирования программы. В седьмом разделе приведено описание применения системы. Расчёты технико-экономического обоснования проекта произведены в восьмом разделе. Девятый раздел посвящён охране труда. В десятом разделе пояснительной записки описывается безопасность в чрезвычайных ситуациях.

автоматизация интернет тестирование программный

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

1.1 Наименование и область применения

Разработке подлежит система автоматизации тестирования знаний студентов, подсистема студента. Программно-вычислительный комплекс предназначен для автоматизации тестирования знаний студентов по темам дисциплин учебного плана. Система должна функционировать в глобальной сети Интернет.

1.2 Основания для разработки

Основанием для проведения работ по созданию системы является приказ об утверждении тем дипломного проектирования № 178-п от 6 апреля 2012 года по Севастопольскому Национальному техническому университету.

1.3 Характеристика объектов проектирования

В задачу проектировщика входит:

обоснование структуры системы;

выбор программных продуктов, на основе которых будет создаваться программная система, и осуществляться её поддержка;

разработка программной системы и её описание.

Разрабатываемая система предназначена для автоматизации тестирования знаний студентов. Программно-вычислительный комплекс можно разделить на две больших подсистемы: "Студент" и "Преподаватель". Цель данной дипломной работы - разработка подсистемы студента.

Права доступа к системе автоматизации тестирования знаний студентов могут принимать значения "Студент", "Преподаватель", "Администратор". Каждый зарегистрированный пользователь получает одно из перечисленных значений прав доступа только после проверки информации, полученной при регистрации нового пользователя.

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

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

Пользователь "студент" получает права доступа к решению тестов, ознакомлению с теоретическим материалом по теме, а также имеет возможность оставлять сообщения "преподавателю" и "администратору".

Разрабатываемая подсистема должна предоставлять пользователю следующие возможности:

прохождение пробного тестирования для обучения работе с системой;

выбор дисциплины и темы, по которой планируется прохождение теста;

ознакомление с теоретическим блоком по данной теме;

прохождение теста при наличии прав, выдаваемых в подсистеме "преподаватель";

получение отчётов о результатах пройденных тестов;

обмен сообщениями с преподавателем.

Система должна соответствовать определённым требованиям:

безопасность - доступ к функциям системы должен быть открыт исключительно авторизированным пользователям;

удаленность - доступ к возможностям системы должен осуществляться как локально, так и удалённо, посредством сети интернет;

надёжность - необходимо обеспечить сохранность и доступность данных о прохождении студентами тестов.

Руководство по использованию системы должно делиться на инструкции для преподавателей и студентов.

Инструкции для студентов должны содержать разъяснения по регистрации в системе и описание работы в ней.

1.4 Требования к аппаратной и программной совместимости

Для работы с программно-вычислительным комплексом компьютер-сервер должен иметь следующие характеристики:

микропроцессор Intel Pentium III 800 MHz или выше;

не менее 256 MB ОЗУ;

не менее 100 MB свободного пространства на жестком диске;

стандартную клавиатуру, мышь;

операционная система Microsoft Windows 9х/2000/XP/Vista, Linux, MacOS X, Oracle Solaris;

установленную виртуальную машину Java Runtime Environment (JRE);

сконфигурированный контейнер сервлетов Apache Tomcat не ниже версии 6.0;

один из поддерживаемых HQL серверов баз данных (PostgreSQL, Oracle 9i/10g, HypersonicSQL, MySQL, DB2, FrontBase, и других).

Пользователь системы должен иметь персональный компьютер, с установленным на нем веб-браузером, а также иметь доступ к глобальной сети Интернет. При таких условиях минимальными системными требованиями для персонального компьютера являются следующие: процессор с частотой 133 МГц; 16 МБ оперативной памяти; 500 МБ жесткий диск; веб-браузер.

2. Обзор литературных источников

Постановкой задачи предусмотрено функционирование разрабатываемой системы в глобальной сети Интернет.

Интернет - крупнейшая в мире сеть, не имеющая единого центра управления, работающая по единым правилам и предоставляющая пользователям единый набор услуг.

С точки зрения пользователей Интернет представляет собой набор информационных ресурсов, рассредоточенных по различным сетям, включая ISP-сети, корпоративные сети, сети и отдельные компьютеры домашних пользователей.

Интернет является децентрализованной сетью, что имеет свои достоинства и недостатки. К достоинствам можно причислить легкость наращивания сети путем заключения соглашения между интернет-провайдерами. К недостаткам - сложность модернизации технологий и услуг, невысокая надёжность услуг интернета. [1]

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

технология клиент-сервер;

единообразная адресация ресурсов, обеспеченная применением универсальных идентификаторов ресурсов (URI и URL);

механизмы обменов и доступов к ресурсам, регламентируемые протоколом HTTP (Hyper Text Transfer Protocol - протокол передачи гипертекста);

средства навигации и перемещения по мультимедиа-документам - реализованы с помощью языка HTML (Hyper Text Markup Language - язык гипертекстовой разметки).

Существует два вида организации web-сайта - динамический и статический.

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

К преимуществам статических сайтов относят следующие:

статические сайты создают минимальную нагрузку на сервер, потому нетребовательны к ресурсам хостинга;

разработка статических сайтов обходится дешевле;

быстрая загрузка.

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

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

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

В динамических сайтах реализовано разделение содержания и оформления веб-страниц - это позволяет оперативно изменять информацию на сайтах без необходимости изменять программные коды страниц. Такой подход - одно из главнейших преимуществ динамических сайтов. Разделение контента и дизайна сайта дает возможность управлять сайтом любому пользователю, даже без знания веб-программирования. В CMS для добавления и редактирования материалов используются визуальные WYSIWYG (What You See Is What You Get) - редакторы (принцип "что вижу - то и получаю").

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

2.1 Обзор программных платформ

Языки веб-программирования делятся на две группы - клиентские и серверные.

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

Относительно серверных языков ситуация обстоит иначе. Когда пользователь даёт запрос на какую-либо страницу, то вызванная страница сначала обрабатывается на сервере, то есть выполняются все скрипты, связанные со страницой, и только потом возвращается к посетителю в виде простого HTML-документа. [2]

2.1.1 Клиентские языки веб-программирования

Самым распространённым языком веб-программирования является JavaScript.

JavaScript - это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента.

Основная идея JavaScript состоит в возможности изменения значений атрибутов HTML-контейнеров и свойств среды отображения в процессе просмотра HTML-страницы пользователем. При этом перезагрузки страницы не происходит. На практике это выражается в том, что можно, например, изменить цвет фона страницы или интегрированную в документ картинку, открыть новое окно или выдать предупреждение.

На синтаксис JavaScript оказал влияние язык Java, откуда и произошло название JavaScript; как и Java, язык JavaScript является объектным. [3]

Virtual Basic Scripting Edition - скриптовый язык программирования, одной из областей использования которого являются клиентские скрипты в браузере Internet Explorer. [4]

VBScript обрабатывается аналогично JavaScript в Microsoft Internet Explorer и взаимодействует с объектной моделью документов (DOM) HTML страницы. В других браузерах (Firefox, Opera и др.) отсутствует встроенная поддержка VBScript; именно поэтому для обеспечения кроссбраузерной совместимости практически всегда используется JavaScript.

2.1.2 Серверные языки веб-программирования

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

К одному из главных плюсов этого языка можно отнести взаимодействие с большим количеством различных СУБД (MySQL, Oracle, Sybase и т. д).

К тому же, как показатель уровня можно констатировать факт, что к сайтам, использующим PHP, относятся такие, как Wikipedia, vk.com, Facebook.

PHP входит в LAMP - наиболее распространенный набор программного обеспечения для создания и размещения веб-сайтов.

Проект распространяется под open sourсe лицензией PHP License. [5]

Python - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений (RAD, Rapid Application Development). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Python поддерживает модули и пакеты, поощряя модульность и повторное использование кода. Интерпретатор Python и большая стандартная библиотека доступны бесплатно в виде исходных и исполняемых кодов для всех основных платформ и могут свободно распространяться. [6]

Python портирован на большое количество платформ - Windows, UNIX, Mac OS X, iOS, Android и Symbian.

Как и Perl, Python успешно применяется для написания скриптов и, как и Ruby, является отлично продуманной системой для ООП.

Как и другие интерпретируемые языки, Python имеет недостаток - сравнительно невысокая скорость выполнения программ. Однако в среднем, программа написанная на Python, в несколько раз компактней, чем её аналог на С++ или Java.

Распространяется под свободной лицензией Python Software Foundation, которая позволяет использовать его без ограничений в любых приложениях.

Ruby - один из самых молодых языков программирования. Является динамическим, интерпретируемым высокоуровневым языком программирования для объектно-ориентированного программирования. Близок по особенностям синтаксиса к языкам Perl и Eiffel. [7]

Основное назначение Ruby - создание простых и в то же время понятных программ, где важна не скорость работы программы, а малое время разработки, понятность и простота синтаксиса.

Ruby - полностью объектно-ориентированный язык. В нём все данные являются объектами. Каждая функция - метод.

Итерпретатор портирован на многие платформы, в том числе на Windows, UNIX, Mac OS X, iOS, Android и Symbian.

Кроссплатформенная реализация интерпретатора языка является полностью свободной.

Java. Самое известное и главное свойство этой платформы - кроссплатформенность. Оно достигается за счёт виртуальной машины JVM, которая по сути является программой, исполняемой операционной системой и предоставляющей Java-приложениям все необходимые возможности.

Однозначно нельзя определить, является Java компилируемым или интерпретируемым языком программирования. Исходный код любой программы на языке Java представляется обычными текстовыми файлами, которые могут быть созданы в любом текстовом редакторе или специализированном средстве разработки и имеют расширение. java. Эти файлы подаются на вход Java-компилятора, который транслирует их в специальный Java байт-код. Результат работы компилятора сохраняется в бинарных файлах с расширением. class. Java - приложение, состоящее из таких файлов, подается на вход виртуальной машине, которая начинает их исполнять, или интерпретировать, так как сама является программой.

В Java существует всего 8 типов данных, которые не являются объектами. Они были определены с самой первой версии и никогда не менялись. Это пять целочисленных типов: byte, short, int, long, а также к ним относят символьный char. Два дробных типа float и double и булевский тип boolean.

Синтаксис Java создан на основе С/С++, однако модель Java была построена заново, в соответствии с другими целями.

Огромным плюсом Javaявляется существование библиотеки JavaEE, позволяющей легко разрабатывать WEB-приложения, а также огромное количество библиотек сторонних разработчиков (фреймворков), распространяемых по принципу OpenSourсe.

Распространяется под свободной лицензией. [8]

2.1.3 Системы управления базами данных

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

Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. [9]

Основные функции СУБД заключаются в следующем:

управление данными во внешней памяти;

управление данными в оперативной памяти с использованием дискового кэша;

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

По модели данных СУБД классифицируются на иерархические, сетевые, реляционные, объектно-ориентированные, объектно-реляционные.

В рассмотрение будем вносить реляционные СУБД, как самые распространённые и применяемые повсеместно.

Реляционная модель характеризуется простотой структуры данных, удобным табличным представлением и возможностью использования реляционной алгебры для обработки данных. Также эта модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

каждый элемент таблицы - один элемент данных;

все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип;

каждый столбец имеет уникальное имя;

одинаковые строки в таблице отсутствуют;

порядок следования строк и столбцов может быть произвольный.

По способу доступа к базе данных СУБД делятся на файл-серверные, клиент-серверные и встраиваемые.

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Однако существует множество недостатков: невозможность обеспечения высокой надёжности и высокой безопасности. Применяется чаще всего в локальных приложениях. На данный момент эта технология считается устаревшей. К СУБД, использующим эту технологию, относятся: Microsoft Access, FoxPro, Paradox.

Клиент-серверные СУБД располагаются на сервере вместе с БД и осуществляют доступ непосредственно к БД. Все запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Один из недостатков такого подхода - повышенные требования к серверу. Преимущества - высокая надёжность, высокая безопасность и доступность. К СУБД, использующим эту технологию, относятся: Oracle, Firebird, Interbase, MS SQL.

Также существуют встраиваемые СУБД - те, которые могут поставляться как составная часть программного продукта, не требуя процедуры самостоятельной установки.

2.3 Обзор предметной области

Процесс обучения - это целенаправленное, последовательно изменяющееся взаимодействие преподавателя и учащегося, в ходе которого решаются задачи образования, воспитания и общего развития. [10]

Тестирование - это целенаправленное, одинаковое для всех испытуемых обследование, проводимое в строго контролируемых условиях, позволяющее объективно измерять изучаемые характеристики педагогического процесса. От других способов тестирование отличается точностью, простотой, доступностью, возможностью автоматизации [11].

Считается, что тестирование является более объективным методом оценивания, а также отвечает ряду принципов:

применение серии одинаковых испытаний к большому количеству испытуемых;

статистическая обработка результатов;

выделение эталонов оценки.

В сфере педагогического тестирования существуют два основных подхода:

нормативно-ориентированный;

критериально-ориентированный.

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

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

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

Производиться совершенствование учебного процесса должно по различным критериям. Важнейшая составляющая модернизации учебного процесса - разработка объективных методик контроля знаний.

Основные функции контроля качества знаний:

контроль даёт возможность увидеть ошибки, оценить результаты обучения, осуществить коррекцию знаний;

правильно организованная система контроля знаний может поспособствовать стремлению к целенаправленной работе по исправлению ошибок.

Также при оценивании знаний существует проблема объективности. Одна и та же оценка у разных преподавателей может соответствовать разным уровням знаний. Эта проблема также может быть разрешена с применением тестирования.

К преимуществам оценивания знаний методом компьютерного тестирования относят:

оперативность обработки результатов тестирования;

индивидуализация процесса усвоения знаний учащимися;

освобождение преподавателей от рутинной работы.

Тем не менее, написание тестов и формулирование заданий ложится целиком на плечи преподавателей, эта задача также является непростой. Необходимо оценивать качество теста с точки зрения соответствия направлению изучаемого курса и возможностям студентов, учитывая при этом временные ограничения на написание тестов.

2.4 Анализ и обзор систем тестирования знаний

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

Рассмотрим программы, ориентированные на специфику обучения в отечественных ВУЗах. Рассматривать будем три параметра: возможность работы через интернет; платформу, на которой написана; лицензия. Остальные необходимые параметры в большинстве своём схожи во всех системах.

Система "СИнТеЗ":

имеет возможность работы через интернет;

платформа: PHP, MySQL;

лицензия: платная.

Имеется возможность создавать вопросы разных типов, разбивать их на темы, в текст вопроса и ответа вставлять картинки, звук, фильмы, списки, таблицы и т.д.

Система "Конструктор тестов":

не имеет возможности работы через интернет;

платформа: С++;

лицензия: бесплатная.

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

Система "OpenTest 2.0":

имеет возможность работы через интернет;

платформа: HTML, PHP, JavaScript;

лицензия: платная.

При проектировании модулей системы основное внимание было уделено высокой эргономичности системы, а также ориентации на работу с большим потоком пользователей. Система позволяет проводить тестирования одновременно более 1000 пользователей.

2.5 Итоги анализа систем

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

Изначально рассматривается вариант разработки программного обеспечения системы как WEB-приложения, так как этот вариант является наиболее прогрессивным и удобным. Преимущества:

возможность использования практически любого компьютера, на котором установлен современный WEB-браузер;

отсутствие привязанности к аппаратному и программному обеспечению, полная кроссплатформенность;

стабильность в хранении результатов тестирования и остальных данных.

3. Системный анализ структуры системы тестирования знаний студентов

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

Принципы системного анализа - это некоторые положения общего характера, являющиеся обобщением опыта работы человека со сложными системами. К системным причисляют следующие принципы: принцип конечной цели, принцип единства, принцип связности, принцип модульности, принцип иерархии, принцип функциональности, принцип развития, принцип централизации и децентрализации, принцип учёта неопределенностей и случайностей. [12]

3.1 Принцип конечной цели

Конечная цель имеет абсолютный приоритет. Принцип имеет несколько правил:

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

анализ следует вести на базе первоочередного уяснения основной цели (функции, основного назначения) исследуемой системы, что позволит определить ее основные существенные свойства, показатели качества и критерии оценки;

при синтезе систем любая попытка изменения или совершенствования должна оцениваться относительно того, помогает или мешает она достижению конечной цели;

цель функционирования искусственной системы задается, как правило, системой, в которой исследуемая система является составной частью.

При использовании данного принципа разрабатываемая программная система рассматривается в виде "черного ящика", который описывается формулой Y=F (X,Z), где Y - выходной вектор; X - входной вектор; Z - внутреннее состояние.

Рисунок 3.1 - Программная система в виде черного ящика

Цель системы - реализация эффективного и объективного способа тестирования уровня знаний студентов, а также подведение статистики по успеваемости.

Функции, которые должны выполняться в подсистеме студента:

возможность прохождения пробного теста;

авторизация студента;

возможность выбора дисциплины и темы;

ознакомление с теоретической частью;

вывод отчёта о результатах тестирования;

обмен сообщениями с преподавателем.

Перечень входных воздействий:

авторизация в системе;

ввод ответов на вопросы тестов;

отправка сообщений преподавателю.

Выходные воздействия:

вывод статистики по каждому из пройденных тестов, сохранение в БД;

выдача по запросу теоретического блока по теме.

Согласно догмату конечной цели, любое изменение в системе, любая альтернатива в принятии решения должны осуществляться в рамках ответа на вопрос: "Что это дает для конечной цели?". То есть любое изменение, внесенное в систему без учета интересов конечной цели, вероятнее всего отрицательно отразится на структуре разработанной системы.

3.1.1 Принцип единства

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

На основании функций, представленных выше, в подсистеме студента можно выделить следующие подсистемы:

подсистема хранения и манипулирования данными;

подсистема "пользовательское приложение".

3.2 Принцип связности

Рассмотрение любой части совместно с ее окружением подразумевает проведение процедуры выявления связей между элементами системы и выявление связей с внешней средой (учет внешней среды). В соответствии с этим принципом систему следует рассматривать как часть другой системы (рисунок 3.2).

3.3 Принцип модульности

Модульность - обязательный атрибут всех успешно работающих программ. Естественным способом борьбы со сложностью является её разбиение на более простые части.

Результатом применения принципа модульности является декомпозиция подсистем и системы в целом на головную программу, модули, библиотеки.

Исходя из выбранной схемы организации разрабатываемой системы (рисунок 3.2) каждая подсистема может быть реализована отдельным модулем.

Рисунок 3.2 - Обобщенная структура системы

3.4 Принцип иерархии

Целесообразно производить анализ системы, выделяя в ней иерархии и рассматривая ее сверху вниз.

Применив к разрабатываемой системе принципы, изложенные выше, в ней можно выделить следующие уровни иерархии:

Рисунок 3.3 - Иерархия модулей системы

3.5 Принцип функциональности

При создании системы необходимо рассматривать совместно Функцию и Структуру с приоритетом Функции над Структурой. Назначение системы одно (оно ближе к Цели), а Функций много. Именно они и вызывают требования к структуре. В процессе использования системы на нее возлагаются дополнительные функции, следовательно, необходимо менять и структуру:

можно нарастить структуру;

можно нарастить и/или пересмотреть назначение других уже имеющихся элементов структуры.

Функции системы в целом рассмотрены в связи с принципом конечной цели. Рассмотрим функции, входные и выходные данные выделенных подсистем.

Функция подсистемы определения личного профиля вытекает из названия. На входе от студента - имя пользователя и соответствующий пароль. Основная функция - открытие доступа к основным функциям системы. В процессе принятия данных, подсистема должна проверить их корректность.

Функция подсистемы "Дисциплина" - выбор пользователем дисциплины, по которой он будет тестироваться. На входе от студента - выбор факультета, кафедры и дисциплины, разового пароля для доступа к подсистемам тестирования и теоретической подготовки к тестированию.

Функция подсистемы теоретической подготовки к тестированию заключается в предоставлении пользователю возможности ознакомиться с теоретическим блоком по заданной теме.

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

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

3.6 Принцип развития

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

Система может быть модифицирована следующим образом:

написание декстопного приложения;

написание приложения под мобильные устройства со всеми вытекающими отсюда программными изменениями и модификациями.

3.7 Принцип централизации и децентрализации

Систему можно представить как связанный граф. В нем существуют сильные и слабые связи. Принцип децентрализации говорит о том, что систему необходимо разбивать на модули таким образом, что бы сильные связи объединялись внутри одного модуля, а слабые связи оказывались межмодульными. Тогда согласно этому принципу цель отдельного модуля будет влиять на подцели только внутри этого модуля, то есть "центр" управляет только ближайшими соседями. К достоинствам такой системы относятся высокая живучесть, простота наладки, разгруженность информационных межмодульных каналов.

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

3.8 Принцип учёта неопределенностей и случайностей

Информация, имеющаяся у разработчика при создании системы, всегда является неполной. Такая информация называется априорной и чаще всего она касается среды, в которую будет помещена система. Данная неопределенность должна быть преодолима в процессе исследования системы. В разрабатываемой системе такие ситуации могут возникнуть при некорректном вводе информации (в таблицах базы данных имеются поля, которые обязательно необходимо заполнить, если же эти поля не заполнить то система выдаст ошибку). Реакцией системы на неопределенность будет выдача системой сообщения об ошибке и невозможности реализовать данное действие. Также следует предусмотреть возможность реакции на события и действия, некорректные с точки зрения правил функционирования системы, как, например, попытки несанкционированного доступа.

3.9 Проектирование базы данных

Разрабатываемая система предназначена для тестирования студентов по темам дисциплин учебного плана. Информация о студентах, преподавателях и необходимая непосредственно для тестирования, хранится в базе данных.

В разработанной системе использована база данных основанная на реляционной модели. Реляционной называется база данных, в которой все данные, доступные пользователю, организованны в виде связанных таблиц (отношений), а все операции над данными сводятся к операциям над этими таблицами. Реляционная модель, в настоящее время, является доминирующей, и большинство современных приложений используют набор таблиц, составленных на основе реляционной модели данных [9].

В системе используется 12 таблиц в форматах, поддерживаемых СУБД MySQL.

Вся информация для хранения в базе данных разбита на таблицы и поля (сущности и атрибуты) по специфическим признакам.

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

Таблица "Студент".

Хранит информацию о студентах: ФИО, группу (ссылка на таблицу "Группа", идентификатор студента в таблице пользователей (ссылка на таблицу "Пользователи"). Ключевым полем для этой таблицы является поле идентификатора - порядковый номер записи в таблице студентов.

Таблица "Пользователи"

Ключевое поле в ней - идентификатор пользователя. Также содержит поля "Пароль" и поле, которое будет обозначать, в сети ли находится пользователь.

Таблица "Роли пользователей".

Необходима для хранения ролей пользователей. Ключевое поле в ней - роль пользователя. Также имеет поле - идентификатор пользователя в таблице "Пользователи".

Таблица "Группа".

В таблице хранится информация о количестве студентов в группе и поле "Поток" - ссылка на таблицу "Поток". Ключевое поле таблицы - идентификатор группы.

Таблица "Поток".

Ключевое поле - идентификатор потока. Поля - "Курс" и "Кафедра", являются ссылками на соответствующие таблицы.

Таблица "Курс".

Ключевое поле - идентификатор курса. Таблица хранит номер курса.

Таблица "Факультет".

Поля таблицы: название факультета и ссылка на таблицу "Кафедра". Ключевое поле - идентификатор факультета.

Таблица "Кафедра".

Хранит название кафедры. Ключевое поле - идентификатор кафедры.

Таблица "Список дисциплин".

Таблица необходима для того, чтобы связать таблицы "Дисциплины" и "Поток", но при этом отсутствовала связь "многие ко многим".

Таблица "Дисциплины".

Хранит информацию о преподаваемых дисциплинах. Поля: название дисциплины, ссылка на таблицу "Тест", ссылка на таблицу "Преподаватель", ссылка на таблицу "Список дисциплин". Ключевое поле - идентификатор дисциплины.

Таблица "Преподаватель".

Хранит информацию о преподавателях: ФИО, ссылка на таблицу "Кафедра", ссылка на таблицу "Пользователи". Ключевое поле - идентификатор преподавателя.

Таблица "Тест".

В ней хранится ссылка на XML-файл с тестом. Ключевое поле - идентификатор теста.

4. Вариантный анализ способов построения системы

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

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

Для выбора конкретной программной платформы воспользуемся методом анализа иерархий. Метод анализа иерархий (МАИ) - методологическая основа для решения задач выбора альтернатив посредством их многокритериального рейтингования. Метод был создан американским ученым Т. Саати и вырос в настоящее время в обширный междисциплинарный раздел науки, имеющий строгие математические и психологические обоснования и многочисленные приложения.

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

главной цели (главного критерия) рейтингования возможных решений;

нескольких групп однотипных факторов, так или иначе влияющих на рейтинг;

группы возможных решений;

системы связей, указывающих на взаимное влияние факторов и решений.

Первым этапом применения МАИ является структурирование проблемы выбора в виде иерархии или сети. В наиболее элементарном виде иерархия строится с вершины (цели), через промежуточные уровни-критерии (технико-экономические параметры) к самому нижнему уровню, который в общем случае является набором альтернатив.

После иерархического воспроизведения проблемы устанавливаются приоритеты критериев и оценивается каждая из альтернатив по критериям. В МАИ элементы задачи сравниваются попарно по отношению к их воздействию на общую для них характеристику. Система парных сведений приводит к результату, который может быть представлен в виде обратно симметричной матрицы. Элементом матрицы a (i,j) является интенсивность проявления элемента иерархии i относительно элемента иерархии j, оцениваемая по шкале интенсивности от 1 до 9, предложенной автором метода, где оценки имеют следующий смысл:

1 - равная важность;

3 - умеренное превосходство одного над другим;

5 - существенное превосходство одного над другим;

7 - значительное превосходство одного над другим;

9 - очень сильное превосходство одного над другим;

2, 4, 6, 8 - соответствующие промежуточные значения.

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

на основе Java-машины - А1;

на основе интерпретатора PHP-скриптов - А2;

на основе Python - А3;

Оценим эти варианты по следующим критериям:

быстродействие;

стоимость;

кросс-платформенность;

удобство пользования.

Построим полную простую иерархию (рисунок 4.1).

Размещено на http://www.allbest.ru/

Рисунок 4.1 Полная простая иерархия

Сравним критерии и составим матрицу попарных сравнений второго уровня.

Таблица 4.1 - Матрица попарных сравнений второго уровня

K1

K2

K3

K4

K1

1

1/3

3

1/5

K2

3

1

5

1/3

K3

1/3

1/5

1

1/7

K4

5

3

7

1

Определим вектор локальных приоритетов по формулам:

(4.1)

; (4.2)

S=0.6687+1.4953+0.3124+3.2011=5.6775;

xi=ai/S; (4.3)

x1=0.6687/5.6775=0.1178;

x2=1.4953/5.6775=0.2634;

x3=0.3124/5.6775=0.0550;

x4=3.2011/5.6775=0.5638;

Вектор локальных приоритетов X = (0.1178; 0.2634; 0.0550; 0.5638) определен без погрешностей.

Проведем проверку матрицы парных сравнений на согласованность.

(4.4)

y1=1+3+1/3+5=28/3=9.3333;

y2=1/3+1+1/5+3=68/15=4.5333;

y3=3+5+1+7=16;

y4=1/5+1/3+1/7+1=176/105=1.6762;

; (4.5)

= 0.1178*9.3333+0.2634*4.5333+0.0550*16+0.5638*1.6762= 1.0995+ +1.1941+0.88+0.9450=4.1186.

Индекс согласованности:

ИС= (max-n) / (n-1); (4.6)

ИС = (4.1186-4) /3 = 0.0395.

Отношение согласованности:

ОС=ИС/СС100%. (4.7)

Случайная согласованность для n=4 равна 0.9;

ОС=0.0395/0.9100%=4.3889%.

Матрица считается согласованной, если ОС не превышает 10%. В данном случае матрица согласована.

Вычисление локальных приоритетов для альтернатив производится по методике, применяемой при определении локальных приоритетов для критериев по формулам (4.1) - (4.7). Отличием является то, что количество альтернатив равно 3 (n=3).

Матрица парных сравнений альтернатив по критерию "Быстродействие" представлена в таблице 4.2.

Таблица 4.2 - Матрица парных сравнений альтернатив по критерию "Быстродействие"

А1

А2

А3

А1

1

1/3

1/3

А2

3

1

1

А3

3

1

1

;

S=0.4807+1.4422+1.4422=3.3651;

x1=0.4807/3.3651=0.1428;

x2=1.4422/3.3651=0.4286;

x3=1.4422/3.3651=0.4286.

Вектор локальных приоритетов X = (0.1428; 0.4286; 0.4286) найден без погрешности.

Проведем проверку матрицы на согласованность.

y1=1+3+3=7; y2=1/3+1+1=7/3=2.3333; y3=1/3+1+1=7/3=2.3333;

max= 0.1428*7+0.4286*2.3333+0.4286*2.3333=0.9996+1+1=2.9996.

Индекс согласованности:

ИС = (2.9996-3) /2 = 0.0002.

Отношение согласованности:

ОС=0.0002/0.58100%=0.0345%.

Матрица является согласованной. Матрица парных сравнений альтернатив по критерию "Удобство использования" приведена в таблице 4.3.

Таблица 4.3 - Матрица парных сравнений альтернатив по критерию "Удобство использования"

А1

А2

А3

А1

1

2

1/5

А2

1/2

1

1/7

А3

5

7

1

;

S=0.7368+0.4149+3.2711=4.4228;

x1=0.7368/4.4228=0.1666;

x2=0.4149/4.4228=0.0938;

x3=3.2711/4.4228=0.7396.

Вектор локальных приоритетов X = (0.1666; 0.0938; 0.7396;) найден без погрешности.

Проведем проверку матрицы на согласованность.

y1=1+1/2+5=13/2=6.5;

y2=2+1+7=10;

y3=1/5+1/7+1=47/35=1.3429;

max= 0.1666*6.5+0.0938*10+0.7396*1.3429=1.0829+0.938+

0.9932 =3.0141.

Индекс согласованности:

ИС = (3.0141-3) /2 = 0.00705.

Отношение согласованности:

ОС=0.00705/0.58100%=1.2155%.

Матрица является согласованной, так как отношение согласованности не превышает 10%.

Матрица парных сравнений альтернатив по критерию "Надежность" приведена в таблице 4.4:

Таблица 4.4 - Матрица парных сравнений альтернатив по критерию "Надежность"

А1

А2

А3

А1

1

2

3

А2

1/2

1

4

А3

1/3

1/4

1

;

S=1.8171+1.2599+0.4368=3.5138;

x1=1.8171/3.5138=0.5171;

x2=1.2599/3.5138=0.3586;

x3=0.4368/3.5138=0.1243

Вектор локальных приоритетов

X = (0.5171; 0.3586; 0.1243;) найден без погрешности.

Проведем проверку матрицы на согласованность.

y1=1+1/2+1/3=1.8333;

y2=2+1+1/4=3.25;

y3=3+4+1=8;

max= 0.5171*1.8333+0.3586*3.25+0.1243*8=0.9480+1.1655+

0.9944=3.1079.

Индекс согласованности:

ИС = (3.1079-3) /2 = 0.05395.

Отношение согласованности:

ОС=0.05395/0.58100%=9.3017%.

Матрица является согласованной, так как отношение согласованности не превышает 10%.

Матрица парных сравнений альтернатив по критерию "Производительность и скорость" представлена в таблице 4.5:

Таблица 4.5 - Матрица парных сравнений альтернатив по критерию "Производительность и скорость"

А1

А2

А3

А1

1

3

7

А2

1/3

1

5

А3

1/7

1/5

1

;

S=2.7589+1.1856+0.3057=4.2502;

x1=2.7589/4.2502=0.6491;

x2=1.1856/4.2502=0.2790;

x3=0.3057/4.2502=0.0719.

Вектор локальных приоритетов

X = (0.6491; 0.2790; 0.0719) найден без погрешности.

Проведем проверку матрицы на согласованность.

y1=1+1/3+1/7=31/21=1.4762; y2==3+1+1/5=21/5=4.2;

y3=7+5+1=13;

max= 0.6491*1.4762+0.2790*4.2+0.0719*13=0.9582+1.1718+

0.9347=3.0647.

Индекс согласованности:

ИС = (3.0647-3) /2 = 0.03235

Отношение согласованности:

ОС=0.03235/0.58100%=5.5776%.

Матрица является согласованной. Результаты вычислений сведем в общую таблицу (таблица 4.6), в которой под номерами критериев стоят их веса, взятые из вектора локальных приоритетов критериев; в строках, соответствующих альтернативам - доля, которую внёс данный критерий в оценку каждой программной платформы.

Таблица 4.6 - Результаты вычислений

Критерии

Альтернативы

1

(0.1178)

2

(0.2634)

3

(0.0550)

4

(0.5638)

JAVA

0.1428

0.1666

0.5171

0.6491

PHP

0.4286

0.0938

0.3586

0.2790

Python

0.4286

0.7396

0.1243

0.0719

Вычислим итоговую оценку каждой альтернативы, перемножив приоритеты альтернативы на веса соответствующих критериев и сложив полученные величины.

Оценка Java:

0.1178*0.1428+0.2634*0.1666+0.0550*0.5171+0.5638*0.6491=0.0168+ +0.0439+0.0284+0.3660=0.4551;

Оценка PHP:

0.1178*0.4286+0.2634*0.0938+0.0550*0.3586+0.5638*0.2790=

0.0505+ +0.0247+0.0197+0.1573=0.2522;

Оценка Python:

0.1178*0.4286+0.2634*0.7396+0.0550*0.1243+0.5638*0.0719

=0.0505+ +0.1948+0.0068+0.0405=0.2926.

Наибольшую оценку получила платформа Java, на втором месте Python, на третьем месте PHP.

В ходе проведения расчетов для дальнейшей разработки была выбрана платформа Java.

5. Описание программного обеспечения подсистемы студента

5.1 Создание базы данных

В системе используется 12 таблиц. Было принято решение использовать СУБД MySQL. В данном разделе будут описаны SQL-запросы, необходимые для создания базы данных.

Таблицы базы данных подробно описаны в разделе 3.10, концептуально-логическая схема базы данных представлена на рисунке 3.4.

Для создания базы данных в среде MySQL необходимо выполнить следующий запрос:

"CREATE DATABASE `studenttesting`"

Создание таблицы "Студент", предназначенной для хранения информации о студентах:

"CREATE TABLE `stu` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`firstname` varchar (255) DEFAULT NULL,

`lastname` varchar (255) DEFAULT NULL,

`middleName` varchar (255) DEFAULT NULL,

`group` int (11) DEFAULT NULL,

PRIMARY KEY (`ID`),

KEY `group` (`group`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; "

Создание таблицы "Группа":

"CREATE TABLE `gro` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`number_of_students` int (11) DEFAULT NULL,

`NameGroup` varchar (35) DEFAULT NULL,

`flow` int (11) DEFAULT NULL,

PRIMARY KEY (`ID`),

KEY `flow` (`flow`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; "

Создание таблицы "Поток":

"CREATE TABLE `flow` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`grade` int (11) NOT NULL DEFAULT '0',

`chair` int (11) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `grade` (`grade`),

KEY `chair` (`chair`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; "

Создание таблицы "Курс":

"CREATE TABLE `grade` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`grade` varchar (10) NOT NULL DEFAULT '',

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; "

Создание таблицы "Факультет":

"CREATE TABLE `faculty` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`name` varchar (61) NOT NULL DEFAULT '',

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; "

Создание таблицы "Кафедра":

"CREATE TABLE `chair` (

`ID` int (11) NOT NULL AUTO_INCREMENT,

`name_chair` varchar (65) DEFAULT NULL,

`faculty` int (11) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `faculty` (`faculty`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; "

Создание таблицы "Пользователи":

"CREATE TABLE `users` (

`USER_ID` int (10) unsigned NOT NULL,

`USERNAME` varchar (45) NOT NULL,

`PASSWORD` varchar (45) NOT NULL,

`ENABLED` tinyint (1) NOT NULL,

PRIMARY KEY (`USER_ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8; "


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.