Реферат: Составить программу обучения работе с клавиатурой

СОВРЕМЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ

КУРСОВАЯ РАБОТА

По дисциплине:

«Алгоритмические языки и программирование»

На тему:

«Составить программу обучения работе с клавиатурой»

Калуга


1. Разработка эскизноготехнического проектов программы (ГОСТ 19.404-79).

1.1 Введение

Задание на курсовую работу по дисциплине

Тема: Разработка приложения для Windows,представляющего собой программу обучающую работе с клавиатурой.

Условие задачи:

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

Цель курсовой работы –составить программу обучения работе с клавиатурой.

Основными задачамикурсовой работы является:

Ø Разработкапрограммы, которая будет обучать работе с клавиатурой;

Ø Разработкапрограммы, которая должна выдавать на экран буквы, цифры, слова и фразы,которые следует набрать на клавиатуре;

Ø Оценкаправильности ввода и скорости набора;

Ø Учет трех уровнейподготовленности обучающегося.

Курсовая работа состоитиз двух глав.

Первая глава посвящена разработкеэскизного и технического проектов программы.

Вторая глава посвященаразработке рабочего проекта.

/> 


1.2 Назначение и областьприменения

Необходимо разработать учебную программу, помогающую пользователюосвоить клавиатуру, научить печатать. Область применения: поскольку ставитсязадача разработать приложение для Windows, то использоватьсяпрограмма может под управлением Windows XP.

1.3 Технические характеристики

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

После ввода слова и нажатия клавиши “enter”происходит сравнение слова набранного пользователем с “эталоном”- словом,выведенным на экран генератором случайных чисел. Если слово совпадает, тосчетчику правильных ответов присваивается 1. После каждого правильно введенногослова счетчик суммируется до тех пор, пока генератор не остановится и неперестанет выводить на экран слова. Генератор выключается после 30 повторений. Дляостановки генератора слов, реализован счетчик, к которому прибавляется 1 послекаждого выведенного слова. Когда счетчик набирает сумму 30, происходитостановка программы, что достигается за счет скрытия текстового окна. Послеостановки программы на экран выводиться количество правильных ответов набранныхпользователем, если пользователь набрал больше 20-ти правильных, ответов емупредлагается попробовать себя на следующем уровне сложности.

Уровни сложности в программе реализованы путем ограниченияво времени для набора слов. Для реализации такой идеи в программе используетсятаймер. Пользователю отводится определенный промежуток времени, за который онуспевает набрать определенное количество слов. После окончания временипрограмма останавливается и на экран выводится количество правильно набранныхслов, например — “количество набранных слов 12 из 20. Если пользователь набралправильных слов больше 20, то ему предлагается перейти на следующий уровеньсложности. Таких уровней всего три — новичок, опытный, высший класс. Уровеньсложности можно выбрать из выпадающего списка “на время ”. Для обнулениярезультатов тестирования используется кнопка “сброс “. При выборе любого уровнясложности из выпадающего списка “на время” обнуление счетчиков программы ирезультатов тестирования производится автоматически.

1.3.1 Описание алгоритма

При запуске приложения первым делом создается форма. Припоявлении формы встроенный генератор слов выводит слово на экран. Далее программаостанавливается, ожидая ввода текста в текстовое окно. После ввода текста инажатия клавиши “enter” текст сравнивается с текстомвыведенным на экран формы. Если текст совпадает, то счетчик правильных ответовсуммируется, после 30 попыток на экран выводится количество правильно набранныхслов.

/>Привыборе уровня сложности из пункта меню «на время» включается таймер, длякаждого уровня сложности установлен определенный интервал времени. Таймерработает в течение заданного промежутка времени, после чего отключается и наформу выводится количество правильных слов, которые пользователь успел набрать.При наборе правильных слов более 20 программа предлагает Вам перейти на болеевысокий уровень сложности.


1.3.2 Описание глобальных переменных

Глобальные переменные, используемые в программе, приведены втаблице 1.

Таблица 1

Переменная Тип Описание X integer Используется для переменной выбора случайных слов vremi integer Используется для правильного вывода прошедшего времени O, k ,t integer Счетчики выведенных на форму слов, и правильных ответов m String Текстовая переменная

