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

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

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

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

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

- весь набор языков программирования, которыми владеет программист;

- уровень подготовки программиста к работе с каждым из языков программирования;

- временные и стоимостные затраты на обучение программиста конкретному языку;

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

- ожидаемый размер программного изделия;

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

- переносимость программного изделия на другие типы ЭВМ;

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

- возможность организации динамических структур;

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

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

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

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

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

Рис.2.7 Классификация языков программирования.

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

Логические языки программирования (Prolog) предполагают построение программы в виде совокупности логических правил с предварительно определенными алгоритмами для обработки входных данных программы в соответствии с ее правилами. В качестве языка программирования высокого уровня в них используется логика предикатов первого порядка в форме фраз Хорна. Следовательно, логические языки программирования предназначены для написания программных изделий, которые ориентированы на логические операции: поиск, сравнение, выбор - а не арифметические.

Таким образом, выбор языка программирования целесообразно производить из подмножества алгоритмических языков. Наибольшее распространение среди алгоритмических языков визуального программирования, имеют Delphi, C++ Builder и Visual Basic. Так как все они используют практически идентичные библиотеки визуальных компонентов, то целесообразно провести анализ из базовых языков, которыми являются соответственно Pascal, C++ и Basic.

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

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

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

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

Таким образом, исходя из проведенного выше анализа, в качестве основы для разработки программного обеспечения АОС, для сущей наглядности и доступности информации, предлагаемой для обучения пользователям, был выбран язык объектно-ориентированного программирования - Pascal.

В настоящее время для написания приложений, работающих под ОС Windows, широко используются два типа сред программирования:

1. Среда программирования Borland Delphi (язык программирования Pascal).

2. Среда программирования C++ Builder (язык программирования C++).

В данной АОС в качестве среды программирования была использована Borland Delphi 6, т.к. она наиболее проста и удобна в использовании, но при этом обладает всеми необходимыми функциями.

Borland Delphi 6 представляет собой профессиональное средство проектирования и разработки Windows-приложений.

АОС «Компьютерная графика» содержит в себе ряд практически отработанных тестовых примеров по всем разделам дисциплины - задачи для самоконтроля обучаемого. Все тесты разработаны при помощи языка высокого уровня Pascal, а средой программирования являлась Borland Delphi 6.

Pascal - язык программирования системных и прикладных программных изделий для профессиональных программистов, соответственно средой программирования будет являться Borland Delphi 6. Разумеется, он используется и непрофессионалами, но его свойства привлекательны именно для профессионалов:

- современность (Delphi 6 включает в себя все управляющие конструкции, рекомендуемые теоретическим и практическим программированием, а его структура побуждает программиста использовать в своей работе нисходящее проектирование, структурное программирование и пошаговую разработку модулей, что повышает надежность и удобочитаемость программ);

- эффективность (структура Delphi 6 позволяет наилучшим образом использовать возможности современных ЭВМ, как следствие - из трех названных языков Delphi 6 имеет максимальную компактность и быстроту исполнения программных изделий);

- переносимость (программные изделия, написанные на Delphi 6 для одной ЭВМ, практически без изменений могут быть перенесены на другую, так как компиляторы данного языка реализованы на десятках типов вычислительных систем от восьмиразрядных микропроцессоров до многопроцессорных суперкомпьютеров);

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

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

На сегодня Delphi является одним из самых распространенных средств создания приложений для операционной среды Windows и других. Простота и естественность языка, ориентация системы на разработку такого рода приложений, наконец, эффективность (большая производительность и относительно небольшие размеры) создаваемых с ее помощью программ - все это позволило мне остановить свой выбор именно на Delphi.

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

Таким образом, для написания АОС был выбран язык высокого уровня Паскаль в интегрированной среде Delphi 6.0.

2.4.2 Описание процедур и функций, используемых в АОС

Для реализации автоматизированной обучающей системы по дисциплине «Компьютерная графика» в Delphi 6.0 разработана программа.

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

Физически ресурсы находятся внутри exe-файла приложения. Они могут загружаться в оперативную память автоматически при запуске приложения или по запросу приложения (явному или неявному). Такой механизм обеспечивает экономное использование оперативной памяти, так как все редко используемые данные можно хранить на диске и загружать в память только при необходимости.

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

