Дипломная работа на тему Создание электронно-обучающего пособия по программированию

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • 1. КОМПЬЮТЕРНО-ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
  • 1.1 Прикладные программы
  • 1.2 Краткий обзор возможностей программы, используемые при решении задачи
  • 1.2.1 Объектно-ориентированная среда программирования Borland Delphi
  • 2. ПРАКТИЧЕСКАЯ ЧАСТЬ
  • 2.1 Постановка задачи
  • 2.2 Этапы выполнения работы
  • 2.3 Технологический алгоритм решения задачи
  • 2.4 Инструкция по эксплуатации
  • 3. ТЕХНИЧЕСКИЕ И ПРОГРАММНЫЕ СРЕДСТВА
  • 4. ТЕХНИКА БЕЗОПАСНОСТИ НА РАБОЧЕМ МЕСТЕ
  • ЗАКЛЮЧЕНИЕ
  • БИБЛИОГРАФИЧЕСКИЙ СПИСОК
  • ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

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

Основываясь на официальных определениях электронного издания (ЭИ), учебного электронного издания (УЭИ) и электронного учебника (ЭУ), необходимо расширить и конкретизировать понятие ЭУ.

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

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

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

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

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

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

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

1. КОМПЬЮТЕРНО-ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

1.1 Прикладные программы

Borland Delphi – интегрированная среда разработки ПО для Microsoft Windows на языке Delphi, созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies (англ.). Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в трех редакциях: Professional, Enterprise и Architect.

1.2 Краткий обзор возможностей программы, используемые при решении задачи

1.2.1 Объектно-ориентированная среда программирования Borland Delphi

Для запуска среды Delphi выполните следующую команду:

Пуск > Все программы > Borland Delphi 7 > Delphi 7

После загрузки интерфейс Delphi 7 имеет вид, показанный на рис. 1, и имеет 5 основных окон:

главное окно (Delphi 7 – Project 1);

окно редактора свойств объектов (Object Inspector);

окно формы (Form 1);

окно редактора кода (Unit1.pas);

окно дерева объектов (Object TreeView).

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

Рисунок 1 – Форма в Borland Delphi 7

Главное окно находится в верхней части экрана. В нём расположены:

– строка заголовка;

– строка меню;

– панель инструментов;

– панель палитры компонентов.

Вид главного окна представлен на рис. 2.

Рисунок 2 – Панель инструментов

Object Inspectorокно редактора свойств объектов или инспектор объектов (рис. 3).

Любой размещаемый на форме компонент характеризуется некоторым набором параметров: положением, размером, цветом и т. д. Часть этих параметров, например, положение и размеры компонента, можно изменять, манипулируя с компонентом в окне формы. Для изменения других параметров предназначено окно редактора свойств объектов (или, что то же самое, Инспектора объектов). Это окно содержит две вкладки – Properties (Свойства) и Events (События). Вкладка properties служит для установки нужных свойств компонента, вкладка Events позволяет определить реакцию компонента на то или иное событие. Совокупность cвойств отображает видимую сторону компонента: положение относительно левого верхнего угла рабочей области формы, его размеры и цвет, шрифт и текст надписи на нем и т. п.; совокупность событий – его поведенческую сторону: будет ли компонент реагировать на щелчок мыши или на нажатие клавиш, как он будет вести себя в момент появления на экране или в момент изменения размеров окна и т. п.

Рисунок 3 – Окно свойств объекта

Object TreeView – окно дерева объектов (рис. 4) предназначено для наглядного отображения связей между отдельными компонентами, размещенными на активной форме или в активном модуле данных. Щелчок по любому компоненту в этом окне активизирует соответствующий компонент в окне формы и отображает свойства этого компонента в окне Инспектора объектов.

Рисунок 4 – Окно компонентов

Окно кода программы представлено на рис. 5.

Окно редактора кода, можно увидеть, отодвинув в сторону окно формы либо, как уже говорилось выше, нажать клавишу F12. В него следует набирать текст программы. В начале работы над новым проектом это окно редактора кода содержит сформированный Delphi шаблон программы.

Рисунок 5 – Окно кода программы.

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

Свойства формы определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки.

В ходе работы над новым проектом, так в Delphi называется разрабатываемое приложение, программист изменяет значения свойств формы Form1 и добавляет к форме необходимые компоненты (поля ввода и вывода текста, командные кнопки), при этом он в любой момент времени контролирует содержание окна создаваемой программы и может внести в него необходимые изменения.

Компоненты и палитра компонентов

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

Окно формы – это окно Windows. Всё рабочее пространство окна – это рабочая область, размеченная сеткой для удобства расположения на ней компонентов из Палитры компонентов. Сама форма также является компонентом. Новая форма, которая создаётся при загрузке Delphi или при создании нового проекта, является главной формой приложения.

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