prob= диван;

 f= кровать;

 n= картина;

 h= стенка;

 u= солнышко;

 y= компьютер;

 l= принтер;

 d= ковер;

 r= пожар;

 qq= игрушка;

 ww= дверь;

 ee= плита;

 rr= книга;

 tt= уроки;

 yy= кактус;

 uu= дискета;

 ii= кухня;

 oo= сосна;

 pp= зеркало;

 aa= куртка;

 ss= 173042;

 dd= 935862;

 ff= 0.4789;

 gg= 1,9,53;

 hh= с:\юзер;

 jj= (2359);

 kk= 2*7=14;

 ll= сколько?;

 zz=12+965;

xx=500-25;

Именованные константы Слова, выводимые на форму Fonovi, budilnik Файлы WMF Картинки игры

В некоторых процедурах используются локальные переменные.

1.3.3 Выбор состава технических и программныхсредств

Делается вывод о необходимости использования интегральнойсреды разработки программ Delphi. Среда Delphi позволяет достаточно быстро разрабатывать приложениядля Windows. Технические характеристики компьютера: Pentium 100 и выше; объём оперативной памяти 8 Мб; жёсткийдиск объёмом не менее 500 Мб. Именно эти параметры создают условия дляполноценной работы IDE Delphi[1] и программ, созданных в этой среде. Дополнительных средств(принтер, сканер и т. д.) не требуется.


/>2. Разработка рабочего проекта/>2.1 Разработка программы

Для разработки приложения «программы обучающей работе склавиатурой» используются средства визуального программирования Delphi. Проект программы содержит одно окно: Form1 – рисунок 1.

/>/>/>/>/>/>/>/>/>/>/>/>/>

/>


8 4 7 1 3 2 6 10 9

Рис.3 Окно программы – Form1

Компонент Form1: TForm1– окно программы

Свойства:

BorderStyle = bsSingle

Caption = ‘Научись печатать’

Position = poScreenCenter

Menu=MainMenu1

События:

OnClose = FormClose – закрытие программы

OnCreate = FormCreate – создание формы

1 — компонент Timer:TTimer

Свойства:

Enabled = False

Interval = задается кнопками меню«на время»

События:

OnTimer = TimerTimer– вывод случайного слова, после окончания времени заданного интервалом таймервыключается.

2 — компонент Button1: TButton

Свойства:

Caption = 'завершить'

События:

OnClick = Button1Click – выход из приложения

3 — компонент Button2: TButton

Свойства:

Caption = 'сброс'

События:

OnClick = Button2:Click –обнуление счетчиков, сброс результатовтестирования

4 — компонент Label1:TLabel

Свойства:

AutoSize = True

Caption = ' '

Font – шрифт 24 цвет- темносиний

Событий нет.

5 — компонент Label2: TLabel

Свойства:

 Caption=’ ’

 Font- шрифт 14 цвет- темно синий

Событий: нет

6 — компонент Label3: TLabel

 Свойства:

 Caption=’<ввод текста>’

 Font- шрифт 14 цвет- темно синий

Событий: нет

7 — компонент Edit1: TEdit

Свойства:

Font- шрифт 14 цвет- черный

События:

OnKeyPress=Edit1KeyPress-обработка события нажатия клавиши «enter»

8 — компонент MainMenu1: TMainMenu-раскрывающийсясписок тестирования на время.

N1: TMenuItem — раскрывающийся список: «на время»

N2: TMenuItem– кнопка запускающая тест на время

События:

TForm1.N2Click — обработка события нажатия клавиши «новичок»

N3: TMenuItem– кнопка запускающая тест на время

События:

TForm1.N3Click — обработка события нажатия клавиши «опытный»

N4: T MenuItem – кнопка запускающая тестна время

События:

TForm1.N4Click — обработка события нажатия клавиши «высшийкласс»

9- panel1-T panel – содержит компоненты :

panel1-T panel-контейнер

Свойства:

Тор-8

Left-384

Width-337

События- нет

image1- для вывода картинок

Cвойства:

Top-8

Left-8

Width-321

Height-225

События- нет

