Реферат по предмету "Информатика"


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

СОВРЕМЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ
КУРСОВАЯ РАБОТА
По дисциплине:
«Алгоритмические языки и программирование»
На тему:
«Составить программу обучения работе с клавиатурой»
Калуга
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 Delphi1 и программ, созданных в этой среде. Дополнительных средств (принтер, сканер и т. д.) не требуется.
2. Разработка рабочего проекта
2.1 Разработка программы
Для разработки приложения «программы обучающей работе с клавиатурой» используются средства визуального программирования Delphi. Проект программы содержит одно окно: Form1 – рисунок 1.--PAGE_BREAK--
/>/>/>/>/>/>/>/>/>/>/>/>/>
/>

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.    продолжение
--PAGE_BREAK--
Функциональное назначение.
Цель разработанной программы научить пользователя быстро печатать. Для этой цели в программе реализованы три ступени тестирования на время.
Описание логической структуры.
Программную реализацию разработанных алгоритмов содержат обработчики событий. Все по порядку.
При создании окна приложения обрабатывается событие – 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», т. е. повторение процедуры.
/>

Нажата клавиша
/>/>«enter»
/>

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

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

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


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

нет
/>

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

Рис. 4 Блок-схема процедуры TForm1.Edit1KeyPress
/>/>/>Когда пользователь нажимает на кнопку «сброс», то обрабатывается событие нажатия этой кнопки в процедуре Button2Click. В этой процедуре задаются начальные значения всех переменных программы, останавливаются таймеры, очищаются окна ввода и вывода. Так как в программе две картинки которые загружаются в одно окно, то при нажатии кнопки «сброс» снова будет загружаться картинка с файла ‘fonovi’ как и при появлении формы.
2.2.1. Тестирование на время
После выбора пользователем уровня сложности из пункта меню «на время» запускается таймер, для каждого уровня сложности установлен определенный интервал времени. Первым делом счетчиком К – количество сгенерированных слов и Т — количество правильных слов присваиваются начальные значения. После чего, как и в процедуре FormCreate генерируется случайное число и выбирается слово с помощью оператора выбора. Далее пользователь вводит текст слова и нажимает клавишу «enter» включается в работу событие «Edit1 KeyPress», которое повторяется до тех пор, пока у свойства interval таймера не закончится время. После окончания времени на экран выводятся результаты тестирования. При наборе правильных слов более 20 программа предлагает Вам перейти на следующий уровень сложности. Для того чтобы пользователь знал, сколько осталось времени до окончания теста помещаем на форму компонент Tpanel 2, который служит контейнером для других компонентов на него помещаем компонент Timer 2 и компонент Label 4. С помощью этих компонентов организован отсчет обратного времени до окончания теста. Также при выборе любого теста из выпадающего меню «на время» меняется фоновая картинка, загружается картинка часов в окно для картинок.
/>

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

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

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

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

Таймер выключен    продолжение
--PAGE_BREAK--
/>

Рис. 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 Текст программы
Текст программы для формы – Form11:
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;
// переменные для подсчета кол-ва выведенных слов, правильных ответов
// и для оператора выбора генерации случайных слов    продолжение
--PAGE_BREAK--
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;    продолжение
--PAGE_BREAK--
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; // сделаем активным текстовое окно    продолжение
--PAGE_BREAK--
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:=''; // очистить    продолжение
--PAGE_BREAK--
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-791)
Заключение
Приложение представляет собой очень простой вариант программы, обучающей работе с клавиатурой.
Чтобы слова, выводимые на форму, каждый раз менялись, используется процедура генерации случайных чисел и с помощью оператора выбора по числу выбирается слово, но случайный выбор может повторяться, тогда на экране подряд идут два одинаковых слова. В программе используется довольно простая проверка текста введенного пользователем в текстовое окно, никакой фильтрации вводимых символов нет, текст сверяется со словами, заложенными в программе, если такое слово есть, то оно засчитывается как правильное. Проверка пользователя на скорость печати реализовано в приложении с помощью таймера. При выборе одной из клавиш из выпадающего списка «на время», таймер задает промежуток времени, за который пользователь должен набрать как можно больше слов.
Для того чтобы пользователь знал, сколько времени у него осталось, на форму выведен обратный отсчет времени таймера. Чтобы с программой было интереснее работать, в форму загружаются две картинки, одна при создании формы другая при выборе выпадающего меню «на время».
Для уменьшения размера исполняемого файла картинки игры загружаются при запуске игры, но из-за этого увеличивается количество файлов необходимых для функциональности приложения.
Можно усложнить программу, реализовав фильтрацию вводимых символов, усложнить систему оценок за скорость работы с клавиатурой. Создать редактор, который подсказывал, в каких словах пользователь сделал ошибки. Если разрабатывать программу для детей, то можно сделать более красочный интерфейс, сопровождающую музыку, звуки нажатия клавиш, при прохождении очередного тестирования призовую анимацию.
Все эти модификации вызвали бы больший интерес к игре.
Литература
Емелина Е.И. Основы программирования на языке Паскаль. М., 1997.
Мануйлов В. Г. Разработка программного обеспечения на Паскале. М., 1998г.
Фаронов В.В.Турбо Паскаль 7.0. М., 1998
Культин Н. Програмирование на Object Pascal. Киев, 1998.
Федоров А. Г. Delphi 3.0 для всех. М., 1998.
Дарахвелидзе П., Марков Е. Программирование в Delphi 4.СПб.: БХВ. СПб., 1999
Роб Баас, Майк Фервай, Хайдемария Гюнтер. Delphi 4. Полное руководство. — К.: Издательская группа BHV, 1999
Изучаем Delphi. – СПб.: Питер, 2000. – 352 с.: ил.
Александровский А. Д. Delphi 5.0. Разработка корпоративных приложений. – М.: ДМК, 2000. – 512 с.: ил. (Серия «Для программистов»).
Delphi: быстрый старт. – СПб.: БХВ – Петербург, 2002. – 288 с.: ил.
Turbo Pascal / С.А. Немнюгин. – СПб: Издательство «Питер», 2000. – 496 с.: ил.
Виктор Пестриков Артур Маслобоев DELPHI на примерах Санкт-Петербург 2005г.
Turbo Pascal в задачах и программах. – СПб.: БХВ – Петербург,, 2002. – 560 с.: ил.
Никита Культин Основы программирования на DELPHI 7.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Волинські письменники у розбудові держави
Реферат Ахматова а. - А. а. ахматова. реквием
Реферат Ахматова а. - Эволюция художественных образов в лирике а. ахматовой
Реферат Организация стратегического управленческого учета на предприятии
Реферат I общие положения
Реферат Ахматова а. - Настоящую нежность не спутаешь... любовь в лирике а. а. ахматовой
Реферат Стохастическое моделирование и прогноз загрязнения атмосферы с использованием нелинейной регрессии
Реферат А. Л. Абаев Стратегия вуза: маркетинговый аспект
Реферат Расчет основных характеристик газопровода на участке Александровское-Раскино
Реферат Маргарита Французская, герцогиня Беррийская
Реферат Beowulf As The Bad Guy Essay Research
Реферат Архитектоника сценарно-режиссерской разработки представления
Реферат The Terrible Trins Essay Research Paper What
Реферат Ацилхлориды
Реферат Complex Vs Simple Lifestyle Essay Research Paper