Для добавления какого-либо компонента в Окно формы надо выбрать его пиктограмму на панели компонентов, щёлкнуть на нём левой кнопкой мыши, а затем возможны два варианта действий:

– если надо точно позиционировать компонент, надо подвести курсор мыши в нужное место Окна формы и щёлкнуть левой кнопкой мыши один раз; левый верхний угол компонента совпадёт при этом с положением конца стрелки курсора мыши;

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

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

  • программирование электронный пособие технический

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

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

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

2.2 Этапы выполнения работы

На первом этапе разработки ЭУ целесообразно подобрать в качестве источников такие печатные и электронные издания, которые

– наиболее полно соответствуют стандартной программе,

– лаконичны и удобны для создания гипертекстов,

– содержат большое количество примеров и задач,

– имеются в удобных форматах (принцип собираемости).

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

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

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

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

На пятом этапе гипертекст реализуется в электронной форме.

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

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

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

2.3 Технологический алгоритм решения задачи

Принципы создания электронного учебника включают в себя:

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

2) Принцип полноты: каждый модуль должен иметь следующие компоненты

– теоретическое ядро,

– контрольные вопросы по теории,

– примеры,

– задачи и упражнения для самостоятельного решения,

– контрольные вопросы по всему модулю с ответами,

– контрольная работа,

– контекстная справка (Help),

– исторический комментарий.

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

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

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

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

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

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

Программа может находиться в двух состояниях – designtime (время создания проекта) и runtime (время выполнения проекта).

Каждое опредёлённое состояние можно описать в виде графа состояний, рассмотрим каждый из них:

Начнём с графа всего проекта:

Рисунок 7 – Граф электронно-обучающего пособия

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

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

Редактор тестов:

Рисунок 8 – Граф состояний тестового редактора

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

Тестовая форма:

Рисунок 9 – Граф состояний тестовой формы.

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

Также в проекте есть учебник, граф состояний выглядит так:

Рисунок 10 – Граф состояний Учебник

Теперь рассмотрим каждое окно нашего проекта:

Первым делом рассмотрим главную форму:

Она состоит из следующих объектов:

Рисунок 11 – Главная форма

По событию OnClick наших кнопок происходит открытие последующих форм.

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

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

MainMenu – позволяет создавать собственное меню для программы.

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

На форме также присутствует WebBrowser – веб-браузер, использующий свойства стандартного IE (Internet Explorer).

За отображение данных отвечает метод WebBrowser1. Navigate;

Свойства Items, компонента TreeView:

Рисунок 12 – TreeView Items Editor.

Слева располагается меню добавления файлов и меню древовидной структуры, свойство StateIndex справа отвечает за номер отображения по индексу, при событии OnChange TreeView. Text отвечает за название. (Код модуля находится в ПРИЛОЖЕНИИ А)

Форма 2 электронного пособия – Учебник.

Рисунок 13 – Форма 2. Учебник.

Программа тестирования:

Рисунок 14 – Программа тестирования

Состоит из панели ToolBar и тремя кнопками Открыть, Запустить и Выход.

Компонента StaticText, где будут отображаться вопросы.

Список CheckListBox, в котором будут отображаться варианты ответов и кнопки Дальше. (Подробный листинг представлен в ПРИЛОЖЕНИИ Б). Теперь рассмотрим тестовый редактор:

Рисунок 15 – Главное окно редактора тестов

Он состоит

– из главного меню (MainMenu);

– панели кнопок быстрого вызова команд ToolBar

Для каждой кнопки в свойстве Hint указана соответствующая ей подсказка. (Листинг формы представлен в ПРИЛОЖЕНИИ В)

Эта форма создаётся при нажатии кнопки «Создать» главного меню программы

Рисунок 16 – Окно создания нового теста

Форма состоит из:

– двух кнопок (Button и Button2);

– панели;

– 4 элементов Label;

– компонентов ComboBox и Edit (Листинг представлен в ПРИЛОЖЕНИИ Г)

Следующим является окно формирования нового теста вопросов и ответов:

Рисунок 17 – Окно редактирования и создание нового вопроса и ответов

Данное окно состоит из следующих компонентов:

– TreeView – для отображения меню создаваемых тестов;

– ListView – для ввода вариантов ответа и ввода вопроса

– Панель ToolBar со следующими кнопками: Создание вопроса, Редактирвоание, Удаление, Выход.

– Компонента ImageList для загрузки картинки;

– Подробный листинг представлен в ПРИЛОЖЕНИИ Д

Далее создаю форму для редактирования элементов, которая будет отображаться на экране по нажатии кнопок: Создать вопрос и Редактировать вопрос. Эту форму можно увидеть ниже.

Рисунок 18 – Редактирование вопроса.

Здесь находится строка TEdit для ввода текста вопроса и TCheckListBox для ввода вариантов ответа. Также на форме присутствуют кнопки Добавить и Удалить, Да и Отмена и два элемента Label. Также присутствует ImageList для вставки картинки. (Листинг представлен в ПРИЛОЖЕНИИ Е)