10-Panel2-Tpanel–содержит компоненты ;

panel1-T panel-контейнер

Свойства:

Тор-312

Left-624

Width-145

Height-89

События- нет

timer2-T Timer-отсчет времени

Cвойства:

Enabled- false

Interval- 1000

События:

On timer

Label4-T label –вывод времени на экран

Cвойства:

Тор-16

Left-64

Width-9

Height-37

Font- цвет-красный, размер-24,caption-“ ”

2.2 Описаниепрограммы

Общие сведения.

Программа предназначена дляобучения пользователя работе с клавиатурой. Программа называется «Научисьпечатать.

Для нормальногофункционирования требуется программное обеспечение Pentium 100 ивыше; объём оперативной памяти 8 Мб; жёсткий диск объёмом не менее 500 Мб. Дляразработки приложения «программы обучающей работе с клавиатурой» используютсясредства визуального программирования Delphi.

Функциональное назначение.

Цель разработанной программынаучить пользователя быстро печатать. Для этой цели в программе реализованы триступени тестирования на время.

Описание логическойструктуры.

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

При создании окна приложения обрабатывается событие – FormCreate. Внутри этой процедуры мы выполняем следующиедействия. Во-первых, запускаем генератор случайных чисел, он нам понадобитсядля того, чтобы при каждом новом запуске проекта у нас не повторялись каждыйраз одни и те же слова, а компьютер каждый раз генерировал новые числа длявыбора слов. Для этой цели используется процедура Randomize.Во-вторых, в проекте необходимо иметь две переменные-счетчики. Одна переменная-счетчикК будет подсчитывать общее количество выводимых программой слов. Втораяпеременная-счетчик Т будет подсчитывать количество правильных слов, данныхпользователем, которому соответствует количество набранных балов. В процедуремы должны проинициализировать эти переменные, т.е. присвоить им начальныезначения. Причем эти начальные значения будут разными. Для переменной Кначальное значение будет равно 1, т. к. сразу после создания формы мы ужевыведем первое слово. Для переменной Т начальное значение будет равно 0, т. к.пользователь не ввел еще ни одного правильного слова.

Следующий оператор процедуры выбирает случайные значения иприсваивает их вспомогательной переменной X. Этидействия, производятся с помощью функции Random. Дольшевступает в дело оператор выбора по случайному числу, которое присваиваетсяпеременной X, он выбирает слово, которое будетвыводиться на экран. Для того чтобы сделать программу более коммуникабельнойвставим в форму компонент Tpanel, поверх него растянемдругой компонент Imagel, для вывода графики. С помощьюпроцедуры image1.Picture.LoadFromFile ('fonovi.wmf') картинку, предварительноскопировав рисунок формата ‘wmf’ в текущий каталогпроекта .

/>


Создание формы

 

/>


Счетчики К:=1 Т:=0

/>


Генерируем случайное слово

/>

/>Загрузка картинки

/>


Рис. 3 Блок-схема процедуры FormCreate


При закрытии окна программы обрабатывается событие FormClose, которая закрывает форму программы.

Компоненты Label1 и Label2 служат для вывода информации пользователю.

Компонент Label3 содержиткомментарий к текстовому окну Edit1.

Компонент Edit1 служит для вводатекстовой информации, и содержит

событие «Edit1 KeyPress».Внутри этой процедуры мы выполняем следующие действия. После ввода текста инажатия клавиши «enter» набранный пользователем текстсравнивается со словами, которые выдает на форму генератор случайных слов. Еслиодно из слов совпадает с набранным в текстовом окне пользователем, то счетчикуправильных ответов присваивается 1, если – нет, счетчик остается без изменения.Дальше производится проверка условия счетчика случайных слов. Если слов наформе было выведено К=30, то выдаются результаты тестирования. Причем, еслипользователь набрал правильных слов более 20, ему будет предложено перейти наследующий уровень сложности. Если на форму выведено случайных слов менее 30, тослово генерируется снова. После чего программа ожидает ввода текста и нажатияклавиши «enter», т. е. повторение процедуры.


/> /> /> /> /> /> /> /> <td/> />

Нажата клавиша

/>/>«enter»

