26 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать тест в delphi 7

ТЕСТ / №10 / Создание теста в Delphi

Caption заголовок группы

Items задание строк кнопок 

ItemIndex содержит номер выбранной строки (нумерация с 0), значение -1 означает что ни одна строка не выбрана!

Варианты ответов (список) создаем в свойстве Items (RadioGroup при этом выделен)

Тест состоит, например, из 5 форм. На каждой форме расположены вопрос, варианты ответов, кнопка (New – Form открытие новой формы, Shift + F12 перемещение между формами).

Процедура пишется на кнопку Далее. Во всей работе будет одна переменная i: integer; она глобальная. Описываем ее в месте, где:

i:integer; вписываем сами

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

Процедура на кнопку Далее:

If RadioGroup1.Itemindex=-1 then ShowMessage (‘Забыли ответить на вопрос!’)

Begin if RadioGroup1.Itemindex=2 then i:=i+1;

Открываем новую форму (New – Form) оформляем вопрос – ответы, кнопка Далее:

If RadioGroup1.Itemindex=-1 then ShowMessage (‘Забыли ответить на вопрос!’)

Beginif RadioGroup1.Itemindex=1 then i:=i+1;

Начиная со второго модуля (Unit2), добавляем слово Unit1 в то место, где идет перечисление: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Аналогичную работу проделываем с формой 3 и 4.

На форме 5 располагаем вопрос, варианты ответов, кнопку Готово и пишем процедуру на эту кнопку

If RadioGroup1.Itemindex=-1 then ShowMessage (‘Забыли ответить на вопрос!’)

Begin if RadioGroup1.Itemindex=3 then i:=i+1;

0,1,2: ShowMessage (‘Вы получили 2’);

3: ShowMessage (‘Вы получили 3’);

4: ShowMessage (‘Вы получили 4’);

5: ShowMessage (‘Вы получили 5’);

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

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

Глава 13

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

Читать еще:  Как сделать скриншот в инстаграме

Перед тем как разработать сам тест, разберем содержимое файла, в котором будут храниться вопросы и варианты ответов к ним. Это будет ini-файл следующей структуры:

num=количество вопросов в базе

0=0твет к первому вопросу

1=0твет ко второму вопросу

0=Неправильный вариант к первому вопросу

1= Неправильный вариант ко второму вопросу

0=Неправильный вариант к первому вопросу

1= Неправильный вариант ко второму вопросу

0=Неправильный вариант к первому вопросу

1=Неправильный вариант ко второму вопросу

В этом ini-файле шесть разделов: num, Q, A, W1, W2 и W3. Как вы понимаете, если кто-то заглянет в этот файл, то уже через несколько минут он будет знать правильные ответы на все вопросы. А если он этот файл подкорректирует, то и вовсе будет получать только правильные варианты ответов. Для того чтобы этого не случилось, мы будем шифровать нашу базу вопросов. Это можно сделать с помощью программы Блокнот-шифровальщик, рассмотренной в главе 7. Для шифрования выберем небольшое смещение, например, 101. После того как вы создали все вопросы и варианты ответов к ним, не забудьте указать количество вопросов в разделе num. После этого зашифруйте базу, используя смещение 101.

⊚ Пример зашифрованной базы вопросов/ответов можно найти на прилагаемом к книге компакт-диске в файле Chapter_13comp.ini.

Разработка формы

Создайте новый проект Delphi. Присвойте свойству Caption формы значение Tester, а свойству BorderStyle — bsNone. У верхнего края формы разместите компонент Label категории Standard, присвоив его свойству Caption значение Первый вопрос:.

Ниже разместите компонент Memo категории Standard, с помощью которого мы будем отображать текущий вопрос. Присвойте свойству Memo1.Readonly значение True, чтобы пользователь не мог изменить текст вопроса.

Под вопросом будут расположены варианты ответов. Разместите под компонентом Memo1 компонент RadioGroup (группа переключателей) категории Standard и присвойте его свойству Caption значение Варианты ответов:. Разместите на компоненте RadioGroup1 четыре компонента RadioButton (переключатели) категории Standard. Очистите для каждого из них свойство Caption, а свойству Name присвойте значения an1, an2, an3 и an4 соответственно.

Читать еще:  Как сделать прозрачные буквы в фотошопе

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

Таблица 13.1. Свойства компонента Label, отображающего результат теста

Создание тестов на Delphi. Часть 1

Сейчас подготовил серию уроков по созданию тестов на Delphi. Эта тема сейчас очень распространненая, так как много кто пишет курсовые по этим темам, дипломные и многое другое. Тех же самых сотрудников можно протестировать, так что эта тема очень распространненая. Предлагаю серию тестов с использованием файлов. Да с использованием БД — это хорошо, но если БД локальная, то дела все теже, что и с файлами. С БД я даже рассказывать не буду как делать, там вообще все просто, тем более я рассказал курс по работе с БД в Delphi. Так вот рассмотрим создание тестов используя два варианта. С использованием обычных файлов — dat, db или любой другой свой формат, а также с использованием ini-файлов. Скажу одно, что с использованием ini-файлов необходимо шифрование данных, я про него еще не рассказывал, но все как-нибудь доберусь. Шифрование нужно хотя бы для, того, чтобы пользователь, открыв файл не узнал правильный ответ, в dat-файле например, это можно кое-как скрыть и без шифрование, так что давайте попробуем для начала добавить данные в файл. То есть добавить (создать) наш тест. Для начала нам необходимо описать структуру, где будет храниться наш тест, а затем создать файл данной структуры.
Моя структура выглядит так

  • Name_v — вопрос
  • otv — ответ
  • count_v — количество вопросов
  • count_otv — количество ответов
  • pr_ot — правильные ответы
Читать еще:  Как сделать коробочку для подарка из бумаги

Далее мы описываем файл данной стуктуры, затем саму стуктуру и начинаем запись. Я про файлы не рассказывал (а надо было, займусь этим попозже), тут есть набор функций и процедур по работе с файлами. На событие формы — OnCreate мы создаем наш файл тестов

Функции и процедуры по работе с файлами я расскажу потом, а сейчас менее подробно. Например AssignFile – связывает файловую переменную с именем файла. Rewrite – создает новый файл, Reset – открывае уже существующий файл, Seek – устанавливает указатель в файле на нужную компоненты (она нам очень пригодится). Также на форму я установил следующие компоненты

  • TButton — 2 шт
  • TEdit — 2 шт
  • TCheckListBox
  • TGroupBox

То есть у нас будут сколько угодно вариантов ответа и сколько угодно правильных ответов. Далее на кнопку добавления ответов в TChecklistBox я написал следующий код.

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

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

Источники:

https://studfile.net/preview/5878363/
https://www.uhlib.ru/kompyutery_i_internet/delphi_uchimsja_na_primerah/p14.php
https://devdelphi.ru/?p=136

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:
Для любых предложений по сайту: [email protected]