2.4 Инструкция по эксплуатации

Электронный учебник запускается на исполнение либо двойным щелчком левой кнопки мыши по файлу *.exe в проводнике Windows, либо нажатием правой кнопки мыши по указанному файлу и выбором пункта меню “Открыть”. Далее пользователю предлагается ознакомиться с теорией изучаемого материала, в левом верхнем углу располагается меню просмотра материала.

Открытие исполняемого файла программы.

Рисунок 19 – Открытие программы

Далее видно главное окно программы:

Здесь располагается главное меню программы.

Рисунок 20 – Главное окно программы

Щёлкнув по кнопке меню файл, можно увидеть меню состоящее из строчек (Файл>Копировать, Печать и Выход из программы).

Щёлкнув по кнопке меню помощь, показывается справка о программе:

Рисунок 21 – О программе.

Открываю интересующий раздел, в данном случае это Учебник.

Рисунок 22 – Открытие главы 3 учебника.

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

Можно также изучать этот материал и проверять его и закреплять на тестах и программах.

Каждая глава содержит задачи для ознакомления с программированием:

Открываю, либо сохраняю демонстрационный вариант программы:

Рисунок 23 – Открытие, либо сохранение примера программы.

Пример программы:

Рисунок 24 – Запуск программы.

Нажимаю кнопку Выполнить и открывается программа:

Рисунок 25 – Программа подсчёта суммы чисел.

Закрывается окно учебник кнопкой меню: Выход

И можно открыть тесты.

Тестовая оболочка

Рисунок 26 – Редактор тестов.

Здесь создаются тесты

Рисунок 27 – Создание вопроса, выбора правильного ответа и вариантов ответа.

После всего появляется вопросы, на которые отвечает пользователь.

Рисунок 28 – Программа тестирования

Вопросы теста:

Рисунок 29 – Вопрос и выборы ответа

Знание материала изображается вот так:

Рисунок 30 – Знание материала.

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

3. ТЕХНИЧЕСКИЕ И ПРОГРАММНЫЕ СРЕДСТВА

Исходя из целей дипломной работы, требуется создать программу, работающую под ОС Windows. В связи с тем, что разработанный алгоритм подразумевает использование объектного программирования и параллельных процессов взаимодействия с пользователем, было принято решение использовать интегрированную среду разработки программ Borland Delphi 7. Данная среда разработки программ позволяет достаточно быстро и качественно создавать приложения для Windows.

Технические средства, используемые при разработке:

§ Windows 9x/ME/NT/XP;

§ Видео память не менее 1Mb. Ускоритель графики не требуется;

§ Оперативной памяти не менее 16Mb;

§ Процессор Intel Pentium 166 и выше;

§ Объем свободного места на жестком диске не менее 500Mb;

§ Манипуляторы: клавиатура и мышь.

4. ТЕХНИКА БЕЗОПАСНОСТИ НА РАБОЧЕМ МЕСТЕ

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

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

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

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

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

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

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

Требования безопасности в аварийных ситуациях:

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

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

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

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

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

На рабочем месте запрещается иметь огнеопасные вещества

В помещениях запрещается:

1) зажигать огонь;

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

3) курить;

4) сушить что-либо на отопительных приборах;

5) закрывать вентиляционные отверстия в электроаппаратуре

Источниками воспламенения являются:

1) искра при разряде статического электричества

2) искры от электрооборудования

3) искры от удара и трения

4) открытое пламя

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

Помещения с электрооборудованием должны быть оснащены огнетушителями типа ОУ-2 или ОУБ-3.

Требования безопасности по окончании работы

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

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

ЗАКЛЮЧЕНИЕ

Электронный учебник необходим для самостоятельной работы учащихся при очном и, особенно, дистанционном обучении потому, что он:

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

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

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

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

– дает возможность красиво и аккуратно оформить работу и сдать ее преподавателю в виде файла или распечатки;

– выполняет роль бесконечно терпеливого наставника, предоставляя практически неограниченное количество разъяснений, повторений, подсказок и проч.

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

– Электронный учебник полезен на практических занятиях в специализированных аудиториях потому, что он:

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

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

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

– Электронный учебник удобен для преподавателя потому, что он:

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

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

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

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Нормативная:

1. Государственный образовательный стандарт среднего профессионального образования. Государственные требования к минимуму содержания и уровню подготовки выпускников по специальности 230105 «Программное обеспечение ВТ и АС». М., 2002.

Основная:

1. Вендров, АМ, CASE-технологии. Современные методы и средства проектирования информационных систем / АМ. Вендров/ – М.: финансы и статистика, 1998. — 176 с.: илл.

2. Данилин, А. Архитектура и стратегия. “Инь” и “янь’ информационных технологий / А.Данилин, А. Слюсаренко. – М.: Интеренет-Ун-т-информ.