/>

Получаем текстовую переменную «M»

/>

/>Сравниваем M и Z

/> нет

/>


/>                                                 Да

/>Генерируем случайное слово

Счетчику правильных ответов – T:=t+1

/>/>


 нет

/>


/> да

Вывод результатов тестирования T

/>/>


Рис. 4 Блок-схема процедурыTForm1.Edit1KeyPress

/>/>/>Когдапользователь нажимает на кнопку «сброс», то обрабатывается событие нажатия этойкнопки в процедуре Button2Click. В этой процедурезадаются начальные значения всех переменных программы, останавливаются таймеры,очищаются окна ввода и вывода. Так как в программе две картинки которыезагружаются в одно окно, то при нажатии кнопки «сброс» снова будет загружатьсякартинка с файла ‘fonovi’ как и при появлении формы.

2.2.1. Тестирование на время

После выбора пользователем уровня сложности из пункта меню«на время» запускается таймер, для каждого уровня сложности установлен определенныйинтервал времени. Первым делом счетчиком К – количество сгенерированных слов иТ — количество правильных слов присваиваются начальные значения. После чего,как и в процедуре FormCreate генерируется случайноечисло и выбирается слово с помощью оператора выбора. Далее пользователь вводиттекст слова и нажимает клавишу «enter» включается вработу событие «Edit1 KeyPress»,которое повторяется до тех пор, пока у свойства intervalтаймера не закончится время. После окончания времени на экран выводятсярезультаты тестирования. При наборе правильных слов более 20 программапредлагает Вам перейти на следующий уровень сложности. Для того чтобыпользователь знал, сколько осталось времени до окончания теста помещаем наформу компонент Tpanel 2, который служит контейнеромдля других компонентов на него помещаем компонент Timer2 и компонент Label 4. С помощью этих компонентоворганизован отсчет обратного времени до окончания теста. Также при выборелюбого теста из выпадающего меню «на время» меняется фоновая картинка,загружается картинка часов в окно для картинок.


/>


Таймер включен

/>

Генерируется случайное слово

/>

/>/>Ожидание ввода текста

/>

/>Процедура нажатия клавиши “enter”

/>

Таймер выключен

/>/>


Рис. 4 Блок-схема процедуры TimerTimer

2.3 Спецификацияпрограммы

Исполняемый файл программы«Научись печатать» имеет название PEZATAITE.EXE. Его работоспособность не зависит от расположенияна диске. Необходимо, чтобы файлы, прилагающиеся к программе, находились вуказанных каталогах. Наименования файлов входящих в проект и краткая информацияоб их содержании отображены в таблице 2.


Таблица 2

Наименование Обозначение Примечание pezataite.dof Файл параметров проекта Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы pezataite.dpr Файл проекта Связывает все файлы, из которых состоит приложение pezataite.cfg Файл, содержащий настройки проекта Содержит информацию о том, какие окна открыты и в каких позициях они расположены. pezataite.res Файл ресурсов Содержит пиктограммы, графические изображения Unit1.pas Файл программного модуля для формы Form1 Определяет функциональность формы Form1 Unit1.dfm Файл формы Form1 Содержит список свойств всех компонентов, включённых в форму Form1 Unit1.dcu Объектный файл для Unit1.pas Откомпилированная версия Unit1.pas

fonovi.bmp

budilnik.bmp

Файлы рисунков программы Загружаются во время работы программы 2.4 Текстпрограммы

