Создание приложения "Клавиатурный тренажер"
Создание приложения "Клавиатурный тренажер"
3 Министерство образования и науки Украины Луганский национальный университет имени Тараса Шевченко Ровеньковский факультет Кафедра информационных технологий и систем Курсовой проект на тему: «Создание приложения «Клавиатурный тренажер» Выполнила: студентка 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.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.
|