Технологий. – 2005. –504 с.

3. Информатика: Учебник. 3-е перераб. Изд. / Под ред. ПВ. Макаровой. – М.: Финансы и статистика, 2007. — 768 с.: ил.

4. Кантор, М. Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения / М. Кантор. – М.: Вильямс, 2002.

5. Котляров, В.П. Основы тестирования программного обеспечения Интернет-университет информационных технологий / ВП. Котляров. ИНТУИТ. ру, 2006.

6. Международный стандарт ЮО 9001-94. Системы качества. Модель обеспечения качества при проектировании, разработке, производстве, монтаже и обслуживании. – М.: ИПК, Изд. стандартов, 1996. – 19 с.

7. Проектирование информационных систем: курс лекций: учебное пособие для студентов ВУЗов 1 ВИ. Геркулов, Г.Н. Денищенко, ИЛ. Коровкина. – М.: Интеренет-Ун-т-информ. Технологий. 2005. – 304 с.

8. Скопин, ИН. Основы менеджмента программных проектов 1 ин. Скопив. – М.: Интеренет-Ун-т-информ. Технологий. 2004. – 336 с.

9. Терехов, А.Н. Технология программирования. Интернет-университет информационных технологий / А.н. Терехов. – М.: Интеренет-Ун-т-информ. Технологий, -2007.– 152 с,

10. Фатрелл, Р. Управление программными проектами: достижение оптимального качества при минимуме затрат / Р, Фатрелл, Д. Шафер, Л. Шафер. – М.: Вильямс, 2003.

ПРИЛОЖЕНИЯ

Приложение А

Модуль «Учебник»

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleCtrls, SHDocVw, ComCtrls, Menus;

type

TForm2 = class(TForm)

TreeView1: TTreeView;

WebBrowser1: TWebBrowser;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure TreeView1DblClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure TreeView1Change(Sender: TObject; Node: TTreeNode);

procedure N8Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

ProgramPath:String;

implementation

uses Unit5;

{$R *.dfm}

// процедура отображения браузером файла html

procedure TForm2.TreeView1Change(Sender: TObject; Node: TTreeNode);

begin

WebBrowser1.Navigate(”);

if node.StateIndex = 11 then

WebBrowser1.Navigate(ProgramPath+’урокиurok1.htm’);

if node.StateIndex = 12 then

WebBrowser1.Navigate(ProgramPath+’урокиurok2.htm’);

if node.StateIndex = 13 then

WebBrowser1.Navigate(ProgramPath+’урокиurok3.htm’);

if node.StateIndex = 14 then

WebBrowser1.Navigate(ProgramPath+’урокиurok4.htm’);

if node.StateIndex = 15 then

WebBrowser1.Navigate(ProgramPath+’урокиurok5.htm’);

if node.StateIndex = 16 then

WebBrowser1.Navigate(ProgramPath+’урокиurok6.htm’);

if node.StateIndex = 21 then

WebBrowser1.Navigate(ProgramPath+’урокиurok7.htm’);

if node.StateIndex = 22 then

WebBrowser1.Navigate(ProgramPath+’урокиurok8.htm’);

if node.StateIndex = 23 then

WebBrowser1.Navigate(ProgramPath+’урокиurok9.htm’);

if node.StateIndex = 31 then

WebBrowser1.Navigate(ProgramPath+’урокиurok10.htm’);

if node.StateIndex = 32 then

WebBrowser1.Navigate(ProgramPath+’урокиurok11.htm’);

if node.StateIndex = 33 then

WebBrowser1.Navigate(ProgramPath+’урокиurok12.htm’);

if node.StateIndex = 34 then

WebBrowser1.Navigate(ProgramPath+’урокиurok13.htm’);

if node.StateIndex = 35 then

WebBrowser1.Navigate(ProgramPath+’урокиurok14.htm’);

if node.StateIndex = 41 then

WebBrowser1.Navigate(ProgramPath+’урокиurok15.htm’);

if node.StateIndex = 42 then

WebBrowser1.Navigate(ProgramPath+’урокиurok16.htm’);

if node.StateIndex = 43 then

WebBrowser1.Navigate(ProgramPath+’урокиurok17.htm’);

if node.StateIndex = 51 then

WebBrowser1.Navigate(ProgramPath+’урокиurok18.htm’);

if node.StateIndex = 52 then

WebBrowser1.Navigate(ProgramPath+’урокиurok19.htm’);

if node.StateIndex = 61 then

WebBrowser1.Navigate(ProgramPath+’урокиurok20.htm’);

if node.StateIndex = 62 then

WebBrowser1.Navigate(ProgramPath+’урокиurok21.htm’);

if node.StateIndex = 63 then

WebBrowser1.Navigate(ProgramPath+’урокиurok22.htm’);

if node.StateIndex = 71 then