Разработка программы AOS.exe начинается с создания модуля с именем Log, который является аналогом функции main в программах для MS-DOS. Модуль Log первым получает управление после того, как специальный стартовый модуль устанавливает расположение стека и кучи программы, а также выполняет необходимые инициализирующие действия.

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

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

- модуль Admin содержит объекты для доступа к файлам, хранящимся на жестком диске;

- модуль User подключает базу данных вопросов и базу данных ответов test.DB, которые для исключения несанкционированного редактирования вопросов и ответов снабжены индивидуальными паролями; обеспечивает возможность обучаемому проверить свои знания по изученным темам и по курсу в целом.

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

Выводы

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

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

3. В результате анализа дисциплины «Компьютерная графика» был выбран статистический метод оценки знаний, который позволяет дать объективную оценку знаниям обучаемого.

4. На основе анализа существующих языков программирования был выбран язык высокого уровня Турбо Паскаль интегрированной среды Delphi 6.0. В качестве метода программирования выбран метод программирования по нисходящему способу с использованием модульной структуры.

3. ОЦЕНКА ЭФФЕКТИВНОСТИ ФУНКЦИОНИРОАНИЯ И ЭКНОМИЧЕСКАЯ ОЦЕНКА РАЗРАБОТКИ АОС. РАЗРАБОТКА ПРГРАММНОЙ ДОКУМЕНТАЦИИ

3.1 Оценка эффективности функционирования АОС

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

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

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

Эксперимент проводился по данным, представленным в таблице 3.1.

Таблица 3.1 - Сравнительные данные эксперимента

Данные

С использованием АОС

На плановом занятии

Время для изучения теоретического материала (мин.)

60

90

Время на решение задач для самоконтроля (мин.)

30

60

Кол-во обучаемых, прошедших контроль (%)

4

70

Количество обучаемых, прошедших обучение с использованием программы - 4 человека.

Как видно из приведенных значений характеристик обучения, эффект от применения программы обучающего комплекса очевиден. Для более полной оценки эффекта применения АОС рассчитаем значения выбранных показателей эффективности обучающей системы:

- коэффициент сокращения времени обучения при использовании АОС:

, (3.1)

где - время для изучения материала с использованием АОС;

- время для изучения материала на плановом занятии;

- коэффициент сокращения времени на решение задач для самоконтроля при использовании АОС определятся:

, (3.2)

где К1 - время, затраченное на опрос при использовании АОС;

К0 - время, затраченное на опрос при использовании обычного метода.

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

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

Принято считать, что забывание происходит по экспоненциальному закону [5]:

R=exp (-l*t) (3.3)

где R - относительный объем выученного материала;

l - Некоторая константа забывания;

t - Период времени, прошедшего с момента выучивания материала.

Естественно, чем больше информации находится в памяти, большее количество ошибок может быть допущено. Поэтому сохранность в памяти выученного материала можно характеризовать отношением объема информации, содержащийся в ошибках, допущенных при его воспроизведении Iош, к полному объему усвоенной информации Iп. Объемы информации удобно измерять в битах. Иными словами сохранность информации можно оценить через вероятность появления ошибки Q [5], т.е.

R=1-Q = 1 - Iош / Iп (3.4)

При определении этой формулы предполагалось, что случайная величина Iош равномерно распределена на интервале [0;1]. Практический опыт ранее созданных разработок показал приемлемость данного допущения.

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

R=1- [1-exp(-l*t)]n (3.5)

где l - константа забывания;

t=t-t [n-1] - период времени прошедший с (n-1)-го повторения;

t - Текущее время;

t [n-1] - время, прошедшее от начала обучения до (n-1)-го повторения.

Показатели эффективности получены эмпирически; ниже представлены данные в таблице 3.2 о соотношениях между n (количеством повторений) и Rn (показателем эффективности):

Таблица 3.2 - Данные соотношений между n и Rn

N

1

2

3

4

Rn

0,38

0.62

0.77

0.85

Анализ полученных результатов позволяет сделать вывод об отсутствии необходимости многократного повторения материала, достаточно 2-3 повторения.

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

3.2 Экономическая оценка разработки АОС

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

Для разработки ПО для АОС требуется один программист.

Производственный цикл каждого этапа определяется по формуле:

, (3.6)

где: - трудоемкость этапа, чел.-ч;

- продолжительность рабочего дня, ч;

q - Количество работников одновременно участвующих в выполнении работ, чел.

