русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тест «Знаете ли вы загадки?»


Дата добавления: 2014-11-27; просмотров: 628; Нарушение авторских прав


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

Реализация. Напишите несколько загадок в текстовом файле, например, как было показано на рис. 42. Напишите соответствующие отгадки (файл ‘Отгадки. txt’ на рис. 43). В этом проекте на каждую загадку приведено три отгадки, из которых одна верная.

 

Рис. 43. Файл с отгадками

 

Положите на форму два компонента TListBox, надписи TLabel для подсказок, TEdit для вывода отгадок к выбранной загадке и три компонента TRadioButton. При создании формы загрузите файлы
с загадками в ListBox1, это видимый список, а файл с отгадками загрузите в невидимый список ListBox2.

Опишите глобальные переменные:

 

const n=10;

type mas=array[0..n-1]of integer;

var itog : integer; // Число правильных угадываний

nomer : integer; // Номер выбранной загадки

otvet : mas; // Массив для хранения правильных отгадок

 

Обработчик события OnCreate формы имеет следующий код:

 

procedure TForm2.FormCreate(Sender: TObject);

var f:textfile;

k:integer;

begin

ListBox1.Items.LoadFromFile('Загадки.txt');

ListBox2.Items.LoadFromFile('Отгадки.txt');

Listbox2.Visible:=false;

nomer:=0;

itog:=0;

assignfile(f,'Прав_отгадки.txt');

reset(f);

k:=0;

while (not eof(f)) and (k<n) do

begin

readln(f,otvet[k]);

k:=k+1;

end;

closefile(f);

end;

 

Чтобы выбрать загадку, кликнете мышью на ней. Событие
OnMouseDown на списке ListBox1 имеет такой код:

 

procedure TForm2.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var i:integer;

begin

for i:=0 to ListBox1.Items.Count-1 do

begin // Ищем выделенную строку



if Listbox1.Selected[i] then

begin

Label3.Caption:='';

RadioButton1.Checked:=false;

RadioButton2.Checked:=false;

RadioButton3.Checked:=false;

nomer:=Listbox1.ItemIndex;

// Соответствующая строка с отгадками копируется в окно редактора

Edit1.Text:=Listbox2.Items[nomer];

end;

end;

end;

 

Осталось выбрать отгадку и сравнить с правильным ответом. Откройте события компонента RadioButton1 и найдите событие OnClick. Справа кликните на стрелочку и в выпадающем списке выберите RadioButtonClick, а затем сделайте двойной клик. Delphi автоматически создаст в тексте модуля процедуру TForm2.RadioButtonClick(Sender: TObject) – обработчик данного события. Аналогичные действия надо проделать с каждым компонентом RadioButton2 и RadioButton3. Обработчик будем одним
и тем же для всех трех переключателей. Параметр Sender – один
из компонентов RadioButton.

 

procedure TForm2.RadioButtonClick(Sender: TObject);

var k:integer;

begin // Определим, какой переключатель выбран

if Sender=RadioButton1 then

k:=1

else

if Sender=RadioButton2 then

k:=2

else

k:=3;

if otvet[nomer]=k then

begin

label3.Caption:='Правильно';

itog:=itog+1; // Число правильных ответов

end

else

label3.Caption:='Неправильно';

end;

 

Результат работы с тестом приведен на рис. 44.

Рис. 44. Тест «Знаете ли вы загадки»

 

Задание 1. Сделайте так, чтобы нельзя было исправлять свой выбор, т. е. на каждый вопрос можно кликать только один раз.

 

Задание 2. Дополните проект итогами, где отразите, сколько правильных ответов было из общего числа вопросов.



<== предыдущая лекция | следующая лекция ==>
Проект «Редактирование списка вопросов» | Проект «Исторические даты»


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.847 сек.