Создание приложения "Клавиатурный тренажер"
Министерство образования и науки Украины
Луганский национальный университет имени Тараса Шевченко
Ровеньковский факультет
Кафедра информационных технологий и систем
Курсовой проект
на тему: «Создание приложения «Клавиатурный тренажер»
Выполнила:
студентка 3
курса специальности «Информатика»
Дятлюк Лариса
Витальевна.
Руководитель:
Логинов
Анатолий Владимиравич
Ровеньки -2008
Содержание
Введение
1.
Инструкция пользователя
2.
Разработка программы: описание алгоритма решения задачи
3.
Описание программы
Вывод
Литература
Приложение А
Введение
В связи с бурным
развитием e-mail, ICQ, у многих пользователей Интернет возникла потребность
быстро вводить текст с клавиатуры. Это и послужило появлению разнообразных
программ-тренажеров, для получения и усовершенствования навыка набора текста.
Клавиатурный
тренажер - это эффективная программа для освоения слепой машинописи.
В ходе
разработки курсового проекта мной была написана программа клавиатурный
тренажер. Эта программа проста в использовании и будет интересна, как для
начинающего, так и для опытного пользователя.
Разработанная
программа доступна всем и может использоваться на любом предприятии, в том
числе и школах.
1. Инструкция пользователя
Рис. 1
Чтобы работать с
программой необходимо нажать:
·
New test – для начала теста;
·
Stop – для окончания теста и вывода
информации о результате;
·
Exit – для выхода из тренажера.
Уровень
сложности изменяется автоматически, при правильном нажатии некоторого
количества символов.
2. Разработка
программы: описание алгоритма решения задачи
В форме сверху
вниз в случайно выбранной по горизонтали позиции падает случайно выбранная
латинская буква. Пока она падает, пользователь должен успеть нажать ее на
клавиатуре. Затем начинает падать новая буква. В конце игры пользователю
выдается, сколько раз он успел нажать правильную букву.
Описание алгоритма
решения задачи procedure
TForm1.Button1Click(Sender: TObject); procedure TForm1.Timer1Timer(Sender:
TObject); procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char).
3. Описание программы
Программа клавиатурный
тренажер. В форме, на панели, по таймеру сверху вниз в случайно выбранной по
горизонтали позиции падает случайно выбранная маленькая латинская буква. В
программе использованы 2 таймера: один – для самого события падающей буквы и
второй – для вывода реального времени в строке статуса.
Пока буква
падает, пользователь должен успеть нажать ее на клавиатуре. Затем начинает
падать новая буква. Так же сам тренажер имеет функцию «Уровня скорости» - это
когда после определенного количества правильных нажатий интервал таймера
начинает уменьшаться, что заставляет новые буквы падать с ускорением.
В конце игры
пользователю выдается, сколько раз он успел нажать правильную букву.
Форма содержит:
1.
2-х Panel
§
Panel1 – для определения границ тренажера
§
Panel2 – для падающих букв
2.
3-х Buttons:
§
New test – для начала теста
§
Stop – для окончания теста и вывода
информации о результате
§
Exit – для выхода из тренажера
3.
Label – для показа уровня скорости
4.
StatusBar – для вывода результатов и
реального времени (что бы долго не засиживались)
Выводы
В ходе работы были
получены следующие результаты:
Рис. 2
Форма выводит на
панели статуса некоторую меняющуюся информацию (результаты и реальную дату и
время). Несколькими способами используется компонент – Таймер:
С помощью
таймера:
·
Приводить в движение компоненты
·
Изменять скорость движения компонентов
·
Выводить реальную дату и время
Рекомендуется,
каждый день минут по 10-30, а потом достаточно заниматься раза 2-4 в неделю по
5-10 минут.
1.
Тейксера С. и Пачеко К. «Delphi 5. Руководство
разработчика, том 1. Основные методы и технологии программирования»: Пер. с
англ.- М.: «Вильямс».-2001. - 832 с.
2.
Озеров В. Электронный учебник: «Советы по Delphi».Версия 1.1.7 от
1.12.1999.
3.
Озеров В. Электронный учебник: «Советы по Delphi». Версия 1.4.6 от
1.4.2001.
4.
Озеров В. Электронный учебник: «Советы по Delphi». Версия 1.0.8. от
2.5.2000.
5.
Horrific aka Фленов М. «Библия для программиста в среде Delphi»// http://www.cydsoft.com/vr-online.
6.
Дарахвелидзе П.Г., Марков Е.П.: «Программирование в Delphi 7». — СПб.:
«БХВ-Петербург», 2003. —784 с.
7.
Архангельский А.Я. Электронный учебник «100 компонентов общего
назначения библиотеки Delphi 5».2002.
9.
Фленов М. «Библия Delphi».-СПб.: «БХВ-Петербург».-2004.-880с.
10.
Фленов М. «Программирование в Delphi глазами хакера». - СПб.:
«БХВ-Петербург».-2003.-368с.
11.
Шкрыль А. «Прикол в Delphi своими руками» //www.vr-online.ru.
12.
Озеров В. Электронный учебник: «Советы по Delphi». Версия 1.4.3 от
1.1.2001.
13.
Елманова Н. Электронный учебник: «Советы пользователям Delphi и
C++Builder».
14.
Орлик С Электронный учебник: «Секреты Delphi на примерах».
15.
Озеров В. Электронный учебник: «Советы по Delphi». Версия 1.3.1 от
1.07.2000.
16.
Боровский А. «Программирование в Delphi 2005» ».-СПб.:
«БХВ-Петербург».-2005. - 448с.
17.
Пражский С.М. «Delphi. Учимся на примерах».- К.:«МК-Пресс».-2005,-216с.
18.
Фаронов В.В. «Delphi 6. Учебный
курс».-М.:Издатель Молгачёва С. В.,-2001.-672с.
19.
Коноплянка Р. «Создание оригинальных компонент в среде
Delphi».-К.:НИПФ-«ДиаСофт Лтд.».-1996.-512с.
20.
Сухарёв М.В. «Основы Delphi. Профессиональный подход».-СПб.: «Наука и
Техника».-2004,- 600с.
21.
Ревич Ю.В. «Нестандартные приёмы программирования на Delphi».-СПб.:
«БХВ-Петербург».-2005. - 560с.
Приложение А
unit Lab10;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,
ComCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Button1: TButton;
Panel1: TPanel;
Button2: TButton;
Panel2: TPanel;
Button3: TButton;
StatusBar1: TStatusBar;
Timer2: TTimer;
Label1: TLabel;
Label2: TLabel;
procedure Button2Click(Sender:
TObject);
procedure Button1Click(Sender:
TObject);
procedure Timer1Timer(Sender:
TObject);
procedure FormKeyPress(Sender:
TObject; var Key: Char);
procedure Button3Click(Sender:
TObject);
procedure Timer2Timer(Sender:
TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
count, uncount, x: integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender:
TObject);
begin
Form1.Focused;
Panel2.Visible := true;
Panel2.Top := 0;
Randomize;
Panel2.Caption := Chr(Random(26)+97)
;
count := 0;
uncount := 0;
x := 1;
Label1.Caption := 'Level ' +
IntToStr(x);
Timer1.Enabled := true;
end;
procedure TForm1.FormKeyPress(Sender:
TObject; var Key: Char);
begin
if Panel2.Caption = key then
begin
Inc(count);
StatusBar1.Panels[1].Text :=
IntToStr(count);
Panel2.Top := Panel1.Height;
end;
if count = x * 10 then
begin
Label1.Caption := 'Level ' +
IntToStr(x);
if Timer1.Interval <= 250 then
Timer1.Interval := Timer1.Interval - 25
else
if Timer1.Interval <= 100 then
Timer1.Interval := 100
else
Timer1.Interval := Timer1.Interval -
250;
end;
end;
procedure TForm1.Timer1Timer(Sender:
TObject);
begin
Randomize;
if Panel1.Height > Panel2.Top then
Panel2.Top := Panel2.Top + 20
else
begin
Randomize;
Panel2.Caption := Chr(Random(26)+97);
Panel2.Left := Random(Panel1.Width -
Panel2.Width);
Panel2.Top := 0;
nc(uncount);
StatusBar1.Panels[3].Text :=
IntToStr(uncount)
end;
end;
procedure TForm1.Button3Click(Sender:
TObject);
begin
Timer1.Enabled := False;
Panel2.Visible := False;
ShowMessage(IntToStr(count) + ' times
correctly!')
end;
procedure TForm1.Timer2Timer(Sender:
TObject);
var DateTime: TDateTime;
begin
DateTime := TIME;
StatusBar1.Panels[4].Text :=
DateToStr(Date) + ' ' + TimeToStr(DateTime);
end;
procedure TForm1.Button2Click(Sender:
TObject);
begin
Form1.Close;
end;
end.