Пересчет длительности производственного цикла в календарные дни осуществляют умножением на коэффициент 1,4, поэтому для расчета длительности каждого этапа, в календарных днях исходя из 8 часового рабочего дня, будем использовать следующую формулу:

. (3.7)

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

Заработная плата разработчиков программы рассчитывается на основе трудоемкости стадий работ. Часовые ставки определяются на основе должностных окладов разработчиков и разрядов работ (часовых тарифных ставок). Расчет заработной платы сводим в следующую таблицу (табл. 3.3).

Таблица 3.3 - Расчёт заработной платы.

Наименование

Трудоемкость этапа чел.-дн

Исполнители

Дневная ставка, р.

З/пл., р.

Должность

Числен.

1

Формирование требований

2

Программист

1

200

400

2

Разработка концепции проекта

2

Программист

1

200

400

3

Техническое задание

2

Программист

1

200

400

4

Проектирование

5

Программист

1

200

1000

5

Оформление расчётно-пояснительной записки

5

Программист

1

200

1000

6

Приёмо-сдаточные испытания

4

Программист

1

200

800

7

Опытная эксплуатация

6

Программист

1

200

1200

 

Итого:

26

 

200

5200

Заработная плата основного персонала получена по формуле:

, (3.8)

где: к - количество этапов;

- трудоемкость i этапа;

- средняя часовая тарифная ставка оплаты работ i этапа.

Таблица 3.4 - Статьи расхода.

Наименование статьи расхода

Затраты, руб.

Канцелярские товары (бумага, ручки)

200

Диски (1 штука)

10

Расходные материалы (картриджи для принтера)

1000

Итого

1210

В эту статью входят транспортные расходы, составляющие 10% от стоимости: 1210/100*10=121.

Всего по этой статье: 1210+121=1231 руб.

Затраты на создание научно-технической продукции ЗНТПр определяются укрупнено по удельному весу наиболее простой для расчета статьи калькуляции, отражающей оплату труда основного персонала, занятого в создании программы;

ЗНТПр , (3.9)

где: ЗПп - оплата труда персонала в соответствии с действующими системами и формами оплаты труда;

- материальные затраты;

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

Затраты на создание программы -8431 руб.

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

, (3.10)

где: - текущие затраты на создание программы;

- оплата труда основного персонала в общих текущих затратах на создание научно-технической продукции;

Цена программы: = 8431 + 5200/100 == 8483 р.

3.3 Разработка программной документации

3.3.1 Руководство оператора

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

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

Программа АОС реализует следующие функции:

- формирование учебных занятий;

- контроль изученного материала.

Для выполнения программы требуется:

- ПЭВМ типа IBM PC (желаемая производительность 600МГц и выше);

- видеомонитор типа VGA, SVGA (экранное разрешение 1024 Х 768);

- накопитель на ЖМД (50 Мб свободного места);

- операционная система Windows 98 и выше.

Программа выполнена в электронном виде с использованием языка высокого уровня Borland Pascal и среды программирования Borland Delphi 6.0.

Функционирование программы происходит в среде операционной системы Microsoft Windows и требует 25 Mb оперативной памяти.

Запуск автоматизированной обучающей системы осуществляется выбором в главном окне среды Windows программного элемента, соответствующего загрузочному файлу системы AOS.exe. После запуска программа выводит на экран модуль «Выбор права пользователя». При выборе «Администратор» и правильно введенном пароле, загружается модуль «Администратор», представленный на рис 3.1.

Рисунок 3.1 Модуль «Администратор»

Оно включает разделы:

- Файл;

- Панель пользователя.

Данный модуль предназначен для администрирования АОС, то есть дает возможность редактировать тест (добавлять, изменять вопросы и ответы), а также просматривать успеваемость курсантов в меню «Журнал» (рисунок 3.2).

Рисунок 3.2 Редактор журнала успеваемости

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

Рисунок 3.3 Меню «Печать»

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

Для окончания работы необходимо выбрать пункт меню «Выход».

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

- Лекции;

- Практика;

- Тест.

При выборе режима работы " Лекции " активизируется система учебной информации, предлагаемой для изучения, выполненная при помощи Html редактора Internet Explorer . Здесь обучаемый может самостоятельно провести изучение материала по интересующим разделам, производя выбор нажатием функциональной записи. Содержание учебного материала представлено на рис. 3.4.

Рисунок 3.4 Файл учебного материала

В панели «Тест» обучаемый должен ответить на 30 вопросов по пройденному материалу, для этого ему необходимо зарегистрироваться. Форма регистрации представлена на рис. 3.5.

