Разработка тестирующего комплекса по теме "Технологии программирования"

Автор работы: Пользователь скрыл имя, 02 Апреля 2012 в 18:16, курсовая работа

Краткое описание

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

Содержание работы

Введение …………………………………………………….………….…………. 3
Глава I. Создание тестирующих программ с использованием тестирующих компонентов ……………………………………………………..7
1.1. Аналитический обзор …………………………………………………………7
1.2. Описание компонентов, используемых при реализации практической части курсовой работы …………………………………………………………...8
Глава II. Разработка тестирующей программы ……………………….……13
2.1. Постановка задачи ……………………………………………………………13
2.2. Алгоритм реализации работы ………………………………………………..13
2.3. Отладка и тестирование программы …….……………………………....…...20
2.4. Инструкции по работе с программой ………………………………………..22
2.5. Анализ полученных результатов и выводы ………………….……..……….23
Заключение ………………..……………………………………………………...25
Список используемой литературы …………………………………………….27
Приложение ……………………………………...……………………………….29

Содержимое работы - 1 файл

МОЯ КУРСОВАЯ.doc

— 160.50 Кб (Скачать файл)

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

Свойство DroppedDown определяет, раскрыт ли в данный момент список. Это свойство доступно также для записи, что позволяет программно управлять состоянием списка. Событие OnDropDown происходит при изменении состояния списка. Наполнение списка ведется методами Add, Append, insert и т. п. его свойства items класса TStrings

 

Компонент TGroupBox

 

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

Поэтому, для того чтобы на форме иметь несколько независимых групп радиокнопок, их нужно поместить на разные объекты типа TGroupBox. (Кстати, именно для решения задачи с радиокнопками есть специальный ком­понент — TRadioGroup).

Будучи потомком класса TCustomControl, TGroupBox наследует от него общие свойства. Специфических свойств и методов этот компонент не имеет.

 

 


Глава II. Разработка тестирующего комплекса

 

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

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

2.      Спецификация (определение, формулирование требований к программе).

3.      Разработка алгоритма.

4.      Кодирование (запись алгоритма на языке программирования).

5.      Отладка.

6.      Тестирование.

7.      Создание справочной системы.

 

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

 

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

 

2.2. Спецификация.

 

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

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

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

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

Сущность задачи заключается в том, что пользователь после запуска программы выбирает вариант теста. Это и есть исходные данные. Перед началом теста пользователь может ознакомиться с теоретическими основами по теме «Технология программирования», нажав кнопку «Справка». Во время прохождения теста эта кнопка становится неактивной. После выбора варианта начинается тест, и пользователь отвечает последовательно на вопросы теста. Когда вопросы закончатся, выведется сообщение о результатах тестирования - это и есть искомый результат. Искомый результат представляет собой сообщение, в котором выводятся данные о тестировании: сообщение, что тест завершен и результат тестирования.

 

 

2.3. Алгоритм решения задачи и его описание

 

 

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

Общая схема решения задачи сводится к трем этапам:

               анализ данных;

               поиск идеи решения и ее запись;

               реализация решения задачи при помощи ЭВМ.

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

В данном случае мы имеем входные данные –вариант теста, который считывается из текстового файла; выходные данные – результат прохождения теста (количество правильных ответов).

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

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

На последнем этапе осуществляется реализация на ЭВМ с помощью языка программирования. Для удобства пишутся комментарии.

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

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

Тестирующая программа содержит 2 варианта тестов по теме «Технология программирования»: 9 вопросов по первому уровню и 9 вопросов по повышенному уровню. Вопросы предполагают выбор из предложенных вариантов ответа. Они находятся в отдельных тестовых файлах.

В начале создается форма. На форму помещаются компоненты:   1 компонент TComboBox, 3 компонента TButton, 1 компонент TLabel, 1 компонент TRadioGroup, 1 компонент TGroupBox.

Эти компоненты предназначены для следующих функций:

    ComboBox1 – вывод списка вариантов теста;

    Button1 – переход к следующему вопросу;

    Button2 – переход к справке;

    Button3 – закрытие формы;

    Label1 – отображение текста текущего вопроса;

    RadioGroup1 –отображение вариантов ответа и выбор правильного варианта;

   GroupBox1 – содержит компонент Label1.

Далее создается проект для запуска тестирующей программы с выводом вопросов и вариантов ответов на них с подсчетом правильных ответов (Test, Unit1.pas, Form1). Пример проекта сразу после запуска программы приведен на рис.1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1

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

procedure Button1Click(Sender: TObject) – обработка ответа на вопрос и переход к следующему вопросу;

procedure LoadQuestion(Index: integer) – вывод вопроса;

procedure FormCreate(Sender: TObject) – загрузка формы, определение выбранного варианта теста;

procedure LoadTest(Index: integer) – вывод вариантов ответа и определение правильности выбранного ответа;

procedure TestBoxCloseUp(Sender: TObject) – закрытие списка вариантов теста;