WebBrowser1.Navigate(ProgramPath+’урокиdos.htm’);

if node.StateIndex = 72 then

WebBrowser1.Navigate(ProgramPath+’урокиcrt.htm’);

if node.StateIndex = 73 then

WebBrowser1.Navigate(ProgramPath+’урокиgraph.htm’);

if node.StateIndex = 74 then

WebBrowser1.Navigate(ProgramPath+’урокиsreda_tp.htm’);

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

ProgramPath:=ExtractFilePath(Application.ExeName);

end;

procedure TForm2.TreeView1DblClick(Sender: TObject);

begin

Form5.ShowModal;

end;

procedure TForm2.N8Click(Sender: TObject);

begin

ShowMessage(‘Эта программа предназначена для самостоятельного изучения студентами языка Pascal, учебник содержит примеры задач, тесты, а также теорию по языку Pascal. Удачного Вам обучения!’);

end;

procedure TForm2.N6Click(Sender: TObject);

begin

close;

end;

end.

Приложение Б

Модуль: Тестовая программа

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, CheckLst, ComCtrls, ToolWin;

type

PQuestion=^TQuestion;

TQuestion=record

Name: String[255];

ResultCount:Integer;

ResiltText: array[0..10] of String[255];

ResiltValue: array[0..10] of boolean;

end;

TForm3 = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

QuestionLabel: TStaticText;

QuestionCheckList: TCheckListBox;

Button1: TButton;

OpenDialog1: TOpenDialog;