Рисунок 3.5 Форма регистрации обучаемого

После регистрации обучаемый отвечает на вопросы путем нажатия на кнопку, соответствующей выбранному варианту ответа (рисунок 3.6).

Рисунок 3.6 Режим тестирования

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

Рисунок 3.7 Окно результатов тестирования

Пункт меню "О программе" (см. рис. 3.1.) содержит справочную информацию о назначении и области применения созданной АОС, а также данные об авторе, создавшем эту систему.

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

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

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

3.3.2 Руководство программиста

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

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

Программа АОС реализует следующие функции:

- формирование учебных занятий;

- контроль изученного материала.

Для выполнения программы требуется:

- ПЭВМ типа IBM PC (желаемая производительность 600МГц и выше);

- видеомонитора типа VGA, SVGA (экранное разрешение 1024 Х 768);

- накопителя на ЖМД (50 Мб свободного места);

- операционной системы Windows 98 и выше.

Программа выполнена в электронном виде с использованием языка высокого уровня Borland Pascal.

Функционирование программы происходит в среде операционной системы Microsoft Windows и требует 25 Mb оперативной памяти.

Программа организована в виде инсталляционного диска.

Запуск автоматизированного обучающего комплекса осуществляется автоматически путем вставки диска в CD-ROM. После вставки диска активизируется программа инсталляции InstallShield Wizard (рисунок 3.7).

После нажатия кнопки открывается диалог выбора директории инсталляции (папки, куда будет установлен АОС). При этом возможна инсталляция как в папку по умолчанию, так и выбор (создание) любой другой директории (рисунок 3.7). При этом сохраняется возможность возврата к предыдущему диалогу и прерывания инсталляции. При выборе (создании) директории для инсталляции, отличающейся от предлагаемой по умолчанию, необходимо учитывать потребность АОС в свободном месте на ЖМД (50 Мб).

Кнопка активирует диалог создания директории инсталляции, отличающейся от предлагаемой по умолчанию (рисунок 3.8).

Рисунок 3.8 Выбор директории для инсталляции АОС

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

Рисунок 3.9 Создание директории инсталляции, отличающейся отпредлагаемой по умолчанию

Рисунок 3.10 Окно проверки параметров инсталляции.

После нажатия кнопки начинается непосредственно установка АОК на компьютер, по окончании которого выдается сообщение о завершении установки (рисунок 3.11).

Рисунок 3.11 Сообщение о завершении установки

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

Для запуска программы из среды операционной системы Windows достаточно явно запустить файл АОС.exe в диспетчере файлов, тогда активизируется главное окно АОС. Время загрузки главного модуля на ПЭВМ при использовании НЖМД не более 2 сек. Работа с АОС происходит в масштабе реального времени в диалоговом режиме. Диалог обучаемого с программой обеспечивается системой меню, в которой информация проста для понимания, трактуется однозначно и не требует дополнительных пояснений.

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

1) Наличие всех составных частей обучающей системы (всех файлов с текстовой информацией).

2) Нахождение всех файлов обучающей системы в одном каталоге (в одной директории) с основным модулем обучающей системы АОС.exe.

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

В ходе работы с тестовыми программами могут выводиться на экран информационные сообщения об ошибке при некорректном введении пароля во время входа в АОС или при смене прав пользователя (рисунок 3.12)

Рисунок 3.12 Сообщение об ошибке

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

При регистрации пользователя программисту, в случае, если он не указал один из параметров, выводится на экран сообщение с указанием соответствующего параметра (рисунок 3.13).

Рисунок 3.13 Сообщение о не введенном параметре

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

Рисунок 3.14 Сообщение о результатах тестирования

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

Выводы

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

2. Коэффициент сокращения времени обучения при использовании АОС равен , коэффициент сокращения времени на решение задач для самоконтроля при использовании АОС - . На основе полученных результатов видно как эффективно применение АОС в процессе обучения.

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

ЗАКЛЮЧЕНИЕ

В ходе выполненной дипломной работы разработана автоматизированная обучающая система по дисциплине «Компьютерная графика».

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

АОС реализует диалоговый режим работы с обучаемым, который помогает легко и просто общаться с обучающим курсом, параллельно совершенствуя свои навыки в работе с персональной ЭВМ.

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

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

Общий эффект от внедрения АОС характеризуется:

- сокращением времени обучения;

- облегчением труда преподавателя при проведении занятий;

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

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

Список использованных источников

1. Перовский Е.П. Проблема методов в обучении. Советская педагогика, №12, 1994, 35 с.

2. Роберт И.В. Современные информационные технологии в образовании. - М.: «Школа-Пресс», 1994, 54 с.

3. Зайцева Л.В. Разработка и применение автоматизированных обучающих систем на базе ЭВМ. - Рига: Зинанте, 1989, 190 с.

4. Мачулин В.В. Теоретические основы автоматизированных систем обучения. - М.: МО СССР, 1989, 150 с.

5. Клейман Г.М. Школы будущего: компьютеры в процессе обучения. - М.: Высшая школа, 1987,87 с.

6. Теория и методика систем интенсивного обучения. Лекционные этапы интенсивного обучения. Под ред. А.А. Золотарева. - М.: Ассоциация «Кадры», 1997, 68 с.

7. Лернер И.Я. Дидактические основы методов обучения. - М.: Педагогика, 1981, 178 с.

8. Новые информационные технологии в образовании. Информационный бюллетень. - М.: ВВИА, 1964, 120 с.

9. Бухалев А.В. Программированное обучение. - М.: ВВИА, 1964, 327 с.

10. Андреев Г.П. - Некоторые проблемы компьютеризации учебного процесса в ВВУЗах. - М: Военная мысль, 1994г, 124 с.

11. Халабия Р.Ф. - Основные направления развития АОС. - М: МГАПИ, 2002г, 240 с.

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

Классификация обучающих систем

ПРИЛОЖЕНИЕ 2

Листинг программы

Модуль «Выбор пользователя»:

unit log;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, adm, use, DB, ADODB;type TLogin = class(TForm) Label1: TLabel; Label2: TLabel; ComboBox1: TComboBox; Edit1: TEdit; BitBtn1: TBitBtn; ADOConnection1: TADOConnection; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Login: TLogin;implementation{$R *.dfm}procedure TLogin.BitBtn1Click(Sender: TObject);case ComboBox1.ItemIndex of 0: if (Edit1.Text = '111') then beginAdmin.AdminQuery1.SQL.Clear;Admin.AdminQuery1.SQL.Add('select * from test');Admin.AdminQuery1.ExecSQL;Admin.AdminQuery1.Active := true;Admin.DBGrid1.Columns.Items[0].Visible := false;Admin.DBGrid1.Columns.Items[1].Title.Caption := 'Номер';Admin.DBGrid1.Columns.Items[2].Title.Caption := 'Вопрос';Admin.DBGrid1.Columns.Items[3].Title.Caption := 'Ответ 1';Admin.DBGrid1.Columns.Items[4].Title.Caption := 'Ответ 2';Admin.DBGrid1.Columns.Items[5].Title.Caption := 'Ответ 3';Admin.DBGrid1.Columns.Items[6].Title.Caption := 'Ключ';Admin.DBGrid1.Columns.Items[1].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[2].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[3].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[4].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[5].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[6].Title.Font.Size := 8;Admin.DBGrid1.Columns.Items[1].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[2].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[3].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[4].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[5].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[6].Title.Font.Style := [fsBold];Admin.DBGrid1.Columns.Items[1].Title.Alignment := taCenter;Admin.DBGrid1.Columns.Items[3].Title.Alignment := taCenter;Admin.DBGrid1.Columns.Items[4].Title.Alignment := taCenter; Admin.DBGrid1.Columns.Items[5].Title.Alignment := taCenter;Admin.DBGrid1.Columns.Items[6].Title.Alignment := taCenter;Admin.DBGrid1.Columns.Items[1].Width := 50;Admin.DBGrid1.Columns.Items[2].Width := 450;Admin.DBGrid1.Columns.Items[3].Width := 120;Admin.DBGrid1.Columns.Items[4].Width := 120;Admin.DBGrid1.Columns.Items[5].Width := 120;Admin.DBGrid1.Columns.Items[6].Width := 50;Admin.AdminQuery2.SQL.Clear;Admin.AdminQuery2.SQL.Add('SELECT * FROM users ORDER BY familia');Admin.AdminQuery2.ExecSQL;Admin.AdminQuery2.Active := true;Admin.DBGrid2.Columns.Items[0].Visible := false;Admin.DBGrid2.Columns.Items[1].Title.Caption := 'Фамилия';Admin.DBGrid2.Columns.Items[2].Title.Caption := 'Имя';Admin.DBGrid2.Columns.Items[3].Title.Caption := 'Отчество';Admin.DBGrid2.Columns.Items[4].Title.Caption := 'Уч. группа';Admin.DBGrid2.Columns.Items[5].Title.Caption := 'Правильных ответов';Admin.DBGrid2.Columns.Items[6].Title.Caption := 'Оценка';Admin.DBGrid2.Columns.Items[1].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[2].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[3].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[4].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[5].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[6].Title.Font.Size := 8;Admin.DBGrid2.Columns.Items[2].Title.Font.Style := [fsBold]; Admin.DBGrid2.Columns.Items[3].Title.Font.Style := [fsBold];Admin.DBGrid2.Columns.Items[4].Title.Font.Style := [fsBold];Admin.DBGrid2.Columns.Items[5].Title.Font.Style := [fsBold];Admin.DBGrid2.Columns.Items[6].Title.Font.Style := [fsBold];Admin.DBGrid2.Columns.Items[1].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[2].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[3].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[4].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[5].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[6].Title.Alignment := taCenter;Admin.DBGrid2.Columns.Items[1].Width := 150;Admin.DBGrid2.Columns.Items[2].Width := 150;Admin.DBGrid2.Columns.Items[3].Width := 150;Admin.DBGrid2.Columns.Items[4].Width := 100;Admin.DBGrid2.Columns.Items[5].Width := 150;Admin.DBGrid2.Columns.Items[6].Width := 50; Admin.Show; Login.Visible := false; end else begin ShowMessage('Не верно введен пароль!!!'); ComboBox1.Text := ''; Login.Edit1.Text := ''; end; 1: if (Edit1.Text = '222') then begin Login.Visible := false; User.Visible := true; end else begin ShowMessage('Не верно введен пароль!!!'); ComboBox1.Text := ''; Login.Edit1.Text := ''; end; elseend; end;end.Модуль «Администратор»:

unit adm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComCtrls, Menus, Word2000, OleServer, ComObj, StdCtrls, Buttons;type TAdmin = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; AdminSource1: TDataSource; AdminQuery1: TADOQuery; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; DBGrid2: TDBGrid; DBNavigator2: TDBNavigator; MainMenu1: TMainMenu; N1: TMenuItem; AdminQuery2: TADOQuery; AdminSource2: TDataSource; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; Panel1: TPanel; BitBtn1: TBitBtn; ADOQuery1: TADOQuery; DataSource1: TDataSource; ComboBox1: TComboBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure N8Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Panel1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Admin: TAdmin; implementationuses log, use;{$R *.dfm}function FindInsert( FT, RT : string): Boolean;begin Words.Selection.Find.Text := (FT); Words.Selection.Find.Replacement.Text := (RT); FindInsert := Words.Selection.Find.Execute(Replace:=2);end;procedure TAdmin.FormClose(Sender: TObject; var Action: TCloseAction);beginLogin.Close;end;procedure TAdmin.N8Click(Sender: TObject);beginAdmin.Close;Login.Close;end;procedure TAdmin.N7Click(Sender: TObject);beginLogin.Visible := true;Admin.Visible := false;Login.ComboBox1.Text := '';Login.Edit1.Text := '';end;procedure TAdmin.N9Click(Sender: TObject);beginUser.Visible := true;User.PageControl1.ActivePageIndex := 0;end;procedure TAdmin.N10Click(Sender: TObject);beginAdmin.Visible := false;User.Visible := true;User.PageControl1.ActivePageIndex := 1;end;procedure TAdmin.N11Click(Sender: TObject);beginAdmin.Visible := false;User.Visible := true;User.PageControl1.ActivePageIndex := 2;end;procedure TAdmin.N6Click(Sender: TObject);beginADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('SELECT gr FROM users GROUP BY gr ORDER BY gr');ADOQuery1.Active := true;while not ADOQuery1.Eof do beginADOQuery1.Next;ComboBox1.Items.Add(ADOQuery1.FieldByName('gr').AsString); end;Panel1.Visible:= true;end;begin//печатьif (ComboBox1.Text = ' ') thenbeginShowMessage('Вы не указали группу для печати ведомости!');endelsebeginp := ExtractFilePath(Application.ExeName);Words := CreateOleObject('Word.Application');Words.Visible := true;Words.Documents.Add(p+'ved.dot');FindInsert('<gr>', ComboBox1.Text);ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('SELECT * FROM users where gr="'+ComboBox1.Text+'"');ADOQuery1.Active := true;Words.ActiveDocument.Tables.item(1).select;t := 2;while not ADOQuery1.Eof do begin Words.ActiveDocument.Tables.item(1).cell(t,2).Range.text:= ADOQuery1.FieldByName('familia').AsVariant+' '+ADOQuery1.FieldByName('ima').AsVariant+' '+ADOQuery1.FieldByName('otchestvo').AsVariant; Words.ActiveDocument.Tables.item(1).cell(t, 3).Range.text:=ADOQuery1.FieldByName('ver').AsVariant; Words.ActiveDocument.Tables.item(1).cell(t,