Текст программы для формы – Form1[2]:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, ExtCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;// для вывода случайно сгенерированных слов

 Edit1: TEdit;// для ввода текста с клавиатуры

 Button1: TButton;// завершение работы с программой

 Label2: TLabel;// вывод количества правильно набранных слов

 MainMenu1: TMainMenu;// меню работы программы на время

 N1: TMenuItem;// выпадающий список

 Timer1: TTimer;// временной таймер

 N2: TMenuItem;// тест на время для новичков

 N3: TMenuItem;// тест на время – средняя скорость

 N4: TMenuItem;// тест на время для профессионалов

 Button2: TButton;// сброс значений

 Label3: TLabel;// комментарий

 Panel1: TPanel;// контейнер

 Image1: TImage;// окно для загрузки картинок

 Panel2: TPanel;// контейнер

 Label4: TLabel;// вывод отсчета обратного времени

 Timer2: TTimer;

 // при появлении формы выводится случайно сгенерированноеслово

 procedure FormCreate(Sender: TObject);

 procedure Button1Click(Sender: TObect); //обр. кнопки «завершить»

 procedure Timer1Timer(Sender: TObject); //обр. таймер

 // обр. Нажатияклавиши «enter»

 procedure Edit1KeyPress(Sender: TObject;var Key: Char);

 procedure N2Click(Sender: TObject); //

 procedure N3Click(Sender: TObject); // триположения скорости таймера

 procedure N4Click(Sender: TObject); //

 procedure Button2Click(Sender: TObject);// обр. Кнопки сброс

 procedure Timer2Timer(Sender: TObject); //отсчет обратного времени

 private

 { Private declarations }

 public

 { Public declarations }

 end;

 // объявление глобальных переменных и констант

var

 Form1: TForm1;

 // переменные для подсчета кол-ва выведенных слов,правильных ответов

 // и для оператора выбора генерации случайных слов

 vremi,o,k,t, x:integer;

 m:string;// присваивается значение текста введенного пользователем

 // именованные константы для генератора случайных слов

 const

 prob='диван';

 f='кровать';

 n='картина';

 h='стенка';

 u='солнышко';

 y='компьютер';

 l='принтер';

 d='ковер';

 r='пожар';

 qq='игрушка';

 ww='дверь;

 ee='плита';

 rr='книга';

 tt='уроки';

 yy='кактус';

 uu='дискотека';

 ii='кухня';

 oo='сосна';

 pp='зеркало';

 aa='куртка';

 ss='173042';

 dd='935862';

 ff='0.4789';

 gg='1,9,53';

 hh='с:\юзер';

 jj='(2359)' ;

 kk='2*7=14';

 ll='сколько?';

 zz='12+965';

 xx='500-25';

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender:TObject); // процедура создания формы

 begin

 image1.Picture.LoadFromFile ('fonovi.wmf'); // загружаем картинку

 randomize; //вывоз проц. ген. Чисел

 k:=1; t:=0;// счетчик слов – сгенерированных и правильно набранных

 x:=random (30)+1;//генерируем случ. числа

 case x of // выбор случайного слова из предложенных

 1: label1.Caption := prob;

 2:label1.Caption:= h ;

 3:label1.Caption:= u;

 4: label1.Caption:= f;

 5:label1.Caption:= y;

 6:label1.Caption:= l;

 7:label1.Caption:= d;

 8:label1.Caption:= n;

 9:label1.Caption:= r;

 10:label1.Caption:=qq ;

 11:label1.Caption:= ww;

 12:label1.Caption:= ee;

 13:label1.Caption:=rr ;

 14:label1.Caption:=tt ;

 15:label1.Caption:=yy ;

 16:label1.Caption:=uu ;

 17:label1.Caption:=ii ;

 18:label1.Caption:= oo;

 19:label1.Caption:=pp;

 20:label1.Caption:=aa;

 21:label1.Caption:=ss;

 22:label1.Caption:=dd;

 23:label1.Caption:=ff;

 24:label1.Caption:=gg;

 25:label1.Caption:=hh;

 26:label1.Caption:=jj;

 27:label1.Caption:=kk;

 28:label1.Caption:=ll;

 29:label1.Caption:=zz;

 30:label1.Caption:=xx;

 end;

 end;

procedure TForm1.Button1Click(Sender:TObject);

 begin

 form1.Close; // закрытие приложения

 end;