procedure FormShow(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

private

{ Private declarations }

QuestionList:TList;

Question, QuestionNumber, FalseNumber: Integer;

FileName: String;

procedure NextQuestion;

procedure LoadFile;

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormShow(Sender: TObject);

begin

QuestionList:=TList.Create;

end;

procedure TForm3.FormDestroy(Sender: TObject);

begin

QuestionList.Free;

end;

procedure TForm3.ToolButton1Click(Sender: TObject);

begin

//Показать окно открытия файла

if not OpenDialog1.Execute then exit;

FileName:=OpenDialog1.FileName;

ToolButton2.Enabled:=true;

end;

procedure TForm3.ToolButton2Click(Sender: TObject);

begin

LoadFile;

QuestionNumber:=0;

FalseNumber:=0;

Button1.Enabled:=true;

NextQuestion;

end;

procedure TForm3.LoadFile;

var

fs:TFileStream;

i, Count:Integer;

Str:String[5];

ProjectName:String[255];

NewQuest:PQuestion;

begin

QuestionList.Clear;

//Открыть файл для чтения

fs:=TFileStream.Create(FileName, fmOpenRead);

//Перейти в начало файла и прочитать заголовок

fs.Seek(0,soFromBeginning);

fs.read(Str, SizeOf(Str));

//Если заголовок равен тексу “Тест”, значит это “вопрос-

//варианты ответов”.

if Str=’Тест’ then

begin

//Прочитать имя проекта

fs.Read(ProjectName, sizeof(ProjectName));

Caption:=ProjectName;

try

//Прочитать количество вопросов

fs.Read(Count, sizeof(Count));

//Запустить цикл чтения вопросов

for i:=0 to Count-1 do

begin

//Создаю новую структуру в памяти для вопроса

NewQuest:=New(PQuestion);

//Читаю структуру

fs.Read(NewQuest^, sizeof(TQuestion));

//Добавляю структуру в контейнер

QuestionList.Add(NewQuest);

end;

finally

//Закрываю файл

fs.Free;

end;

end;

end;

procedure TForm3.NextQuestion;

var

i:Integer;

begin

Randomize;

Question:=Random(QuestionList.Count-1);

QuestionLabel.Caption:=PQuestion(QuestionList[Question]).Name;

QuestionCheckList.Items.Clear;

for i:=0 to PQuestion(QuestionList[Question]).ResultCount-1 do

QuestionCheckList.Items.Add(PQuestion(QuestionList[Question]).ResiltText[i]);

Inc(QuestionNumber);

end;

procedure TForm3.Button1Click(Sender: TObject);

var

OK:Boolean;

i:Integer;

begin

OK:=true;

for i:=0 to PQuestion(QuestionList[Question]).ResultCount-1 do

if PQuestion(QuestionList[Question]).ResiltValue[i]<>QuestionCheckList.Checked[i] then

OK:=false;

if OK=false then

Inc(FalseNumber);

QuestionList.Delete(Question);

if QuestionNumber<5 then

NextQuestion

else

begin

Application.MessageBox(PChar(‘Вы закончили тест с количеством ошибок = ‘+IntToStr(FalseNumber)), ‘Внимание!!!’);

Button1.Enabled:=false;

end;

end;

procedure TForm3.ToolButton3Click(Sender: TObject);

begin

close;

end;

end.

Приложение В

Модуль «Главное окно тестового редактора».

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, ComCtrls, ToolWin, ImgList, ExtCtrls;

type

TTestEditorForm = class(TForm)

ImageList1: TImageList;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

SaveAsMenu: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

ControlBar1: TControlBar;

ToolBar1: TToolBar;

NewButton: TToolButton;

OpenButton: TToolButton;

SaveButton: TToolButton;

PrintButton: TToolButton;

ToolButton9: TToolButton;

OptionsButton: TToolButton;

ToolButton10: TToolButton;

HelpButton: TToolButton;

AboutButton: TToolButton;

ToolButton11: TToolButton;

ExitButton: TToolButton;

StatusBar: TStatusBar;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

procedure AboutButtonClick(Sender: TObject);

procedure ExitButtonClick(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure NewButtonClick(Sender: TObject);

procedure SaveButtonClick(Sender: TObject);

procedure SaveAsMenuClick(Sender: TObject);

procedure OpenButtonClick(Sender: TObject);

private

{ Private declarations }

procedure ShowHint(Sender: TObject);

procedure SaveTest1;

public

{ Public declarations }

end;

var

TestEditorForm: TTestEditorForm;

implementation

uses AboutUnit, NewTestWizardUnit, QuestionResultUnit;

{$R *.dfm}

procedure TTestEditorForm.AboutButtonClick(Sender: TObject);

begin

AboutForm.ShowModal;

end;

procedure TTestEditorForm.ExitButtonClick(Sender: TObject);

begin

Close;

end;

procedure TTestEditorForm.ShowHint(Sender: TObject);

begin

StatusBar.Panels.Items[0].Text := Application.Hint;

end;

procedure TTestEditorForm.FormShow(Sender: TObject);

begin

Application.OnHint := ShowHint;

end;

procedure TTestEditorForm.NewButtonClick(Sender: TObject);

begin

NewTestForm.ShowModal;

if NewTestForm.ModalResult<>mrOK then exit;

if NewTestForm.TestTypeBox.ItemIndex=0 then

begin

QuestionResultForm:=TQuestionResultForm.Create(Owner);

QuestionResultForm.ProjectName:=NewTestForm.TestNameEdit.Text;

QuestionResultForm.Caption:=QuestionResultForm.Caption+’ : ‘+QuestionResultForm.ProjectName;

end;

end;

procedure TTestEditorForm.SaveButtonClick(Sender: TObject);

begin

//(нет активных окон), то выход

if ActiveMDIChild=nil then exit;

//Если окно имеет имя QuestionResultForm, то это

//вопрос-варианты ответов и вызываем для сохранения

//процедуру SaveTest1.

if ActiveMDIChild.Name=’QuestionResultForm’ then

SaveTest1;

end;

procedure TTestEditorForm.SaveTest1;

var

fs:TFileStream;

i:Integer;

Str:String[5];

begin

//Если у активного окна в свойстве FileName пусто,

//то нет имени файла и нужно вызвать обработчик события

//меню “Сохранить как…”, чтобы появилось окно ввода

//имени файла

if TQuestionResultForm(ActiveMDIChild).FileName=” then

begin

SaveAsMenuClick(nil);

exit;

end;

//Создаю новый файл. Если он уже существовал, то его

//содержимое будет уничтожено

fs:=TFileStream.Create(TQuestionResultForm(ActiveMDIChild).FileName, fmCreate);

//Сохраняю в начале файла текст “Тест”, чтобы по нему потом

//определить к чему относиться данный файл.

Str:=’Тест’;

fs.Write(Str, SizeOf(Str));

//Сохранить имя проекта

fs.Write(TQuestionResultForm(ActiveMDIChild).ProjectName, sizeof(TQuestionResultForm(ActiveMDIChild).ProjectName));

try

//Сохранить количество вопросов

fs.Write(TQuestionResultForm(ActiveMDIChild).QuestionList.Count, sizeof(TQuestionResultForm(ActiveMDIChild).QuestionList.Count));

//Запускаю цикл, в котором сохраняються все вопросы.

for i:=0 to TQuestionResultForm(ActiveMDIChild).QuestionList.Count-1 do

fs.Write(PQuestion(TQuestionResultForm(ActiveMDIChild).QuestionList[i])^, sizeof(TQuestion));

finally

//Закрыть файл

fs.Free;

end;

end;

procedure TTestEditorForm.SaveAsMenuClick(Sender: TObject);

begin

if SaveDialog1.Execute then

begin

TQuestionResultForm(ActiveMDIChild).FileName:=SaveDialog1.FileName;

SaveButtonClick(nil);

end;

end;

procedure TTestEditorForm.OpenButtonClick(Sender: TObject);

var

fs:TFileStream;

i, Count:Integer;

Str:String[5];

NewQuest:PQuestion;

begin

//Показать окно открытия файла

if not OpenDialog1.Execute then exit;

//Открыть файл для чтения

fs:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);

//Перейти в начало файла и прочитать заголовок

fs.Seek(0,soFromBeginning);

fs.read(Str, SizeOf(Str));

//Если заголовок равен тексу “Тест”, значит это “вопрос-

//варианты ответов”.

if Str=’Тест’ then

begin

//Создать новое окно теста

QuestionResultForm:=TQuestionResultForm.Create(Owner);

//Сохранить имя открытого файла в объекте окна

QuestionResultForm.FileName:=OpenDialog1.Filename;

//Прочитать имя проекта

fs.Read(QuestionResultForm.ProjectName, sizeof(QuestionResultForm.ProjectName));

try

//Прочитать количество вопросов

fs.Read(Count, sizeof(Count));

//Запустить цикл чтения вопросов

for i:=0 to Count-1 do

begin

//Создаю новую структуру в памяти для вопроса

NewQuest:=New(PQuestion);

//Читаю структуру

fs.Read(NewQuest^, sizeof(TQuestion));

//Добавляю структуру в контейнер

QuestionResultForm.QuestionList.Add(NewQuest);

//Создаю новый элемент в дереве

with QuestionResultForm.QuestionTreeView.Items.Add(nil, NewQuest.Name) do

begin

ImageIndex:=0;

Data:=NewQuest;

end;

end;

finally

//Закрываю файл

fs.Free;

end;

end;

end;

end.

Приложение Г

Модуль создания нового теста

unit NewTestWizardUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TNewTestForm = class(TForm)

Panel1: TPanel;

Label1: TLabel;

Label2: TLabel;

Image1: TImage;

Bevel1: TBevel;

Label3: TLabel;

TestNameEdit: TEdit;

Button1: TButton;

Button2: TButton;

Label4: TLabel;

TestTypeBox: TComboBox;

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

NewTestForm: TNewTestForm;

implementation

{$R *.dfm}

procedure TNewTestForm.FormShow(Sender: TObject);

begin

Image1.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName)+’logo.bmp’);