ADOQuery1.Next; Words.ActiveDocument.Tables.item(1).rows.add; t :=t+1; end;Words.ActiveDocument.Tables.item(1).rows.item(t).delete;Panel1.Visible := false;end;end;procedure TAdmin.Panel1Click(Sender: TObject);beginPanel1.Visible := false;end;end.Модуль «Пользователь»:

unit use;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtrls, DB, ADODB, OleCtrls, SHDocVw, ExtCtrls, Menus;type TUser = class(TForm) UseQuery1: TADOQuery; DataSource1: TDataSource; PageControl1: TPageControl; TabSheet2: TTabSheet; TabSheet3: TTabSheet; GroupBox1: TGroupBox; ComboBox1: TComboBox; WebBrowser1: TWebBrowser; Panel1: TPanel; Label1: TLabel; GroupBox2: TGroupBox; Edit1: TEdit; GroupBox3: TGroupBox; Edit2: TEdit; GroupBox4: TGroupBox; Edit3: TEdit; GroupBox5: TGroupBox; Edit4: TEdit; Button1: TButton; Panel2: TPanel; Label2: TLabel; Label3: TLabel; GroupBox6: TGroupBox; Label4: TLabel; Button2: TButton; Button3: TButton; Button4: TButton; GroupBox7: TGroupBox; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ComboBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure C1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var User: TUser; id, count, i, ot, ocen, key: integer; fam, ima, otc, gr: string;implementationuses log;{$R *.dfm}procedure TUser.FormClose(Sender: TObject; var Action: TCloseAction);beginLogin.Close;end;function Rezul( rez : integer): Boolean;begin if (rez = key)then ot := ot+1; User.UseQuery1.Next; User.Label4.Caption := User.UseQuery1.fieldbyname('vopros').AsString; User.Button2.Caption := User.UseQuery1.fieldbyname('otvet1').AsString; User.Button3.Caption := User.UseQuery1.fieldbyname('otvet2').AsString; User.Button4.Caption := User.UseQuery1.fieldbyname('otvet3').AsString; key :=User.UseQuery1.fieldbyname('key').AsInteger; i := i+1; User.GroupBox6.Caption := 'Вопрос № '+ IntToStr(i); end else begin if (rez = key)then ot := ot+1; ocen := 5; if (ot<23) then ocen := 4; if (ot<16) then ocen := 3; if (ot<11) then ocen := 2; User.UseQuery1.SQL.Clear; User.UseQuery1.SQL.Add('update users set ver = '+IntToStr(ot)+',ochenka= '+IntToStr(ocen)+' where id = '+IntToStr(id)); User.UseQuery1.ExecSQL; MessageDlg('Тестирование законченно! Вы ответили правильно на '+IntToStr(ot)+ ' вопросов! ' + 'Ваша оценка - '+IntToStr(ocen), mtConfirmation, [mbOK], 0); User.Panel2.Visible := false; User.Panel1.Visible := True; User.Edit2.Text := ''; User.Edit3.Text := ''; User.Edit4.Text := ''; end;end;procedure TUser.ComboBox1Click(Sender: TObject);vard : string;begind := ExtractFilePath(Application.ExeName);case ComboBox1.ItemIndex of0 : d:=d+'page1.html';1 : d:=d+'page2.html';2 : d:=d+'page3.html';3 : d:=d+'page4.html';4 : d:=d+'page5.html';5 : d:=d+'page6.html';6 : d:=d+'page7.html';7 : d:=d+'page8.html';8 : d:=d+'page9.html';9 : d:=d+'page10.html';10: d:=d+'page11.html';11: d:=d+'page12.html';12: d:=d+'page13.html';13: d:=d+'page14.html';14: d:=d+'page15.html';15: d:=d+'page16.html';end;procedure TUser.Button1Click(Sender: TObject);beginif (Panel1.Visible=true) thenbegin if (Length(Edit1.Text) = 0) then begin MessageDlg('Не указан параметр Фамилия',mtInformation, [mbOK], 0); Edit1.SetFocus(); endelse begin if (Length(Edit2.Text) = 0) then begin MessageDlg('Не указан параметр Имя',mtInformation, [mbOK], 0); Edit2.SetFocus(); end else begin if (Length(Edit3.Text) = 0) then begin MessageDlg('Не указан параметр Отчество',mtInformation, [mbOK], 0); Edit3.SetFocus(); end else begin if (Length(Edit4.Text) = 0) then MessageDlg('Не указана группа!',mtInformation, [mbOK], 0); Edit4.SetFocus(); end else begin fam := Edit1.Text; ima := Edit2.Text; otc := Edit3.Text; gr := Edit4.Text; UseQuery1.SQL.Clear(); UseQuery1.SQL.Add('INSERT INTO users ( familia, ima, otchestvo, gr, ver, ochenka) VALUES ( "'+fam+'", "'+ima+'", "'+otc+'", "'+gr+'", NULL, NULL)'); UseQuery1.ExecSQL(); UseQuery1.SQL.Clear(); UseQuery1.SQL.Add('SELECT Max(users.id) AS [Max-id] FROM users'); UseQuery1.Active := true; id := UseQuery1.FieldByName('Max-id').AsInteger; UseQuery1.SQL.Clear(); UseQuery1.SQL.Add('SELECT Count(test.id) AS [Countvopros] FROM test'); UseQuery1.Active := true; count := UseQuery1.fieldbyname('Countvopros').AsInteger; Label3.Caption := fam+' '+' '+ima+' '+otc; Panel1.Visible := false; Panel2.Visible := true; UseQuery1.SQL.Clear(); UseQuery1.SQL.Add('SELECT * FROM test'); UseQuery1.Active := true;Button2.Caption := UseQuery1.fieldbyname('otvet1').AsString; Button3.Caption := UseQuery1.fieldbyname('otvet2').AsString; Button4.Caption := UseQuery1.fieldbyname('otvet3').AsString; key :=User.UseQuery1.fieldbyname('key').AsInteger; i := 1; ot := 0; end;end;end;end;end;end;procedure TUser.Button2Click(Sender: TObject);beginRezul(1);end;procedure TUser.Button3Click(Sender: TObject);beginRezul(2);end;procedure TUser.Button4Click(Sender: TObject);beginRezul(3);end;procedure TUser.N2Click(Sender: TObject);beginUser.Close;Login.Close;end;procedure TUser.C1Click(Sender: TObject);Login.Visible := true;User.Visible := false;Login.ComboBox1.Text := '';Login.Edit1.Text := '';end;end.