procedure Button2Click(Sender: TObject) – вызов справки;

procedure Button3Click(Sender: TObject) – закрытие формы.

Таблица 2

Свойства компонентов

Form1

Caption

Тест "Технология программирования"

WindowState

wsMaximized

Color

clGradientActiveCaption

Position

poDesktopCenter

Label1

Font

Tahoma, 10 p, полужирный курсив, темно-синий

Button1

Caption

Далее

Font

MS Sans Serif, 10 p, полужирный курсив, черный

Button2

Caption

Справка

Font

MS Sans Serif,, 10 p, полужирный курсив, черный

Button3

Caption

Выход

Font

MS Sans Serif, 10 p, полужирный курсив, черный

ComboBox1

Name

TestBox

Font

MS Sans Serif, 10 p, полужирный курсив, темно-синий

GroupBox1

Caption

Вопрос

Font

MS Sans Serif, 10 p, полужирный курсив, темно-синий

RadioGroup1

Caption

Варианты ответов

Font

MS Sans Serif, 10 p, полужирный курсив, темно-синий

 

Открыв Unit1.pas, мы увидим, что  в разделе type все помещенные на форму компоненты и примененные к ним события автоматически прописаны. В разделе const мы пропишем константы TestName=' Test_' (имя файла теста) и max=1000 (максимальное количество вопросов). В разделе var нужно описать используемые переменные. Ниже приведены эти переменные с описанием их назначения и типа.

QuestionText – массив для хранения текста текущего вопроса, тип string;

AnswerQuestion – массив для хранения номера правильного варианта ответа, тип byte;

QuestionText1 – массив для хранения текста первого варианта ответа, тип string;

QuestionText2 – массив для хранения текста второго варианта ответа, тип string;

QuestionText3 – массив для хранения текста третьего варианта ответа, тип string;

         Ball – результат прохождения  теста, тип integer;

now – номер текущего вопроса, тип integer;

j, h – счетчики, тип byte.

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

После запуска тестирующей  программы  на экране появляется форма и происходит выполнение процедуры TForm1.FormCreate. В этой процедуре происходит проверка существования файлов теста и, если такие файлы существуют, то выполняется добавление названий тестов в список компонента TestBox. 

Далее пользователь выбирает вариант теста, нажав на него мышью. Загрузка нужного варианта теста прописана в процедуре TForm1.LoadTest. для этого создается переменная s и в нее происходит загрузка теста. Затем строковому массиву QuestionText присваиваются текст вопроса, варианты ответа, а номер правильного ответа присваивается элементу массива AnswerQuestion. После этого происходит вызов процедуры LoadQuestion с параметром переменной now, в которой содержится номер текущего вопроса (=0, так как вопрос 1).

В процедуре LoadQuestion с помощью условного оператора if происходит проверка существования вопроса с таким номером, а потом очищается поле ответов и присваивается текст вопроса свойству caption компонента question, и текст ответов добавляется в строки компонента AnswerGroup. В результате пользователь увидит на экране вопрос и 3 варианта ответа.

Пользователь выбирает вариант ответа на вопрос, нажав мышью на него, а затем нажимает кнопку «Далее». Действия программы в этом случае прописаны в процедуре TForm1.Button1Click. здесь с помощью условного оператора происходит сравнение выбранного ответа с правильным. В случае совпадения, наращивается переменная ball (количество правильных ответов). Затем нужно убрать выделение с группы ответов, увеличиваем номер вопроса (переменная now) на 1 и снова происходит вызов процедуры LoadQuestion. Это происходит, пока не закончатся вопросы. Когда все вопросы закончились, этого не происходит, а выполняется вывод сообщения о завершении тестирования с его результатами с помощью процедуры showmessage. Это прописано в самой процедуре LoadQuestion.

 

 

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

 

 

 

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

Отладка начинается с устранения из программы синтаксических ошибок, т.е. таких, которые могут быть определены компилятором. Перед выполнением программы ее надо компилировать (Compile) и компонировать (Link). Если мы сразу запустим программу на выполнение (Run), то компиляция и компоновка происходят автоматически. Но обратим внимание на то, что компилятор Delphi кроме сообщений об ошибках может выдавать еще и предупреждения. Предупреждения выдаются к таким конструкциям программы, которые являются формально правильными (с точки зрения синтаксиса), но компилятор "подозревает" в них семантическую ошибку. Довольно часто предупреждения компилятора действительно отражают ошибки программиста. Программа с ошибками не может компоноваться и исполняться. Программа с предупреждениями - может. Если мы сразу (без исполнения компиляции отдельным шагом) запускаем программу на исполнение, мы не увидим предупреждений компилятора, т. е рискуем выполнять программу с теми ошибками, которые могли быть выявлены предварительно. Мы будем выполнять компиляцию отдельным шагом и не переходить к следующему шагу, пока не убедимся в том, что предупреждений компилятора нет или его "подозрения" безосновательны.

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

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

Информация о работе Разработка тестирующего комплекса по теме "Технологии программирования"