end;

end.

Приложение Д

Модуль создания вопросов и ответов.

unit QuestionResultUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, ComCtrls, ToolWin, ImgList;

type

PQuestion=^TQuestion;

TQuestion=record

Name: String[255];

ResultCount:Integer;

ResiltText: array[0..10] of String[255];

ResiltValue: array[0..10] of boolean;

end;

TQuestionResultForm = class(TForm)

QuestionTreeView: TTreeView;

ResultView: TListView;

Splitter1: TSplitter;

ToolBar1: TToolBar;

NewButton: TToolButton;

EditButton: TToolButton;

DeleteButton: TToolButton;

ToolButton4: TToolButton;

CloseButton: TToolButton;

ImageList1: TImageList;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure CloseButtonClick(Sender: TObject);

procedure NewButtonClick(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure QuestionTreeViewChange(Sender: TObject; Node: TTreeNode);

procedure EditButtonClick(Sender: TObject);

procedure DeleteButtonClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

ProjectName:String[255];

FileName:String;

QuestionList:TList;

end;

var

QuestionResultForm: TQuestionResultForm;

implementation

uses MainUnit, EditQuestionUnit;

{$R *.dfm}

procedure TQuestionResultForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

QuestionList.Free;

Action:=caFree;

QuestionResultForm:=nil;

end;

procedure TQuestionResultForm.CloseButtonClick(Sender: TObject);

begin

Close;

end;

procedure TQuestionResultForm.FormShow(Sender: TObject);

begin

QuestionList:=TList.Create;

end;

procedure TQuestionResultForm.NewButtonClick(Sender: TObject);

var

NewQuest:PQuestion;

i:Integer;

begin

EditQuestionForm.ResultListBox.Items.Clear;

EditQuestionForm.QuestionEdit.Text:=”;

EditQuestionForm.ShowModal;

if EditQuestionForm.ModalResult<>mrOK then exit;

NewQuest:=New(PQuestion);

NewQuest.Name:=EditQuestionForm.QuestionEdit.Text;

NewQuest.ResultCount:=EditQuestionForm.ResultListBox.Items.Count;

for i:= 0 to NewQuest.ResultCount-1 do

begin

NewQuest.ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];

NewQuest.ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];

end;

QuestionList.Add(NewQuest);

with QuestionTreeView.Items.Add(nil, NewQuest.Name) do

begin

ImageIndex:=0;

Data:=NewQuest;

end;

end;

procedure TQuestionResultForm.QuestionTreeViewChange(Sender: TObject;

Node: TTreeNode);

var

i:Integer;

begin

ResultView.Items.Clear;

if Node=nil then exit;

for i:=0 to PQuestion(node.Data).ResultCount-1 do

with ResultView.Items.Add do

begin

Caption:=PQuestion(node.Data).ResiltText[i];

if PQuestion(node.Data).ResiltValue[i]=true then

begin

SubItems.Add(‘Да’);

ImageIndex:=2;

end

else

begin

