Результат проделанных действий ученика и оценкой его знаний.
Тест состоит из заданий, правил их применения, оценок за выполнение каждого задания, рекомендаций по интерпретации тестовых результатов.
Целостность означает взаимосвязь заданий, их принадлежность общему измеряемому фактору. Каждое задание теста выполняет отведенную ему роль и потому ни одно из них не может быть изъято из теста без потери качества измерения.
Структура теста образует способ связи заданий между собой. В основном, это так называемая факторная структура, в которой каждое задание связано с другими через общее содержание и общую часть вариации тестовых результатов [11].
Проявлению системного качества теста способствует и единая дисциплинарная общность заданий, реализующая идею измерения подготовленности испытуемых по одной какой-либо определенной учебной дисциплине. Совокупность таких заданий, отобранных в соответствии с требованиями теста, образует гомогенный тест, измеряющий одно какое-либо качество (свойство).
Время нередко называется в качестве другого системообразующего фактора. Действительно, одно из соображений, положенных в основу создания тестов, - иметь инструмент быстрого и относительно точного оценивания больших контингентов испытуемых.
Требование экономии времени становится естественным в массовых процессах, каковым и стало образование. Одно из актуальных направлений современной организации тестового контроля - это индивидуализация контроля, приводящая к значительной экономии времени тестирования. Контроль ведется с помощью заранее откалиброванных по трудности заданий.
Также от времени тестирования существенно зависит качество результатов. Каждый тест имеет оптимальное время тестирования, понижение или превышение которого снижает качественные показатели теста. Оптимальное время тестирования определяется эмпирически, по показателю дисперсии тестовых данных. Если по оси абсцисс отложить время тестирования, а по оси ординат - значение дисперсии тестовых результатов, получаемое после каждого пробного контроля, то, соединив точки, получим представление об изменении дисперсии, максимум значения последней укажет на оптимум времени, необходимого для тестового контроля [12].
Определенное содержание означает использованиев тесте только такого контрольного материала, который соответствует содержанию учебного курса, остальное содержание в тест не включается ни под каким предлогом.
Содержание теста существует, сохраняется и передается в одной из четырех основных форм заданий. Вне тестовых форм ни тест, ни его содержание не существуют. Внеучебное содержание в тест не включается.
Содержание теста проходит экспертизу у опытных педагогов, которые призваны дать ответ на главный вопрос - можно ли с помощью предложенных заданий корректно оценить содержание, уровень и структуру знаний у данного контингента испытуемых? При оценке содержания теста всегда возникают вопросы о цели теста, его содержания и качества.
Анализ содержания заданий, а следовательно, и теста в целом, позволяет определить знания, умения, навыки и представления, требуемые для правильного выполнения задания. При применении заданий в тестовой форме для аттестации выпускников образовательных учреждений важно иметь такие задания, которые позволяют делать вывод о минимально допустимой компетентности выпускников [13].
Область применения программного продукта имеет обширный спектр, как в старших классах, так и на первых курсах колледжей, вузов и университетов. Программный продукт можно использовать на домашнем компьютере для самостоятельного тестирования ученика на дому.
2.2 Описание применение идентификаторов
Для обозначения меток, констант, переменных, процедур и функций, определенных самим программистом, применяются пользовательские идентификаторы. При этом идентификаторы в программе должны быть уникальными, т.е. в каждом блоке программы один идентификатор не может использоваться для обозначения более чем одной переменной или постоянной величины, и т.д.
Идентификаторы - это неделимые последовательности символов алфавита образуют слова (идентификаторы). Идентификатор начинается с буквы и не должен содержать пробелов. После первого символа допускаются буквы и цифры [14].
При написании идентификаторов могут использоваться как прописные, так и строчные буквы (между ними не делается различий). Длина идентификатора может быть любой, но значимы только первые 255 символов (вполне достаточный предел, не так ли).
Все идентификаторы подразделяются на зарезервированные слова, стандартные директивы, стандартные идентификаторы и идентификаторы программиста.
Зарезервированные (ключевые) слова составляют основу языка Delphi, любое их искажение вызовет ошибку компиляции. Далее перечислены несколько примеров зарезервированных слов: and, as, asm, array, begin, case, class, const, var, while, with, xor [15].
Ниже представлена таблица 2.2.1 с описанием, применением идентификаторов.
Таблица 2.2.1 - Описание, применения идентификаторов и переменных
ИдентификаторОписаниеmassМассив типа integer, выполняет функцию случайного выбора вопросаAМассив типа integerI, RПеременные массива ASПеременная присваивающая значения массива АcenaИспользуется в качестве счетчика оценки за количество правильных ответовRBПеременная типа TRadioButton. Выполняет проверку нажатия на компонент RadioButtonkolИспользуется для определения порядкового номера вопросаsecПеременная используется в качестве счетчика секундminПеременная используется в качестве счетчика минутыProcedureFillArrayОпределяет массив вопросов для случайной загрузки их на формуProcedureTForm2. VoprosЗагружает ответы на формуprocedure TForm2. Timer1TimerСчитает время с начала прохождения тестаprocedure TForm2. Button2ClickЗагружает вопросы на формуprocedure TForm2. Button1ClickПроцедурапереходаповопросамисчетчикабаллов, вслучаееслиответнавопросневыбран товыводитсообщениеобэтом.procedure TForm2. Button2ClickЗагружает вопросы на формуprocedure TForm2. FormShowПри открытии формы запускает таймерprocedure TForm2. Timer1TimerСчитает время с начала прохождения тестаprocedure TForm1. BitBtn1Click procedure TForm1.J1Click procedure TForm2. BitBtn1Click procedure TForm5. BitBtn1ClickПроцедуры открытия другой формы и закрытия предыдущейprocedure TForm3. FormCreateПрисваивает значение 0 идентификаторам min, sec.procedure TForm1. BitBtn3Click procedure TForm5. BitBtn2ClickПроцедуры выхода из приложенияprocedure TForm4. SpeedButton1ClickЗакрывает формуprocedure TForm5. FormShowПри открытии формы присваивает lable.caption информацию о прохождении тестирования
2.3 Этапы разработки программного продукта
В данной программе была создана начальная форма, на которой располагались кнопки для начала тестирования, для вызова справки и для выхода из приложения. На ней было размещены компонент «MainMenu» и кнопки «Начать», «О программе», «Выход». Изображение получившейся формы изображено на Рисунке 2.3.1.
Далее была создана следующая форма «Form2», а на форме «Form1» на кнопке «Начать» был прописан код открытия второй формы, и строка скрывающая первую форму.
begin.show;.visible:=False;;
Рисунок 2.3.1 - Главная форма
На второй форме были размещены 2 компонента «Edit», «GroupBox», 5 компонентов «RadioButton», 2 компонента «Label» и кнопка «BitBtn». Вторая форма изображено на рисунке 2.3.2.
Рисунок 2.3.2 - Вторая форма
На кнопку «Начать тестирование» был прописан код перехода к «Form3».
begin.show;. Button2Click(Sender);. Visible:=False;;
Далее была создана «Form3». На третьей форме были размещены компоненты «MainMenu», «DBText», «Timer», 6 компонентов «Label» и «Button1», на компонент «GroupBox» были помещены 5 «RadioButton» и «Button2». Третья форма изображена на рисунке 2.3.3.
На компоненте «Button1» был прописан код для перехода к следующему вопросу с ответом, счетчик баллов и строка вывода сообщения о не выборе ответа на вопрос.
В обработчике сбытый «OnTimer» был прописан код счетчика времени. А в процедуре «FormShow» был прописан код запуска таймера.
begin
Sec:=Sec+1;
IfSec = 60 Then:=Min+1;:=0;;Sec < 10 Then. Label5. Caption:='0'+IntToStr(Sec). Label5. Caption:=IntToStr(Sec);Min < 10 Then. Label4. Caption:='0'+IntToStr(Min). Label4. Caption:=IntToStr(Min);;
Рисунок2.3.3 - Макет формы
Далее была создана «Form4», в которой был описан справочный материал о программе и об авторе. На «Form1» на кнопке «О программе» был прописан код перехода с «Form1» на «Form4». Четвертая форма изображено на рисунке 2.3.4.
begin
Form4.show;
Рисунок 2.3.4 - Справка
Далее была создана база данных в программе Access, в ней было создано 2 таблицы, эти таблицы были заполнены вопросами и ответами. Изображение базы данных можно посмотреть на рисунке 2.3.5.
Рисунок 2.3.5 - База данных Access
Далее был создан «DataModule». Создаётся он следующим образом: File-New-DataModule. На нем были размещены компоненты «ADOConnection», «ADOTable», «DataSource». Далее компоненты были соединены с ячейками таблиц в инспекторе объектов. Изображение «DataModule» можно посмотреть на рисунке 2.3.6.
Рисунок 2.3.6 - DataModule программы
Далее была создана процедура «Vopros» которая выводила ответы на форму из Базы данных Access.
После чего на третьей форме, в обработчике событий кнопки «Button2» был прописан код о выводе вопроса на форму в случайном порядке.
Далее была создана «Form5», на которой были расположены 4 компонента «label» и 2 компонента «Button». Была создана процедура «FormShow» в которой был прописан код вывода результатов на компоненты «label», на кнопках «Начать заново» и «Закончить тестирование» был прописан код открытия первой формы и закрытия программы соответственно. Пятая форма изображена на рисунке 2.3.7.
Рисунок 2.3.7 - Результат
Далее в программу были добавлены сторонние компоненты для Delphi7, взятые с сайта www.alphaskins.com. AlphaControls - это набор стандартных и некоторых уникальных компонентов, поддерживающих скины (AlphaSkins). Все элементы скина могут иметь свои собственные свойства для рисования продвинутого градиента, реалистичных рамок, полупрозрачности и размытых теней.
После скачивания, в окне Delphi, во вкладке меню Tools (Рисунок 2.3.8) выбираем опцию Environment options, в ней переходим во вкладку Library.
Рисунок 2.3.8-Предварительный этап в установке сторонних компонентов
После чего рядом с пунктом Librarypath (Рисунок 2.3.9) кликаем на кнопку с троеточием, затем в открывшемся окне кликаем по кнопке с троеточием и указываем путь к нужным нам библиотекам, добавляем их в текущий список.
Рисунок 2.3.9 - Добавление сторонних библиотек для установки новых компонентов
После чего выходим из Delphi 7, и в выбранных библиотеках поочерёдно открываем файлы acntd7_r.dpk, acntd7.dpk, AlphaDB7.dpk. Открывается окно для установки компонентов, в нем кликаемInstall, по завершению установки компонентов нажимаем Ok (Рисунок 2.3.10).
Рисунок 2.3.10 - Окно установки компонентов
3. Организационная часть
.1 Системные требование
Системные требования - это описание примерных характеристик, которым должен соответствовать компьютер для того, чтобы на нём могло использоваться какое-либо определённое программное обеспечение. Эти характеристики могут описывать требования как к аппаратному обеспечению (тип и частота процессора, объём оперативной памяти, объём жёсткого диска), так и к программному окружению (операционная система, наличие установленных системных компонентов и сервисов и т.п.). Обычно такие требования составляются производителем или автором ПО.
Для некоторого ПО различают минимальные и рекомендуемые системные требования:
1.Минимальные системные требования - это набор условий, необходимых для возможности запуска и работы программного продукта. Однако, наличие минимальных системных требований не отменяет возможность запуска ПО на компьютерах, которые по характеристикам слабее минимальных.
2.Рекомендуемые системные требования - набор характеристик, подразумевающих оптимальную работу большей части возможностей продукта. Однако, даже если компьютер и подходит под рекомендуемые системные требования, это не значит высокой производительности ПО, например, в некоторых играх невозможно играть на максимальных настройках графики [16].
Ниже приведена таблица 3.1.1 с минимальными системными требованиями.
Таблица 3.1.1 - Минимальные системные требования
ОСWindowsПроцессорPentium IIIОЗУ64 MbСвободное место на диске100 MbВидео-карта16Mb
3.2 Инструкция пользователю
В первую очередь нужно открыть программу, кликнув мышью на значке программы. Ярлык программы изображен на рисунке 3.2.1.
Рисунок 3.2.1 - Ярлык программы
Перед вами откроется главное меню программы. Главное окно изображено на рисунке 3.2.2.
Рисунок 3.2.2 - Главное окно программы
Для начала тестирования надо кликнуть на кнопку «Начать», для просмотра справки нужно кликнуть по кнопке» О программе» перед вами откроется окно справки. Справка изображена на рисунке 3.2.3, а для выхода из приложения нужно кликнуть по кнопке «Выход».
Рисунок 3.2.3 - Окно справки
После нажатия на кнопку «Начать» Откроется окно с выбором варианта теста. Окно с регистрацией изображено на рисунке 3.2.4.
Рисунок 3.2.4 - Окно заполнения своих данных и выбора варианта
Далее следует заполнить поля ввода Ф.И.О. и группы, затем выбрать вариант кликнув на один и пять доступных, после чего следует кликнуть по кнопке «Начать тестирование», после чего откроется окно теста. Тест изображен на рисунке 3.2.5.
Рисунок 3.2.5 - Окно тестирования
Далее нужно отвечать на вопросы кликая на выбранный ответ, после чего на кнопку «Далее».Для преждевременно выхода из теста нужно кликнуть на кнопку «Закончить тестирование». После того как тестируемый ответит на последний вопрос откроется окно результата. Окно результата изображено на рисунке 3.2.6.
Рисунок 3.2.6 - Окно вывода результата
В окне результата будут изображены результаты тестирования. Для того чтобы начать тестирование заново нужно кликнуть на кнопку «Начать заново» вы вернётесь в главное меню, а для выхода из программы следует нажать кнопку «Закончить тестирование».
Заключение
Тесты, как одна из форм контроля знаний, умений и навыков учащихся, применяются преподавателями на уроках и по текущим проблемам, и при проведении промежуточной проверки. При выполнении этого курсового проекта были разобраны понятия тестирующая программа, виды и критерии тестов.
В настоящее время в нашу жизнь широко внедряются информационные технологии. На сегодняшний день, наверное, не осталось такой области, где бы они ни применялись. Данная программа может применяться для оценки уровня знаний в школах, ВУЗах, техникумах или для оценки собственных познаний подисциплине «История мира». Её пользовательский интерфейс делает её простой, понятной и доступной.
Целью курсовой работы было создание тестирующей программы по дисциплине «История мира». В процессе создания программы были изучены теоретические аспекты данной проблемы, проводился поиск подобных программ.
Темой данной курсовой работы является создание автоматизированной системы контроля знаний по дисциплине «История мира».
Благодаря этой работепреподавателю будет легче увидеть, насколько хорошо ученики усвоили материал, а так же, более не понадобитсятратить временя на проверку правильности заполнения бланков, вместо этого программа, созданная в ходе курсовой работы выведет количество баллов, оценку и время прохождения теста.
К плюсам тестирования можно отнести объективность оценивания, а, следовательно, и равность всех студентов при прохождении тестовых билетов, так как все они получают одинаковые задания (в то же время и в том же месте) и имеют определенное количество времени на выполнение этого же задания. К положительным моментам тестирования можно отнести еще несколько аспектов, одним из которых является возможность охвата всех тем определенной дисциплины, в то же время, когда при устном экзамене преподаватель не может уделить одному студенту такое огромное количество времени для проверки его знаний. Как правило, при устном экзамене у преподавателя есть возможность задать вопрос студенту, максимум, по трем темам. Следующим плюсом тестирования является более адекватная шкала оценивания знаний. Например, если же тестовый билет состоит из пятнадцати вопросов, то максимальное количество балов, которое студент может получить при правильных ответах - 15. Если же будут допущены им ошибки, то будет видно, сколько ошибок он допустил и сразу же сориентироваться, насколько широкий уровень знаний по данной дисциплине у студента.
К недостаткам такой системы контроля можно отнести трудоемкость составления таких тестов преподавателем. Так как количество тем по определенной дисциплине может варьироваться от нескольких штук до нескольких десятков, то можно понять, что это, достаточно, трудоемкий процесс и требует повышенной внимательности (если же преподаватель допустит ошибку при составлении ключей к тестам, студенты могут быть оценены необъективно). Еще одним минусом тестирования остается тот факт, что на определенный вопрос в билете приводится перечень возможных ответов, из которых нужно выбрать один, или же два правильных. Иногда студентам удается «наугад» проставить правильные варианты ответов. Таким образом, некоторые студенты могут получить незаслуженную оценку… А в прочем, если же студент угадывает варианты ответов, то он, наверняка, не сможет угадать все оставшиеся ответы на перечисленные в билете вопросы.
В ходе выполнения данной курсовой работы была разработана программа для тестирования студентов по дисциплине «История мира» с графическим интерфейсом. База содержит 5 вариантовпо 30 вопросов, по дисциплине «История мира». Программа может быть использована в образовательных целях.
Эта программа разработана для того, чтобы студенты могли проверить свои знания по дисциплине «История мира».
В качестве дальнейшего развития возможна доработка программы с целью поддержки множества дисциплин, поддержкой текстового ввода в качестве ответа (без указания альтернатив), организации таймера и ограничения времени решения на каждый из вопросов, возможности пропустить некоторые вопросы, чтобы вернуться к ним и ответить на них в случае наличия времени и др.
В перспективах развития этой темы можно реализовать кроссплатформенную систему, допуск к тестированию только с помощью аутентификации - ввод логина и пароля, отсутствие подключения к Интернету на компьютерах для тестирования, сохранение результатов тестирования в отдельном файле.
При разработке программного продукта использовалась объектно-ориентированная технология, как наиболее подходящая. Использование среды разработки Delphi при программной реализации, позволило создать качественное современное программное обеспечение, обладающее высокой скоростью работы, удовлетворяющее всем уровням требований предъявляемых к интерфейсу пользователя, обеспечивающее эффективность и гибкость работы с данными. В процессе работы над курсовой работой были изучены новые компоненты, благодаря которым программа стала выгладить лучше.
В заключении можно сказать, что данный программный продукт (авторизированная система контроля знаний) является законченной, полнофункциональной программой.
Литература
1.Непейвода Н.Н., Скопин И.Н. Основания программирования-Институт компьютерных исследований, 2003.
2.Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение - Питер, 2001.
3.Окулов С. Основы программирования - Бином. Лаборатория знаний, 2002.
4.ГофманВ.Э., ХомоненкоА.Д. Delphi. Быстрый старт. - СПб.: БХВ-Петербург, 2002.
5.Митчелл К. Керман Программирование и отладка в Delphi: Учебный курс: М.; СПб.; Киев, 2003.
6.Бондаренко М.Ф., Качко Е.Г. Операционные системы - Компания СМИТ, 2006.
7.Леонтьев В.П. Windows XP - ОЛМА Медиа Групп, 2007.
8.Степаненко О.С. Установка и настройка Windows XP - Вильямс, 2005.
9.Карп Дэвид Хитрости Windows 7. Для профессионалов - Питер, 2011.
10.ЧекмаревА. Н. Microsoft Windows 7. Руководство администратора - MicrosoftWinБХВ-Петербург, 2010.
11.Аванесов В.С. Композиция тестовых заданий. - М., Центр тестирования, 2002.
12.Кабанова Т.А., Новиков В.А. Тестирование в современном образовании. Уч. Пособие. - М.: Высшая школа, 2010.
13.Челышкова М.Б. Теория и практика конструирования педагогических тестов. Уч. Пособие. - М.: Логос, 2002.
14.Журавлева Т.Ю. Системное и прикладное программное обеспечение: Учебное пособие - Издательство Московского государственного открытого университета, 2010.
15.Зинкевич В.П. Вычислительная техника и программирование: учебное пособие - Издательство Московского государственного открытого университета, 2011.
16.Карл И. Вигерс Разработка требований к программному обеспечению - Русская Редакция, 2004.
unit Unit1;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, Menus;
= class(TForm): TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;BitBtn1Click (Sender: TObject);BitBtn3Click (Sender: TObject);J1Click (Sender: TObject);
{Private declarations}
{Public declarations};
: TForm1;
uses Unit2, Unit4, Unit5;
TForm1. BitBtn1Click (Sender: TObject);.show;.visible:=False;;
TForm1. BitBtn3Click (Sender: TObject);;;
TForm1.J1Click (Sender: TObject);.show;;
.
Unit2;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DBCtrls, ExtCtrls, Menus;
= class(TForm): TDBText;: TGroupBox;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TButton;: TButton;: TRadioButton;: TLabel;: TLabel;: TTimer;: TLabel;: TLabel;: TLabel;: TMainMenu;: TMenuItem;: TLabel;: TBevel;Button2Click (Sender: TObject);Button1Click (Sender: TObject);(Sender: TObject);Timer1Timer (Sender: TObject);(Sender: TObject);
(nomer:integer);
{Public declarations};: TForm3;: array of integer;:string;: Integer;: Integer;
Unit3, Unit1, Unit4, Unit6;
(var A: array of Integer);, S, R: Integer;I:= 0 to High(A) do[I]:= I;:= High(A) downto 0 do:= Random(I);:= A[R];[R]:= A[I];[I]:= S;;;
TForm3. Vopros (nomer:integer);form2. RadioButton1. Checked then. Vopros. Locate ('Номер', mass[nomer], []);. Variant. First;. Caption:=DataModule3. Variant. FieldValues['Ответ'];DataModule3. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton1. Tag:=0;
. Variant. Next;. Caption:=DataModule3. Variant. FieldValues['Ответ'];DataModule3. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton2. Tag:=0;
. Variant. Next;. Caption:=DataModule3. Variant. FieldValues['Ответ'];DataModule3. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton3. Tag:=0;
. Variant. Next;. Caption:=DataModule3. Variant. FieldValues['Ответ'];DataModule3. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton4. Tag:=0;
. Variant. Next;. Caption:=DataModule3. Variant. FieldValues['Ответ'];DataModule3. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton5. Tag:=0;
. Caption:=inttostr (strtoint(Label2. Caption)+1);;
form2. RadioButton2. Checked then. Vopros. Locate ('Номер', mass[nomer], []);. Variant. First;. Caption:=DataModule7. Variant. FieldValues['Ответ'];DataModule7. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton1. Tag:=0;
. Variant. Next;. Caption:=DataModule7. Variant. FieldValues['Ответ'];DataModule7. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton2. Tag:=0;
. Variant. Next;. Caption:=DataModule7. Variant. FieldValues['Ответ'];DataModule7. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton3. Tag:=0;
. Variant. Next;. Caption:=DataModule7. Variant. FieldValues['Ответ'];DataModule7. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton4. Tag:=0;
. Variant. Next;. Caption:=DataModule7. Variant. FieldValues['Ответ'];DataModule7. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton5. Tag:=0;
. Caption:=inttostr (strtoint(Label2. Caption)+1);;
form2. RadioButton3. Checked then. Vopros. Locate ('Номер', mass[nomer], []);. Variant. First;. Caption:=DataModule8. Variant. FieldValues['Ответ'];DataModule8. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton1. Tag:=0;
. Variant. Next;. Caption:=DataModule8. Variant. FieldValues['Ответ'];DataModule8. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton2. Tag:=0;
. Variant. Next;. Caption:=DataModule8. Variant. FieldValues['Ответ'];DataModule8. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton3. Tag:=0;
. Variant. Next;. Caption:=DataModule8. Variant. FieldValues['Ответ'];DataModule8. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton4. Tag:=0;
. Variant. Next;. Caption:=DataModule8. Variant. FieldValues['Ответ'];DataModule8. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton5. Tag:=0;
. Caption:=inttostr (strtoint(Label2. Caption)+1);;
if form2. RadioButton4. Checked then. Vopros. Locate ('Номер', mass[nomer], []);. Variant. First;. Caption:=DataModule9. Variant. FieldValues['Ответ'];DataModule9. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton1. Tag:=0;
. Variant. Next;. Caption:=DataModule9. Variant. FieldValues['Ответ'];DataModule9. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton2. Tag:=0;
. Variant. Next;. Caption:=DataModule9. Variant. FieldValues['Ответ'];DataModule9. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton3. Tag:=0;
. Variant. Next;. Caption:=DataModule9. Variant. FieldValues['Ответ'];DataModule9. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton4. Tag:=0;
. Variant. Next;. Caption:=DataModule9. Variant. FieldValues['Ответ'];DataModule9. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton5. Tag:=0;
. Caption:=inttostr (strtoint(Label2. Caption)+1);;form2. RadioButton5. Checked then. Vopros. Locate ('Номер', mass[nomer], []);. Variant. First;. Caption:=DataModule10. Variant. FieldValues['Ответ'];DataModule10. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton1. Tag:=0;
. Variant. Next;. Caption:=DataModule10. Variant. FieldValues['Ответ'];DataModule10. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton2. Tag:=0;
. Variant. Next;. Caption:=DataModule10. Variant. FieldValues['Ответ'];DataModule10. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton3. Tag:=0;
. Variant. Next;. Caption:=DataModule10. Variant. FieldValues['Ответ'];DataModule10. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton4. Tag:=0;
. Variant. Next;. Caption:=DataModule10. Variant. FieldValues['Ответ'];DataModule10. Variant. FieldValues['Правильный']=true then. Tag:=1 else RadioButton5. Tag:=0;
. Caption:=inttostr (strtoint(Label2. Caption)+1);;;
TForm3. Button1Click (Sender: TObject);i:integer;:TRadioButton;:string;((RadioButton1. Checked=true) or
(RadioButton2. Checked=true) or
(RadioButton3. Checked=true) or
(RadioButton4. Checked=true) or
(RadioButton5. Checked=true)) then
i:= 0 to GroupBox1. ControlCount-1 do:=TRadioButton (GroupBox1. Controls[i]);RB. Checked=true then. Caption:=inttostr (strtoint(Label1. Caption)+RB. Tag);;
strtoint (Label2. Caption)<30 then(strtoint(Label2. Caption));. Checked:=false;. Checked:=false;. Checked:=false;. Checked:=false;. Checked:=false;. Caption:='Тестирование. Вопрос '+inttostr (strtoint(Label2. Caption))+' из 30';elsestrtoint (Label1. Caption)>26 then:='5' elsestrtoint (Label1. Caption)>21 then:='4' elsestrtoint (Label1. Caption)>17 then:='3' else:='2';
.show;. Close;. Caption:='0';. Caption:='0';. Checked:=false;. Checked:=false;. Checked:=false;. Checked:=false;. Checked:=false;;else ('Вы не выбрали вариант ответа!');
end;
TForm3. Button2Click (Sender: TObject);i, kol:integer;form2. RadioButton1. Checked theni:=1 to DataModule3. Vopros. RecordCount do. Vopros. Edit;. Vopros. FieldValues['Номер']:=i;. Vopros. Post;. Vopros. Next;;. Vopros. Last;:=DataModule3. Vopros. FieldValues['id'];;
form2. RadioButton2. Checked theni:=1 to DataModule7. Vopros. RecordCount do. Vopros. Edit;. Vopros. FieldValues['Номер']:=i;. Vopros. Post;. Vopros. Next;;. Vopros. Last;:=DataModule7. Vopros. FieldValues['id'];;
form2. RadioButton3. Checked theni:=1 to DataModule8. Vopros. RecordCount do. Vopros. Edit;. Vopros. FieldValues['Номер']:=i;. Vopros. Post;. Vopros. Next;;. Vopros. Last;:=DataModule8. Vopros. FieldValues['id'];;
form2. RadioButton4. Checked theni:=1 to DataModule9. Vopros. RecordCount do. Vopros. Edit;. Vopros. FieldValues['Номер']:=i;. Vopros. Post;. Vopros. Next;;. Vopros. Last;:=DataModule9. Vopros. FieldValues['id'];;
form2. RadioButton5. Checked theni:=1 to DataModule10. Vopros. RecordCount do. Vopros. Edit;. Vopros. FieldValues['Номер']:=i;. Vopros. Post;. Vopros. Next;;. Vopros. Last;:=DataModule10. Vopros. FieldValues['id'];;;(mass, kol);(mass);(strtoint(Label2. Caption));
Form2. Caption:='Тестирование. Вопрос 1 из 30';
end;
TForm3. FormShow (Sender: TObject);Form2. RadioButton1. Checked then. DataSource:=datamodule3. Vopros_DS;Form2. RadioButton2. Checked then. DataSource:=datamodule7. Vopros_DS;Form2. RadioButton3. Checked then. DataSource:=datamodule8. Vopros_DS;Form2. RadioButton4. Checked then. DataSource:=datamodule9. Vopros_DS;Form2. RadioButton5. Checked then. DataSource:=DataModule10. Vopros_DS;:=0;:=0;. Enabled:= true;. Interval:=1000;;
TForm3. FormCreate (Sender: TObject);:=0;:=0;;
TForm3. Timer1Timer (Sender: TObject);:=Sec+1;Sec = 60 Then:=Min+1;:=0;;Sec < 10 Then. Label5. Caption:='0'+IntToStr(Sec). Label5. Caption:=IntToStr(Sec);Min < 10 Then. Label4. Caption:='0'+IntToStr(Min). Label4. Caption:=IntToStr(Min);;
TForm3.N1Click (Sender: TObject);.show;. Close;;
.
unit Unit3;
, Classes, DB, ADODB;
{Private declarations}
{Public declarations};
: TDataModule3;
implementation
.
Unit4;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons;
= class(TForm): TLabel;: TLabel;: TEdit;: TEdit;: TGroupBox;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TBitBtn;BitBtn1Click (Sender: TObject);
{Private declarations}
{Public declarations};
: TForm2;
Unit2;
TForm2. BitBtn1Click (Sender: TObject);.show;. Button2Click(Sender);. Visible:=False;;TForm2. Timer1Timer (Sender: TObject);((RadioButton1. Checked=true) or
(RadioButton2. Checked=true) or
(RadioButton3. Checked=true) or
(RadioButton4. Checked=true) or
(RadioButton5. Checked=true)) then. Enabled:=True;;.
Unit5;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons;= class(TForm): TLabel;: TLabel;: TLabel;: TSpeedButton;SpeedButton1Click (Sender: TObject);
{Private declarations}
{Public declarations};: TForm4;TForm4. SpeedButton1Click (Sender: TObject);. Hide;;.
Unit6;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls;= class(TForm): TBevel;: TBitBtn;: TBitBtn;: TLabel;: TLabel;: TLabel;: TLabel;(Sender: TObject);BitBtn1Click (Sender: TObject);BitBtn2Click (Sender: TObject);
{Private declarations}
{Public declarations};: TForm5;:string;Unit2, Unit1, Unit4;TForm5. FormShow (Sender: TObject);(Form3. Label1. Caption)>26 then:='5' else(Form3. Label1. Caption)>21 then:='4' else(Form3. Label1. Caption)>17 then:='3' else:='2';. Caption:= ('Набранобаллов '+form3. Label1. Caption+'.'+#13+
'Ваша оценка: ' + cena + '!');. Caption:= 'Тестпрошелстудент: ' + Form2. Edit1. Text;. Caption:= 'Обучающийсягруппы: ' + Form2. Edit2. Text;. Caption:= 'Времяпрохождения: ' + Form3. Label4. Caption + 'мин.' +' ' +. Label5. Caption + 'сек.';TForm5. BitBtn1Click (Sender: TObject);. Show;.hide;;TForm5. BitBtn2Click (Sender: TObject);;;.