Тестирующая программа по программированию в среде Delphi
Обзор существующих тестирующих программ. Ступени развития автоматизированных обучающих систем. Особенности использования тестов для диагностики уровня подготовленности. Написание исполняемого файла на языке программирования Delphi и реализация программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.06.2014 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВУЗ»
ИНСТИТУТ ПРИКЛАДНОЙ ИНФОРМАТИКИ, МАТЕМАТИКИ И ФИЗИКИ
КАФЕДРА ИНФОРМАТИКИ И ИТО
КУРСОВАЯ РАБОТА
по дисциплине "Высокоуровневые методы информатики и программирования"
Тема "Тестирующая программа по программированию в среде Delphi"
Разработал(а) студент(ка)
Руководитель
2013
Содержание
Введение
Раздел 1. Обзор предметной области. Постановка задачи
Раздел 2. Обзор существующих тестирующих программ и обоснование выбора темы. Тестирующая программа по языку программирования Delphi
Раздел 3. Проектирование системы. Используемые методы
Раздел 4. Реализация и тестирование системы
Заключение
Список литературы
Приложение
Введение
Оглядываясь назад, в эпоху становления средств вычислительной техники, можно условно выделить ступени развития автоматизированных обучающих систем.
Первые, самые ранние, представляли собой лишь электронные версии печатных изданий и содержали только текстовую информацию. Достоинством таких систем в сравнении с бумажными аналогами, по существу, являлась лишь интеграция информации.
Постепенно, с развитием вычислительной техники, их стали сменять системы, которыми можно было пользоваться и как справочниками, то есть поисковые системы. Далее арсенал автоматизированных обучающих систем пополняется статической графикой, компонентами мультимедиа (звук и видео), компьютерной анимацией.
Таким образом, системы развивались в области информационных баз знаний, поддерживающих уже не только текстовое, но и аудио - видеовоздействие на обучаемого.
Колоссальный скачок был сделан и в сфере развития систем контроля, ведь без них, по существу, обучающая система мало чем отличается от справочного пособия. Итак, средства контроля обеспечивают ввод ответа обучаемого, обработку полученной информации и выдачу управляющего воздействия (например, вы вводите ответ, а система одобряет или отвергает его).
Следуя дальше по ступеням интеллектуализации обучающих систем, можно заметить, как плавно механизмы контроля перетекают в механизмы анализа высказываний обучающегося. Отметим, однако, что не следует путать их с простым контролем как простой оценки единичного события с интегральным оцениванием, являющимся результатом анализа и систематизации множества разнородных ответов данных в разное время. Не вдаваясь в теорию обучения, давайте рассмотрим простой пример. Ведь чем по сути отличается средство для создания обучающего курса от средства для создания мультимедийных энциклопедий? Примерно тем же, чем учебник отличается от лектора, ведущего лекции в учебном заведении.
Ведь учебник дает ответы на конкретные вопросы, помогает решать конкретные задачи и позволяет контролировать себя, заглядывая на последнюю страничку и сверяя правильный ответ с полученным. А как быть тем, кто не знает, какой вопрос задать или не может правильно его сформулировать? В классических учебных заведениях для этого существует лектор, который заботливо проводит студента по коридору знаний, понимает, с чего начать, и по ответам студента, на основе собственного опыта, делает выводы об уровне знаний студента в целом (то есть дает ему интегральную оценку).
Иными словами, анализ высказываний обучающегося позволяет не только контролировать учебный процесс, но и определяет стратегию обучения в зависимости от предыстории ответов и исходя из определенного набора правил.
В свою очередь, из анализа высказываний обучаемого проистекает управляющее воздействие на него, которое в частном случае может быть и удаленным. Последний метод, который называется дистанционной формой обучения, в настоящее время находится в стадии становления. Вследствие данного обстоятельства в последнее время технологии автоматизированного обучения все больше тяготеют к Internet -технологиям.
Для начала давайте обозначим объект нашего исследования. Что же такое тест? Сегодня этот термин встречается довольно часто и в областях далеких от образования.
Тестирование (от слова test -- испытание, проверка). Тестирование применяется для определения соответствия предмета испытания заданным спецификациям. В задачи тестирования не входит определение причин несоответствия заданным требованиям. Тестирование - один из разделов диагностики. Тестирование применяется в технике, медицине, психиатрии, образовании для определения пригодности объекта тестирования для выполнения тех или иных функций. Качество тестирования и достоверность его результатов в значительной степени зависит от тестера.
Итак, можно определить тест, как стандартизированные, краткие, ограниченные во времени испытания, предназначенные для установления количественных и качественных индивидуальных различий.
В науке проводят существенные различия между простым переводом слова и смыслом понятия. Чаще всего мы встречаемся с упрощенным восприятием понятия "тест" как простой выбор одного ответа из нескольких предложенных к вопросу. Многочисленные примеры таких, казалось бы, "тестов" легко найти в газетно-журнальной периодике, в различных конкурсах и в многочисленных книжных публикациях под названием "Тесты". Но и это часто оказываются не тесты, а нечто внешне похожее на них. Обычно это сборники вопросов и задач, рассчитанных на выбор одного правильного ответа из числа предложенных. Они только по внешней видимости похожи на настоящий тест. Различия в понимании сущности тестов порождают различия в отношении к тестам. В наши дни существует много видов тестов, поэтому дать универсальное определение для всех этих видов вряд ли можно.
Традиционный тест представляет собой стандартизованный метод диагностики уровня и структуры подготовленности. В таком тесте все испытуемые отвечают на одни и те же задания, в одинаковое время, в одинаковых условиях и с одинаковыми правилами оценивания ответов. Главная цель применения традиционных тестов - установить уровень знаний. И на этой основе определить место (или рейтинг) каждого на заданном множестве тестируемых испытуемых. Для достижения этой цели можно создать бесчисленное количество тестов, и все они могут соответствовать достижению поставленной задаче.
И тогда возникает один из главных вопросов теории тестов - вопрос выбора наилучшего теста из практически неограниченного множества всех возможных тестов. Каждый тест может отличаться от других по числу заданий и другим характеристикам. С прагматической точки зрения выгодней делать тест, имеющий сравнительно меньшее число заданий, но обладающий большинством достоинств, присущих более длинным, как говорят в зарубежной теории, тестам. Понятие "длина теста" введено в начале XX века Ч. Спирманом и обозначает, на русском языке, количество заданий в тесте. Чем длиннее тест, тем больше в нем заданий. От числа заданий некоторым образом зависит точность педагогического измерения.
В тест стараются отобрать минимально достаточное количество заданий, которое позволяет сравнительно точно определить уровень и структуру подготовленности. Интерпретация результатов тестирования ведется преимущественно с опорой на среднюю арифметическую и на так называемые процентные нормы, показывающие, - сколько процентов испытуемых имеют тестовый результат худший, чем у любого другого испытуемого. Такая интерпретация тестовых результатов называется нормативно-ориентированной.
Раздел 1. Обзор предметной области. Постановка задачи
Необходимо создать тестирующую программу, которая будет проверять знания тестируемого человека. При этом должно быть не меньше восьми вопросов. В ходе тестирования будет видно количество заданных вопросов и количество не верных ответов. Вопросы будут выводиться в случайном порядке.
Примерная схема тестирующей программы, выполненная в программе Axure Pro.
Раздел 2. Обзор существующих тестирующих программ. Тестирующая программа по языку Delphi
Специфическая форма тестовых заданий отличается тем, что задания теста представляют собой не вопросы и не задачи, а задания, сформулированные в форме высказываний, истинных или ложных, в зависимости от ответов. Традиционные вопросы, напротив, истинными или ложными не бывают, а ответы на них нередко настолько неопределенны и многословны, что для выявления их правильности требуются заметные, в суммарном исчислении, затраты интеллектуальной энергии преподавателей. В этом смысле традиционные вопросы и ответы нетехнологичны, и потому их лучше не включать в тест.
Ответ на задание теста представляет собой краткое суждение, связанное по содержанию и по форме с содержанием задания.
Каждому заданию ставятся в соответствие ответы правильные и неправильные.
Критерии правильности заранее определяются авторами теста. Вероятность правильного ответа на любое задание зависит от соотношения уровня знаний испытуемого и уровня трудности задания.
Существует множество разнообразных программ, которые производят проверку знаний учащихся, по различны предметам обучения.
Все обучающие программы могу быть написаны на разны языках программирования: PHP, Python, Perl, Delphi, C++, С Sharp, Turbo Pascal и др.
Основная проблема всех существующих текстов - большой размер исполняемого файла, больше количество совершенно не нужных функций, не совместимость со старыми моделями компьютеров.
Например: Тестирующую программу по программированию на Delphi я реализую на языке объектного программирования Delphi. В среде Delphi существуют уже созданные формы процедур, функций и др.
Этот язык облегчает работу описания программ тем, что не нужно пописывать формы. Но, как и во всех других языках программирования, Delphi содержит свои недостатки.
Например: если программист укажет форму процедуры вручную, то компилятор её не увидит.
Для этого нужно в настройках отмечать, что указанную форму нужно прочитать.
В технической диагностике(цифровые устройства) применяются формализованные методы разработки минимальных, необходимых и достаточных тестов проверки работоспособности (соответствия спецификациям).
Недостатком формальных методов разработки тестов цифровых устройств является использование модели статических неисправностей (обрыв, короткое замыкание, и т.п.).
Раздел 3. Проектирование системы. Используемые методы
Использование процедур. Процедура - это независимая именованная часть программы, которую можно вызвать из любой части программы по имени для выполнения определённой в ней последовательности действий.
Выбор вариантов ответа реализован при помощи оператора case, в связи с тем, что при осуществлении проверки состоящей из множества условий (оператором if), допустим нам надо выполнить один из пяти или более операторов, получиться довольно громоздкая и не удобочитаемая запись.
Компонент Delphi Timer очень простой компонент, который не виден на экране, но, тем не менее, Timer Delphi выполняет очень важные функции в программе. Delphi Timer позволяет вводить необходимые задержки между выполнением тех или иных действий.
Delphi компонент Label предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы. Конечно, текст надписи, отображаемый компонентом Label можно изменить, но не непосредственно, а только программно.
Статический текст. Отличается от стандартного компонента Label наличием собственного Windows-окна, что позволяет обводить текст рамкой или выделять его в виде "вдавленной" части Формы.
Раздел 4. Реализация и тестирование системы
Спрос, как известно, рождает предложение. Современным компаниям требуется все больше специфических программных продуктов, позволяющих решать сложные и трудоемкие задачи, стоящие перед ними.
Многие программы создаются в Delphi - визуальной среде, где для программирования используется язык Object Pascal.
Тест «Программирование на Delphi» предназначен для определения уровня подготовки специалистов, осуществляющих программирование на языке Object Pascal в среде Delphi.
Тест позволяет оценить знания и навыки респондента по следующим направлениям:
1. Знание основ Object Pascal. Базовые знания синтаксиса и семантики языка, умение работать с простейшими конструкциями, типы данных, способы представления данных в памяти, принципы приведения типов, умение объявлять, реализовывать и вызывать процедуры и функции Object Pascal.
2. Знание принципов объектно-ориентированного программирования в Object Pascal: создание и уничтожение объектов, объявление классов, работа с объектами и т.д.
3. Организация кода Object Pascal. Умение модульно структурировать код программ.
4. Знания в области файлового ввода-вывода в Object Pascal.
Начинаем с создания нового проекта
Далее Delphi автоматически прописывает код формы.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
Кроме формы в нашем проекте будет 4 компонента Статический текст. Отличается от стандартного компонента Label наличием собственного Windows-окна, что позволяет обводить текст рамкой или выделять его в виде "вдавленной" части Формы.
St1: TStaticText;
St2: TStaticText;
St3: TStaticText;
St4: TStaticText;
Одна группа зависимых переключателей. Содержит специальные свойства для обслуживания нескольких связанных между собой зависимых переключателей.
Rg1: TRadioGroup;
Пять компонентов Метка. Используется для размещения не очень длинных сообщений в виде статического текста.
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Один компонент Таймер. Этот компонент служит для отсчёта интервалов реального времени. Имеет ограничение - не может обрабатывать интервалы менее 55 миллисекунд.
Timer1: TTimer;
Дальше определим переменные
var
Form1: TForm1;
n,osh,c:byte;
z:set of byte;
v,v1,v2,o,o1,o2,o3:string ;
pr: byte;
i,a,f:integer;
t,s:string;
Дальше следует раздел implementation, который начинается в процедуры, далее идет список вопросов с ответами к ним, выполненный с помощью оператора case.
Case n of
1:begin
v:=' Основа языка Delphi.';
o1:=' PHP';
o2:=' Python';
o3:=' Pascal';
pr:=3;
end;
2:begin
v:=' Какой из перечисленных типов является целочисленным';
o1:='Real';
o2:='String';
o3:='Integer';
pr:=3;
end;
3:begin
v:=' Целочисленное деление';
o1:=' DIV';
o2:=' MOD';
o3:=' XOR';
pr:=1;
end;
4:begin
v:=' Преобразование строки в целое число';
o1:=' CharToInt';
o2:=' StrToInt';
o3:=' IntToStr';
pr:=2;
end;
5:begin
v:=' Подпрограмма -- поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. ';
o1:=' Функция';
o2:=' Модуль';
o3:=' Процедура';
pr:=3;
end;
6:begin
v:=' Что делает процедура CloseFile(F)';
o1:=' Закрывает открытый файл';
o2:=' Закрывает открытое окно';
o3:=' Закрывает базу данных';
pr:=1;
end;
7:begin
v:=' Процедура изменения текущего каталога';
o1:=' ChDir ';
o2:=' PirDir';
o3:=' SelDir';
pr:=1;
end;
8:begin
v:=' Что создает компонет ScrollBox';
o1:=' Список множественного выбора';
o2:=' Панель с полосами прокрутки';
o3:=' Статический текст';
pr:=2;
end;
Далее следует вывод вопросов в случайном порядке, реальзиванный при помощи функции randomize.
Так выглядит программа в среде разработки:
procedure TForm1.FormShow(Sender: TObject);
begin
{Вывод первого кадра на экран}
i:=i+1;
str(i,t);
t:='Вопрос '+t;
st1.Caption:=t;
n:=random(k)+1;
z:=z+[n];
vopros;
st2.Caption:=v;
st3.Caption:=v1;
st4.Caption:=v2;
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;
Так выглядит готовая программа в запущенном виде:
Определяем верно ли пользователь ответил на вопрос, если да, то выводим "Правильно", если нет, то выводим "Ошибка".
procedure TForm1.Rg1Click(Sender: TObject);
begin
c:=rg1.ItemIndex+1;
if c=pr then
label1.caption:='Правильно'
else
begin osh:=osh+1;
label1.caption:='Ошибка'
end;
str(i,t);
label3.caption:=t;
str(osh,t);
label5.caption:=t;
rg1.ItemIndex:=-1;
timer1.Enabled:=true;
end;
В инспекторе объектов зададим следующие парамерты:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.caption:='';
timer1.Enabled:=false;
Выявление номера выбранного ответа и его проверка
rg1.ItemIndex:=-1;
i:=i+1;
if i>k then
begin
st1.Caption:='';
st2.caption:='';
st3.caption:='';
st4.caption:='';
rg1.Visible:=false;
Вывод результатоов
label1.Caption:='Ваши результаты:';
end
else
begin
st1.SetFocus;
str(i,t);
t:='Вопрос '+t;
st1.Caption:=t;
Выбор номера случайного неповторяющегося вопроса
repeat
n:=random(k)+1;
until not (n in z);
z:=z+[n];
vopros;
st2.Caption:='';
st3.Caption:='';
st4.Caption:='';
st2.Caption:=v;{вывод вопроса}
st3.Caption:=v1;
st4.Caption:=v2;
{вывод ответов на экран}
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
osh:=0;
randomize;
z:=[];
i:=0;
end;
end.
В связи с тем, что программа довольно простая, ни какого особенного тестирования провести не получится. В качестве теста, запустим программу в различных OC(win xp, vista, Win 7) В каждой из перечисленных операционных систем ошибок в работе выявлено не было.
Также ответив на вопросы с максимальной скоростью ни каких нареканий работа программы не вызвала.
Заключение
Работа сделана на языке программирования Object Pascal(Delphi). Object Pascal -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal -- динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией -- данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.
Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу -- там и буду лежать». Соответственно организуется и «многокучность».
Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.
Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.
· Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);
· Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET.
Delphi for .NET -- среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.
Первая версия полноценной среды разработки Delphi для .NET -- Delphi 8. Она позволяла писать приложения только для .NET. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0.
В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого направления. Планировалась продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор.
Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания -- CodeGear, которая будет финансово полностью подконтрольна Borland.
В августе 2006 года Borland выпустил облегченную версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и .NET), Turbo C#, Turbo C++.
В марте 2008 года было объявлено о прекращении развития этой линейки продуктов.
В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.
В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap
Работа выполнена в среде разработки Embarcadero RAD studio 2010.
Embarcadero Delphi, ранее Borland Delphi и CodeGear Delphi, -- интегрированная среда разработки ПО для Microsoft Windows, Mac OS, iOS и Android на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies. Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в четырёх редакциях: Starter, Professional, Enterprise и Architect. Координирующий офис Embarcadero ответственный за разработку Delphi находится в Торонто, тогда как сама разработка сконцентрирована главным образом в Румынии и России. В России Embarcadero представлена двумя офисами -- в Санкт-Петербурге (разработка) и в Москве (маркетинг)
В ходе выполнения проекта данной курсовой работы:
· были изучены методы применения записей в файл;
· разработан программный код тестирующей программы.
тестирующий программа delphi
Список литературы
1. Немнюгин С.А. Turbo Pascal. Программирование на языке высокого уровня: Учебник для ВУЗов
2. С.М.Окулов - 2 главы из школьного учебника по информатике;
3. C. А. Немнюгин - учебник TURBO PASCAL;
4. Delannoy C. Exercises en Turbo-Pascal, Eyrolles, Paris, 1990;
5. Епанешников А. Программирование в среде Turbo-Pascal 7.0 /
А. Епанешников, В. Епанешников. - М.: Диалог-МИФИ, 1993;
6. Фаронов В. В. Turbo Pascal 7.0. - М.: Надежда, 2000;
7.Лукин С.Н. Turbo Pascal 7.0. Самовчитель для початківців. - М.: "Діалог-МІФІ", 2002
8. . Пратт Т. Языки программирования: разработка и реализация;
9. Брукшир Дж. Гленн. Введение в компьютерные науки. - М.: Вильямс, 2001;
10. Miller L. N. Advanced programming: Design and Structure using Pascal, Addison-Wesley publishing Company, 1986гина, М. Г. Громада. - СПб.: Наука и техника, 2001;
11 Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989. Т. Пратт, М. Зелковиц. - СПб.: Питер, 2002;
12. Архангельский А. Я. Программирование в Delphi 7. - М.: Бином, 2005;
13. Самуйлов С. В. Разработка программ в среде Турбо-Паскаля 7.0. Лабораторный практикум. - Пенза, 1996;
14. Есипов А. С. Информатика. Задачник;
15 Марченко А. И. Программирование в среде Turbo Pascal 7.0 / Т. 1. - М.: Мир, 1982;
16.А.Ф. Верлань, Н.В. Апатова "Информатика 10-11кл.", Киев 2001
17. С. А. Немнюгин "Учебное пособие", Санкт -Петербург 2004
18Фаронов В. В., серия: "В подлиннике", 2004 г., Изд.: БХВ-Петербург
19. Коффман Э., серия: "Руководство разработчика.", 2002 г., Изд.: Диалектика: Киев;
20. Кассера Винфрид и Фолькер "Turbo Pascal 7.0" 2003 г., Изд.: ДиаСофт;
Приложение
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
St1: TStaticText;
St2: TStaticText;
St3: TStaticText;
St4: TStaticText;
Rg1: TRadioGroup;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Timer1: TTimer;
XPManifest1: TXPManifest;
procedure FormShow(Sender: TObject);
procedure Rg1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const k=8;
var
Form1: TForm1;
n,osh,c:byte;
z:set of byte;
v,v1,v2,o,o1,o2,o3:string ;
pr: byte;
i,a,f:integer;
t,s:string;
implementation
{$R *.dfm}
procedure vopros;
begin
{Список вопросов, вариантов ответов и номер правильного
ответа}
{Переменные v1 и v2 используются в случае длинного вопроса}
v:='';v1:=''; v2:='';
Case n of
1:begin
v:=' Основа языка Delphi.';
o1:=' PHP';
o2:=' Python';
o3:=' Pascal';
pr:=3;
end;
2:begin
v:=' Какой из перечисленных типов является целочисленным';
o1:='Real';
o2:='String';
o3:='Integer';
pr:=3;
end;
3:begin
v:=' Целочисленное деление';
o1:=' DIV';
o2:=' MOD';
o3:=' XOR';
pr:=1;
end;
4:begin
v:=' Преобразование строки в целое число';
o1:=' CharToInt';
o2:=' StrToInt';
o3:=' IntToStr';
pr:=2;
end;
5:begin
v:=' Подпрограмма -- поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. ';
o1:=' Функция';
o2:=' Модуль';
o3:=' Процедура';
pr:=3;
end;
6:begin
v:=' Что делает процедура CloseFile(F)';
o1:=' Закрывает открытый файл';
o2:=' Закрывает открытое окно';
o3:=' Закрывает базу данных';
pr:=1;
end;
7:begin
v:=' Процедура изменения текущего каталога';
o1:=' ChDir ';
o2:=' PirDir';
o3:=' SelDir';
pr:=1;
end;
8:begin
v:=' Что создает компонет ScrollBox';
o1:=' Список множественного выбора';
o2:=' Панель с полосами прокрутки';
o3:=' Статический текст';
pr:=2;
end;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
{Вывод первого кадра на экран}
i:=i+1;
str(i,t);
t:='Вопрос '+t;
st1.Caption:=t;
n:=random(k)+1;
z:=z+[n];
vopros;
st2.Caption:=v;
st3.Caption:=v1;
st4.Caption:=v2;
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;
procedure TForm1.Rg1Click(Sender: TObject);
begin
c:=rg1.ItemIndex+1;
if c=pr then
label1.caption:='Правильно'
else
begin osh:=osh+1;
label1.caption:='Ошибка'
end;
str(i,t);
label3.caption:=t;
str(osh,t);
label5.caption:=t;
rg1.ItemIndex:=-1;
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.caption:='';
timer1.Enabled:=false;
{Выявление номера выбранного ответа и его проверка}
rg1.ItemIndex:=-1;
i:=i+1;
if i>k then
begin
st1.Caption:='';
st2.caption:='';
st3.caption:='';
st4.caption:='';
rg1.Visible:=false;
label1.Caption:='Ваши результаты:';
end
else
begin
st1.SetFocus;
str(i,t);
t:='Вопрос '+t;
st1.Caption:=t;
{выбор номера случайного неповторяющегося вопроса}
repeat
n:=random(k)+1;
until not (n in z);
z:=z+[n];
vopros;
st2.Caption:='';
st3.Caption:='';
st4.Caption:='';
st2.Caption:=v;{вывод вопроса}
st3.Caption:=v1;
st4.Caption:=v2;
{вывод ответов на экран}
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
osh:=0;
randomize;
z:=[];
i:=0;
end;
end.
Размещено на Allbest.ru
Подобные документы
Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.
курсовая работа [521,0 K], добавлен 06.03.2016Написание программы, состоящей из двух модулей и реализующей простейший калькулятор. Разработка алгоритма решения задачи, реализация его в среде программирования Delphi. Список использованных переменных. Блок-схема программы, руководство пользователя.
курсовая работа [106,6 K], добавлен 16.06.2014Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.
контрольная работа [1,3 M], добавлен 19.06.2012Использование обучающих программ для формирования знаний и умений по информатике. Главное окно среды программирования Delphi, окна дерева объектов и кода программы. Требования к оборудованию и описание обучающей программы "Информатика в играх и загадках".
курсовая работа [1,3 M], добавлен 03.05.2012Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009