SubItems.Add(‘Нет’);

ImageIndex:=1;

end;

end;

end;

procedure TQuestionResultForm.EditButtonClick(Sender: TObject);

var

i:Integer;

begin

if QuestionTreeView.Selected=nil then exit;

//Заполняю компонент QuestionEdit в окне редактирования вопросов

EditQuestionForm.QuestionEdit.Text:=PQuestion(QuestionTreeView.Selected.Data).Name;

//Очищаю список вариантов ответов в окне редактирования вопросов

EditQuestionForm.ResultListBox.Clear;

for i:=0 to PQuestion(QuestionTreeView.Selected.Data).ResultCount-1 do

begin

//Заполняю список вариантов ответов в окне редактирования вопросов

EditQuestionForm.ResultListBox.Items.Add(PQuestion(QuestionTreeView.Selected.Data).ResiltText[i]);

//Если ответ верный, то ставлю галочку

if PQuestion(QuestionTreeView.Selected.Data).ResiltValue[i]=true then

EditQuestionForm.ResultListBox.Checked[i]:=true;

end;

//Отображаю окно редактирования вопроса

EditQuestionForm.ShowModal;

if EditQuestionForm.ModalResult<>mrOK then exit;

PQuestion(QuestionTreeView.Selected.Data).Name:=EditQuestionForm.QuestionEdit.Text;

PQuestion(QuestionTreeView.Selected.Data).ResultCount:=EditQuestionForm.ResultListBox.Items.Count;

for i:= 0 to PQuestion(QuestionTreeView.Selected.Data).ResultCount-1 do

begin

PQuestion(QuestionTreeView.Selected.Data).ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];

PQuestion(QuestionTreeView.Selected.Data).ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];

end;

//Вызываю процедуру QuestionTreeViewChange, которая должна обновить

//информацию в ResultView. Первый параметр нас не интересует, а второй

//мы обязаны указать потому что внутри процедуры QuestionTreeViewChange

//мы используем его. Я указываю выделенный элемент.

QuestionTreeViewChange(nil, QuestionTreeView.Selected);

end;

procedure TQuestionResultForm.DeleteButtonClick(Sender: TObject);

var

index:Integer;

begin

if QuestionTreeView.Selected=nil then exit;

//Подтверждение удаления

if Application.MessageBox(PChar(‘Вы действительно хотите удалить – ‘+

QuestionTreeView.Selected.Text),’Внимание!!!’, MB_OKCANCEL+MB_ICONINFORMATION)<>idOk then Exit;

//Сохраняю индекс выделенного элемента

index:=QuestionTreeView.Selected.Index;

//Удаляю выделенный элемент из дерева

QuestionTreeView.Items.Delete(QuestionTreeView.Selected);

//Удаляю из контейнера

QuestionList.Delete(Index);

end;

procedure TQuestionResultForm.FormCreate(Sender: TObject);

begin

FileName:=”;

end;

end.

Приложение Е

Модуль редактирования теста

unit EditQuestionUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, CheckLst, Buttons;

type

TEditQuestionForm = class(TForm)

Panel1: TPanel;

image1: TImage;

Button1: TButton;

Button2: TButton;

ResultListBox: TCheckListBox;

Label1: TLabel;

QuestionEdit: TEdit;

Label3: TLabel;

NewResultButton: TSpeedButton;

SpeedButton1: TSpeedButton;

procedure FormShow(Sender: TObject);

procedure NewResultButtonClick(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

EditQuestionForm: TEditQuestionForm;

implementation

{$R *.dfm}

procedure TEditQuestionForm.FormShow(Sender: TObject);

begin

Image1.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName)+’logo.bmp’);

end;

procedure TEditQuestionForm.NewResultButtonClick(Sender: TObject);

var

Str:String;

begin

Str:=”;

if InputQuery(‘Новый ответ’, ‘Введите текст ответа:’, Str) then

ResultListBox.Items.Add(Str);

end;

procedure TEditQuestionForm.SpeedButton1Click(Sender: TObject);

begin

if ResultListBox.ItemIndex<>-1 then

ResultListBox.Items.Delete(ResultListBox.ItemIndex);

end;

end.

Поделиться статьёй
Поделиться в telegram
Поделиться в whatsapp
Поделиться в vk
Поделиться в facebook
Поделиться в twitter
Леонид Федотов
Леонид Федотов
Окончил НИУ ВШЭ факультет компьютерных наук. Сам являюсь кандидатом наук. По специальности работаю 13 лет, за это время создал 8 научных статей и 2 диссертации. В компании подрабатываю в свободное от работы время уже более 5 лет. Нравится помогать школьникам и студентам в решении контрольных работ и написании курсовых проектов. Люблю свою профессию за то, что это направление с каждым годом становится все более востребованным и актуальным.

Ещё статьи

Нет времени делать работу? Закажите!
Вид работы
Тема
Email

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