Размещено на Allbest.ru


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

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

    дипломная работа [3,0 M], добавлен 12.12.2011

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

    курсовая работа [304,4 K], добавлен 17.08.2013

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

    курсовая работа [572,0 K], добавлен 19.03.2015

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

    дипломная работа [72,7 K], добавлен 29.11.2011

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

    курсовая работа [85,9 K], добавлен 31.10.2014

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

    реферат [19,1 K], добавлен 14.09.2009

  • Система программирования Delphi, ее характеристика. Основные требования к обучающей программе. Составление блок-схемы алгоритма программы "Математика. 1 класс". Виды задач для решения в обучающей программе. Описание работы системы, инструкция к ней.

    курсовая работа [2,0 M], добавлен 17.06.2015

  • Методы и этапы создания автоматизированной обучающей системы по дисциплине "Программирование" для студентов ВУЗов. Описание и сравнение программ-аналогов. Выбор инструментальных средств и языка разработки. Проектирование интерфейса обучающей программы.

    курсовая работа [4,4 M], добавлен 26.11.2010

  • Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.

    курсовая работа [28,3 K], добавлен 13.06.2007

  • Разработка компьютерной программы, которая реализует игру "Арканоид". Освоение приемов программирования на языке С++ с использованием средств OpenGL, разбор структуры и логики игры, приобретение навыков работы с 3D графикой. Руководство пользователя.

    курсовая работа [1,2 M], добавлен 02.03.2017

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