procedure TForm1.Timer1Timer(Sender:TObject); // обр. таймера

 begin

 k:=1; // счетчику случ. словприсвоили 1

 o:=k; //заменяем переменную счетчика к на 0

 randomize; // вызов проц. ген.чисел

 x:=random(30)+1; // генерируем случ. числа

 case x of // выбор случайного слова из предложенных

 1: label1.Caption := prob;

 2:label1.Caption:= h ;

 3:label1.Caption:= u;

 4: label1.Caption:= f;

 5:label1.Caption:= y;

 6:label1.Caption:= l;

 7:label1.Caption:= d;

 8:label1.Caption:= n;

 9:label1.Caption:= r;

 10:label1.Caption:=qq ;

 11:label1.Caption:= ww;

 12:label1.Caption:= ee;

 13:label1.Caption:=rr ;

 14:label1.Caption:=tt ;

 15:label1.Caption:=yy ;

 16:label1.Caption:=uu ;

 17:label1.Caption:=ii ;

 18:label1.Caption:= oo;

 19:label1.Caption:=pp;

 20:label1.Caption:=aa;

 21:label1.Caption:=ss;

 22:label1.Caption:=dd;

 23:label1.Caption:=ff;

 24:label1.Caption:=gg;

 25:label1.Caption:=hh;

 26:label1.Caption:=jj;

 27:label1.Caption:=kk;

 28:label1.Caption:=ll;

 29:label1.Caption:=zz;

 30:label1.Caption:=xx;

 end;

 m:=edit1.Text; // присваиваем введенное пользователем текстовоезначение

 // сравниваем текст с константой

 // при равенстве счетчику правильных слов

 // присваиваем +1

 if m=prob then t:=t+1;

 if m=f then t:=t+1 ;

 if m=n then t:=t+1 ;

 if m=h then t:=t+1 ;

 if m= u then t:=t+1 ;

 if m= y then t:=t+1 ;

 if m= l then t:=t+1 ;

 if m= d then t:=t+1 ;

 if m=r then t:=t+1;

 if m= qq then t:=t+1;

 if m= ww then t:=t+1;

 if m=ee then t:=t+1;

 if m=rr then t:=t+1;

 if m=tt then t:=t+1;

 if m=yy then t:=t+1;

 if m= uu then t:=t+1;

 if m=ii then t:=t+1;

 if m= oo then t:=t+1;

 if m= pp then t:=t+1;

 if m=aa then t:=t+1;

 if m=ss then t:=t+1;

 if m=dd then t:=t+1;

 if m=ff then t:=t+1;

 if m=gg then t:=t+1;

 if m=hh then t:=t+1;

 if m=jj then t:=t+1;

 if m=kk then t:=t+1;

 if m=ll then t:=t+1;

 if m=zz then t:=t+1;

 if m=xx then t:=t+1;

 o:=o+1; //счетчику случ. слов присвоили 1

 if o=2 then //если сумма счетчика достигла 2

 begin

 timer1.enabled:=false; // останавливаемтаймер

 edit1.Visible:=false; // делаем недоступным текстовое окно

 image1.Picture.LoadFromFile ('fonovi.wmf'); // загружаем картинку

 // если счетчик правильных слов превысил 20 выводимсообщение пользователю

 if t>20 then label2.Caption:='блестяще количествонабранных слов ='+ inttostr (t)+'переходите';

 // если нет, то выводим другое сообщение

 label2.Caption:='количествонабранных слов = ' +inttostr (t)+ ' из 20 ';

 end;

 end;

