Міністерство освіти і науки України
Луганський національний університет імені Тараса Шевченка
Ровеньківський факультет
Кафедра інформаційних технологій та систем
Курсовий проект
на тему: В«Створення додаткаВ« Клавіатурний тренажер В»
Виконала:
студентка 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В»// .cydsoft.com/vr-online.
6. Дарахвелидзе П.Г., Марков Є.П.: В«Програмування в Delphi 7В». - СПб.: В«БХВ-ПетербургВ», 2003. -784 С.
7. Архангельський А.Я. Електронний підручник В«100 компонентів загального призначення бібліотеки Delphi 5 В».2002.
8. Тейлор Д., ПенманДж. - В«Delphi 3: бібліотека програмістаВ».-СПб.: В«ПітерВ».-1998р. -568с.
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
Inc (x);
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.