2.3. Функциональная и логическая структура

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


Нет Да


Рис. 2. Алгоритм работы программы

2.4. Алгоритм реализации проекта

2.4.1. Файл теста

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

Файл теста состоит из трех разделов:

·  раздел заголовка;

·  раздел оценок;

·  раздел вопросов.

 Заголовок содержит общую информацию о тесте, например, о его назначении. Заголовок может состоять из нескольких строк. Признаком конца заголовка является точка, стоящая в начале строки. За заголовком следует раздел оценок, в котором приводятся названия оценочных уровней и количество баллов, необходимое для достижения этих уровней. Название уровня должно располагаться в одной строке. Признаком конца раздела оценок является точка, стоящая в начале строки. За разделом оценок следует раздел вопросов теста. Каждый вопрос начинается текстом вопроса, за которым может следовать имя файла иллюстрации, размещаемое на отдельной строке и начинающееся символом \. Имя файла иллюстрации является признаком конца текста вопроса. Если к вопросу нет иллюстрации, то вместо имени файла ставится точка. После вопроса следуют альтернативные ответы. Текст альтернативного ответа может занимать несколько строк. В строке, следующей за текстом ответа, располагается количество баллов, которое испытуемый получит за выбор этого ответа. Если альтернативный ответ не является последним для текущего вопроса, то перед оценкой ставится запятая, если является - то точка.

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

Какую формулу следует записать в ячейку В5, чтобы

вычислить сумму выплаты?

\tabl.bmp

=сумма(В2-В4)

,0

=сумма(В2:В4)

,2

=В2+ВЗ+В4

.1

Вот пример раздела оценок:

Отлично

100

Хорошо

85

Удовлетворительно

60

Плохо

50

Файл теста может быть подготовлен в текстовом редакторе Notepad или Microsoft Word. В случае использования Microsoft Word при сохранении текста следует указать, что надо сохранить только текст. Для этого в диалоговом окне Сохранить в списке Тип файла следует выбрать вариант Только текст (*.txt).

2.4.2. Форма приложения

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

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

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

answer: array[1..N_ANSWERS] of TLabel; // альтернативные ответы

selector: array[1,.N_ANSWERS+1] of TRadioButton; // кнопки выбора ответа

Однако, для того чтобы компонент появился в форме, одного объявления недостаточно. Компонент - это объект Delphi, и его объявление - это только указатель на область памяти, который без наличия объекта ни на что не указывает. Создается компонент путем применения метода create к указателю на компонент, в нашем случае - к элементу массива.

Например, инструкции

answer[l] := TLabel.Create(self);

answer[1].Parent := Form1;

создают компонент (Label) и помещают его в форму приложения (Form1).

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

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

type

TForm1 = class(TForm)

Labels: TLabel; // поле вывода вопроса

Image1: ТImage; // область вывода иллюстрации

Panell: TPanel;

Buttonl: TButton; // кнопка Начать, Дальше, Выход

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure SelectorClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

В отличие от других строк, сгенерированных Delphi, объявление procedure SelectorClick(Sender: TObject) вставлено в текст программы вручную.

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

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


Информация о работе «Разработка тестового приложения Компоненты меню Delphi»
Раздел: Информатика, программирование
Количество знаков с пробелами: 43216
Количество таблиц: 0
Количество изображений: 6

Похожие работы

Скачать
114209
7
25

... и дальнейшего использования «Автоматизированной системы агентства недвижимости» на предприятии. 1.4      Постановка цели и подзадач автоматизации. Критерии достижения цели 1.4.1               Экономическая сущность задачи Экономической сущностью задачи автоматизации риэлтерской деятельности агентства недвижимости «Елена» является повышение результативности труда посредством автоматизации ...

Скачать
73273
4
16

... выбрать имя в ListBox’e и нажать кнопку «OK», после чего выбранное имя автоматически отобразиться в окне получателя сообщения. Рис. 1.10. Выбор адресата получателя   Поиск компьютеров в локальной сети Приведём пример кода программы, реализующую поиск компьютеров в локальной сети Microsoft. procedure TForm4. Button1Click (Sender: TObject); var Q, BufferSize: DWord; R: THandle; Buf: ^ ...

Скачать
30480
4
10

... решения на каждый из вопросов, возможности пропустить некоторые вопросы, чтобы вернуться к ним и ответить на них в случае наличия времени и др. В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Delphi 7. Перечень ссылок 1.  Валентин Озеров «Советы по Delphi», 1999 2.  Зуев Е.А. Программирование на языке Turbo Pascal 6. 0,7.0. – М.: ...

Скачать
36935
4
14

... курс. - М.: Нолидж, 2000. 4.  Фаронов В.В. «DELPHI. Программирование на языке высокого уровня». – Питер, 2005. 5.  Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмические языки»– Северодонецк, 2005.   ПРИЛОЖЕНИЕ А Алгоритм программы Рисунок А.1 – Обработка событий главной формы программы Рисунок А.2 – ...

0 комментариев


Наверх