procedure TForm1.Edit1KeyPress(Sender:TObject; var Key: Char);

 begin

 if Key = chr(VK_RETURN) then //еслинажата клавиша «enter „

 begin

 m:=edit1.Text; // присваиваем введенное слово пользователем текстовоезначение

 // сравниваем текст с константой

 // при равенстве счетчику правильных слов

 // присваиваем +1

 if m=prob then t:=t+1;

 if m=f then t:=t+1 ;

 if m=n then t:=t+1 ;

 if m=h then t:=t+1 ;

 if m= u then t:=t+1 ;

 if m= y then t:=t+1 ;

 if m= l then t:=t+1 ;

 if m= d then t:=t+1 ;

 if m= r then t:=t+1;

 if m= qq then t:=t+1;

 if m= ww then t:=t+1;

 if m=ee then t:=t+1;

 if m=rr then t:=t+1;

 if m=tt then t:=t+1;

 if m=yy then t:=t+1;

 if m= uu then t:=t+1;

 if m=ii then t:=t+1;

 if m= oo then t:=t+1;

 if m= pp then t:=t+1;

 if m= aa then t:=t+1;

 if m=ss then t:=t+1;

 if m=dd then t:=t+1;

 if m=ff then t:=t+1;

 if m=gg then t:=t+1;

 if m=hh then t:=t+1;

 if m=jj then t:=t+1;

 if m=kk then t:=t+1;

 if m=ll then t:=t+1;

 if m=zz then t:=t+1;

 if m=xx then t:=t+1;

 k:=k+1; // счетчикуслуч. слов присвоили 1

 edit1.Text:='';// очистим текстовое окно

 edit1.SetFocus;// сделаем активным текстовое окно

 x:=random(30)+1; // генерируем случ. числа

 case x of // выбор случайного слова из предложенных

 1: label1.Caption := prob;

 2:label1.Caption:= h ;

 3:label1.Caption:= u;

 4: label1.Caption:= f;

 5:label1.Caption:= y;

 6:label1.Caption:= l;

 7:label1.Caption:= d;

 8:label1.Caption:= n;

 9:label1.Caption:= r;

 10:label1.Caption:=qq ;

 11:label1.Caption:= ww;

 12:label1.Caption:= ee;

 13:label1.Caption:=rr ;

 14:label1.Caption:=tt ;

 15:label1.Caption:=yy ;

 16:label1.Caption:=uu ;

 17:label1.Caption:=ii ;

 18:label1.Caption:= oo;

 19:label1.Caption:=pp;

 20:label1.Caption:=aa;

 21:label1.Caption:=ss;

 22:label1.Caption:=dd;

 23:label1.Caption:=ff;

 24:label1.Caption:=gg;

 25:label1.Caption:=hh;

 26:label1.Caption:=jj;

 27:label1.Caption:=kk;

 28:label1.Caption:=ll;

 29:label1.Caption:=zz;

 30:label1.Caption:=xx;

 end;

 if k=30 then //еслисумма счетчика случайных слов достигла 30

 begin

 timer1.enabled :=false; // останавливаемтаймер

 edit1.Visible:=false; // скрываем текстовое окно

 // выводим сообщение пользователю

 label2.Caption:='количество набранных слов = '+ inttostr (t);

 end;

 begin

 // если счетчик правильных слов превысил 20 выводимсообщение пользователю

 if t>20 then label2.Caption:='блестяще количествонабранных слов = '+ inttostr (t)+'переходите';

 end;

 end;

 end;

procedure TForm1.N2Click(Sender: TObject);

 begin

 image1.Picture.LoadFromFile('budilnik.wmf');

 timer1.Interval:=80000 ;// задаем интервал

 edit1.Visible:=true; // показать текстовоеокно

 timer1.enabled :=true; // включаем таймер

 edit1.SetFocus; // сделать активнымтекстовое окно

 label2.Caption:='';// очистить

 t:=0; // обнуляем счетчик правильныхслов

 vremi:=80; // обратный отсчет

 timer2.enabled:=true; // включаем таймер

 end;

procedure TForm1.N3Click(Sender: TObject);

 begin

 image1.Picture.LoadFromFile('budilnik.wmf');

 timer1.enabled :=true; // включаем таймер

 timer1.Interval:=50000; // задаем интервал

 edit1.Visible:=true; // показать текстовое окно

 edit1.SetFocus;// сделать активным текстовое окно

 label2.Caption:='';// очистить

 t:=0; // обнуляем счетчикправильных слов

 vremi:=50; // обратный отсчет

 timer2.enabled:=true; // включаем таймер

 end;

procedure TForm1.N4Click(Sender: TObject);

 begin

 image1.Picture.LoadFromFile('budilnik.wmf');

 timer1.enabled :=true; // включаем таймер

 timer1.Interval:=30000; // задаем интервал

 edit1.Visible:=true; // показать текстовое окно

 edit1.SetFocus;// сделать активным текстовое окно

 label2.Caption:='';//очистить

 t:=0; // обнуляем счетчикправильных слов

 vremi:=30; // обратный отсчет

 timer2.enabled:=true; // включаем таймер

 end;

procedure TForm1.Button2Click(Sender:TObject);

 begin

 image1.Picture.LoadFromFile ('fonovi.wmf');

 timer1.enabled:=false; // останавливаемтаймер

 timer2.enabled:=false; // останавливаемтаймер

 edit1.Visible:=true; // показать текстовое окно

 edit1.SetFocus;// сделать активным текстовое окно

 label2.Caption:=''; // очистить

 edit1.Text:=''; // очистить

 t:=0; // обнуляем счетчикправильных слов

 k:=1; // счетчику случ. словприсвоили 1

 label4.Caption:=''; // очистить

 end;

procedure TForm1.Timer2Timer(Sender: TObject);// таймер отсчета обратного

 // времени

begin

vremi:=vremi-1;// каждую секунду отнимаем от заданного времени 1

if vremi=0 then //если время закончилось

 begin

 timer2.Enabled:=false; // выключаемтаймер

 label4.Caption:='off'; // выводим окно

 end

 else

 label4.Caption:=inttostr(vremi); // обратныйотсчет

end;

 end.


2.5 Тестированиепрограммы

Для тестирования программы были пройдены все временные этапы.

Таблица 3

Тест на время Количество правильно набранных слов  новичек 20 опытный 15 Высший класс 8

Вид приложения в случайный момент работы приведен на рисунке5

/>

Рис. 5 Окно приложения в случайный моментигры

/>2.6 Условия выполнения и выполнение программы

Данное приложение, разработанное в Delphi,способно работать на персональных компьютерах с минимальными требованиями Pentium 100, оперативной памятью 32 Мб, операционной средой Windows.

 Запустить приложение можно также как и любое другое. Окноприложения загрузится и появится в центре экрана. Для работы с программой «Научисьпечатать» необходимо ввести в текстовое окно, предложенное слово и нажать наклавишу «enter», или если вы хорошо печатаете выбратьиз выпадающего меню «на время» в левом верхнем углу экрана один из трехпредложенных вариантов подходящий вашему уровню скорости набора текста. Длявыхода из программы необходимо нажать кнопку «завершить» или щелкнуть левойкнопкой мыши по крестику в правом верхнем углу экрана. Для обнулениярезультатов нажмите клавишу «сброс».

В разделеописываются (руководство ГОСТ 19.505-79[3])
Заключение

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

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

Для того чтобы пользователь знал, сколько времени у негоосталось, на форму выведен обратный отсчет времени таймера. Чтобы с программойбыло интереснее работать, в форму загружаются две картинки, одна при созданииформы другая при выборе выпадающего меню «на время».

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

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

Все эти модификации вызвали бы больший интерес к игре.

Литература

1.        Емелина Е.И. Основы программирования на языке Паскаль. М., 1997.

2.        Мануйлов В. Г. Разработка программного обеспечения на Паскале. М.,1998г.

3.        Фаронов В.В.Турбо Паскаль 7.0. М., 1998

4.        Культин Н. Програмирование на Object Pascal. Киев, 1998.

5.        Федоров А. Г. Delphi 3.0 для всех. М., 1998.

6.        Дарахвелидзе П., Марков Е. Программирование в Delphi4.СПб.: БХВ. СПб., 1999

7.        Роб Баас, Майк Фервай, Хайдемария Гюнтер. Delphi4. Полное руководство. — К.: Издательская группа BHV,1999

8.        Изучаем Delphi. – СПб.: Питер, 2000. – 352 с.:ил.

9.        Александровский А. Д. Delphi 5.0. Разработкакорпоративных приложений. – М.: ДМК, 2000. – 512 с.: ил. (Серия «Для программистов»).

10.     Delphi: быстрый старт. – СПб.: БХВ – Петербург,2002. – 288 с.: ил.

11.     Turbo Pascal/ С.А. Немнюгин. – СПб: Издательство «Питер», 2000. – 496 с.: ил.

12.     Виктор Пестриков Артур Маслобоев DELPHI на примерах Санкт-Петербург 2005г.

13.     Turbo Pascalв задачах и программах. – СПб.: БХВ – Петербург,, 2002. – 560 с.: ил.

14.     Никита Культин Основы программирования на DELPHI7.

еще рефераты
Еще работы по информатике, программированию