Разработка клавиатурного тренажёра
Разработка учебного приложения, играющего роль клавиатурного тренажёра. Установка различных опций. Использование средств Borland C++Builder 6.0. Объектно-ориентированное проектирование и программирование системы. Тестирование и отладка программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.07.2013 |
Размер файла | 730,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Training->SpeedButton43->Font->Size = 14;
Training->SpeedButton43->Font->Style << fsBold;
break;
case 10: // j
Training->SpeedButton30->Font->Color = clRed;
Training->SpeedButton30->Font->Size = 14;
Training->SpeedButton30->Font->Style << fsBold;
break;
case 11: // k
Training->SpeedButton31->Font->Color = clRed;
Training->SpeedButton31->Font->Size = 14;
Training->SpeedButton31->Font->Style << fsBold;
break;
case 12: // l
Training->SpeedButton32->Font->Color = clRed;
Training->SpeedButton32->Font->Size = 14;
Training->SpeedButton32->Font->Style << fsBold;
break;
case 13: // m
Training->SpeedButton19->Font->Color = clRed;
Training->SpeedButton19->Font->Size = 14;
Training->SpeedButton19->Font->Style << fsBold;
break;
case 14: // n
Training->SpeedButton18->Font->Color = clRed;
Training->SpeedButton18->Font->Size = 14;
Training->SpeedButton18->Font->Style << fsBold;
break;
case 15: // o
Training->SpeedButton44->Font->Color = clRed;
Training->SpeedButton44->Font->Size = 14;
Training->SpeedButton44->Font->Style << fsBold;
break;
case 16: // p
Training->SpeedButton45->Font->Color = clRed;
Training->SpeedButton45->Font->Size = 14;
Training->SpeedButton45->Font->Style << fsBold;
break;
case 17: // q
Training->SpeedButton36->Font->Color = clRed;
Training->SpeedButton36->Font->Size = 14;
Training->SpeedButton36->Font->Style << fsBold;
break;
case 18: // r
Training->SpeedButton39->Font->Color = clRed;
Training->SpeedButton39->Font->Size = 14;
Training->SpeedButton39->Font->Style << fsBold;
break;
case 19: // s
Training->SpeedButton25->Font->Color = clRed;
Training->SpeedButton25->Font->Size = 14;
Training->SpeedButton25->Font->Style << fsBold;
break;
case 20: // t
Training->SpeedButton40->Font->Color = clRed;
Training->SpeedButton40->Font->Size = 14;
Training->SpeedButton40->Font->Style << fsBold;
break;
case 21: // u
Training->SpeedButton42->Font->Color = clRed;
Training->SpeedButton42->Font->Size = 14;
Training->SpeedButton42->Font->Style << fsBold;
break;
case 22: // v
Training->SpeedButton16->Font->Color = clRed;
Training->SpeedButton16->Font->Size = 14;
Training->SpeedButton16->Font->Style << fsBold;
break;
case 23: // w
Training->SpeedButton37->Font->Color = clRed;
Training->SpeedButton37->Font->Size = 14;
Training->SpeedButton37->Font->Style << fsBold;
break;
case 24: // x
Training->SpeedButton14->Font->Color = clRed;
Training->SpeedButton14->Font->Size = 14;
Training->SpeedButton14->Font->Style << fsBold;
break;
case 25: // y
Training->SpeedButton41->Font->Color = clRed;
Training->SpeedButton41->Font->Size = 14;
Training->SpeedButton41->Font->Style << fsBold;
break;
case 26: // z
Training->SpeedButton13->Font->Color = clRed;
Training->SpeedButton13->Font->Size = 14;
Training->SpeedButton13->Font->Style << fsBold;
break;
}
}
if (TType == 2)
{
switch (bukva. alfa)
{ case 1: // 1
Training->SpeedButton48->Font->Color = clRed;
Training->SpeedButton48->Font->Size = 14;
Training->SpeedButton48->Font->Style << fsBold;
break;
case 2: // 2
Training->SpeedButton49->Font->Color = clRed;
Training->SpeedButton49->Font->Size = 14;
Training->SpeedButton49->Font->Style << fsBold;
break;
case 3: // 3
Training->SpeedButton50->Font->Color = clRed;
Training->SpeedButton50->Font->Size = 14;
Training->SpeedButton50->Font->Style << fsBold;
break;
case 4: // 4
Training->SpeedButton51->Font->Color = clRed;
Training->SpeedButton51->Font->Size = 14;
Training->SpeedButton51->Font->Style << fsBold;
break;
case 5: // 5
Training->SpeedButton52->Font->Color = clRed;
Training->SpeedButton52->Font->Size = 14;
Training->SpeedButton52->Font->Style << fsBold;
break;
case 6: // 6
Training->SpeedButton53->Font->Color = clRed;
Training->SpeedButton53->Font->Size = 14;
Training->SpeedButton53->Font->Style << fsBold;
break;
case 7: // 7
Training->SpeedButton54->Font->Color = clRed;
Training->SpeedButton54->Font->Size = 14;
Training->SpeedButton54->Font->Style << fsBold;
break;
case 8: // 8
Training->SpeedButton55->Font->Color = clRed;
Training->SpeedButton55->Font->Size = 14;
Training->SpeedButton55->Font->Style << fsBold;
break;
case 9: // 9
Training->SpeedButton56->Font->Color = clRed;
Training->SpeedButton56->Font->Size = 14;
Training->SpeedButton56->Font->Style << fsBold;
break;
case 10: // 0
Training->SpeedButton57->Font->Color = clRed;
Training->SpeedButton57->Font->Size = 14;
Training->SpeedButton57->Font->Style << fsBold;
break;
case 11: // -
Training->SpeedButton58->Font->Color = clRed;
Training->SpeedButton58->Font->Size = 14;
Training->SpeedButton58->Font->Style << fsBold;
break;
case 12: // =
Training->SpeedButton59->Font->Color = clRed;
Training->SpeedButton59->Font->Size = 14;
Training->SpeedButton59->Font->Style << fsBold;
break;
case 13: // \\
Training->SpeedButton60->Font->Color = clRed;
Training->SpeedButton60->Font->Size = 14;
Training->SpeedButton60->Font->Style << fsBold;
break;
case 14: // `
Training->SpeedButton2->Font->Color = clRed;
Training->SpeedButton2->Font->Size = 14;
Training->SpeedButton2->Font->Style << fsBold;
break;
case 15: // [
Training->SpeedButton46->Font->Color = clRed;
Training->SpeedButton46->Font->Size = 14;
Training->SpeedButton46->Font->Style << fsBold;
break;
case 16: // ]
Training->SpeedButton47->Font->Color = clRed;
Training->SpeedButton47->Font->Size = 14;
Training->SpeedButton47->Font->Style << fsBold;
break;
case 17: //;
Training->SpeedButton33->Font->Color = clRed;
Training->SpeedButton33->Font->Size = 14;
Training->SpeedButton33->Font->Style << fsBold;
break;
case 18: // "
Training->SpeedButton34->Font->Color = clRed;
Training->SpeedButton34->Font->Size = 14;
Training->SpeedButton34->Font->Style << fsBold;
break;
case 19: //,
Training->SpeedButton20->Font->Color = clRed;
Training->SpeedButton20->Font->Size = 14;
Training->SpeedButton20->Font->Style << fsBold;
break;
case 20: //.
Training->SpeedButton21->Font->Color = clRed;
Training->SpeedButton21->Font->Size = 14;
Training->SpeedButton21->Font->Style << fsBold;
break;
case 21: // /
Training->SpeedButton22->Font->Color = clRed;
Training->SpeedButton22->Font->Size = 14;
Training->SpeedButton22->Font->Style << fsBold;
break;
case 22: // *
Training->SpeedButton93->Font->Color = clRed;
Training->SpeedButton93->Font->Size = 14;
Training->SpeedButton93->Font->Style << fsBold;
break;
case 23: // +
Training->SpeedButton98->Font->Color = clRed;
Training->SpeedButton98->Font->Size = 14;
Training->SpeedButton98->Font->Style << fsBold;
break;
}
}
};
void __fastcall TTraining:: FormActivate (TObject *Sender)
{
int i;
extern int Time,Lang,Lev;
for (i=0; i<33; i++)
QMistakes [i] = 0;
_SetFont ();
bukva. count = 0;
present = Now ();
randomize ();
ConType (Lang);
bukva. newbukva (Lang);
KeyLetter (Lang);
Timer2->Enabled = true;
Timer1->Enabled = true;
bukva. setXLet (313);
bukva. setYLet (10);
bukva. setEX1EX2 (305,330);
bukva. setEY1EY2 (0,25);
bukva. DrawLetter ();
}
// ---------------------------------------------------------------------------
void __fastcall TTraining:: Timer1Timer (TObject *Sender)
{
int i;
extern int Lang;
Training->Refresh ();
bukva. AddYLet (5);
bukva. AddEY1EY2 (5,5);
bukva. DrawLetter ();
if (bukva. EY2 > 320)
{for (i=0; i<33; i++)
if (bukva. letter == Mistakes [i])
{QMistakes [i] =QMistakes [i] +1;
break;
}
bukva. setXLet (313);
bukva. setYLet (5);
bukva. setEX1EX2 (305,330);
bukva. setEY1EY2 (0,25);
_SetFont ();
bukva. newbukva (Lang);
KeyLetter (Lang);
}
}
// ---------------------------------------------------------------------------
void __fastcall TTraining:: FormKeyPress (TObject *Sender, char &Key)
{
extern int Lang;
if (KeyInput (Lang,Key) == true)
{
bukva. newbukva (Lang);
KeyLetter (Lang);
}
}
// ---------------------------------------------------------------------------
void __fastcall TTraining:: Timer2Timer (TObject *Sender)
{
extern int Time;
unsigned short h,m,s,ms;
Label1->Caption ="";
Label1->Caption = "Прошло " + TimeToStr (Now () - present) + " из "+IntToStr (Time) +" мин. ";
DecodeTime (Now () - present,h,m,s,ms);
if (m == Time)
{Timer1->Enabled=false;
Timer2->Enabled = false;
Training->Refresh ();
ShowMessage ("Ваше время истекло!");
count = bukva. count;
Button1->Visible = true;
}
}
// ---------------------------------------------------------------------------
void __fastcall TTraining:: FormClose (TObject *Sender,
TCloseAction &Action)
{
Timer1->Enabled=false;
Timer2->Enabled = false;
Button1->Visible = false;
}
// ---------------------------------------------------------------------------
void __fastcall TTraining:: Button1Click (TObject *Sender)
{
Diagram->ShowModal ();
Button1->Visible = false;
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
#include <vcl. h>
#pragma hdrstop
#include "UnDiagram. h"
#include "UnTraining. h"
#include "UnOptions. h"
// ---------------------------------------------------------------------------
#pragma package (smart_init)
#pragma resource "*. dfm"
TDiagram *Diagram;
// ---------------------------------------------------------------------------
__fastcall TDiagram:: TDiagram (TComponent* Owner)
: TForm (Owner)
{
}
// ---------------------------------------------------------------------------
void __fastcall TDiagram:: FormActivate (TObject *Sender)
{
extern int Lang;
extern char Mistakes [32];
extern int QMistakes [32];
extern int count;
int i;
if (Lang == 0)
for (i=0; i<33; i++)
{if (QMistakes [i]! = 0)
Series1->Add (QMistakes [i] *100/count,AnsiString (Mistakes [i]) +"-"+FloatToStr (QMistakes [i] *100/count) +"%");
}
if (Lang == 1)
for (i=0; i<26; i++)
{if (QMistakes [i]! = 0)
Series1->Add (QMistakes [i] *100/count,AnsiString (Mistakes [i]) +"-"+FloatToStr (QMistakes [i] *100/count) +"%");
}
if (Lang == 2)
for (i=0; i<23; i++)
{if (QMistakes [i]! = 0)
Series1->Add (QMistakes [i] *100/count,AnsiString (Mistakes [i]) +"-"+FloatToStr (QMistakes [i] *100/count) +"%");
}
}
// ---------------------------------------------------------------------------
void __fastcall TDiagram:: FormClose (TObject *Sender,
TCloseAction &Action)
{
Series1->Clear ();
Training->Close ();
}
// ---------------------------------------------------------------------------
РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ
Приложение Б
(обязательное)
Рисунок 1 - Главное меню программы
Рисунок 2 - Задание настроек
Рисунок 3 - Просмотр справки
Рисунок 4 - Тренинг
Рисунок 5 - Гистограмма ошибок
Размещено на Allbest.ru
Подобные документы
Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.
курсовая работа [294,0 K], добавлен 08.09.2008Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013Описание логической и модульной структуры разрабатываемой программы, используемые в данном процессе основные технические средства. Организация хранения данных в программе, проектирование интерфейса. Тестирование и отладка, листинг готовой программы.
курсовая работа [494,5 K], добавлен 20.06.2012Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.
курсовая работа [191,5 K], добавлен 07.01.2015Описание разрабатываемой программы с точки зрения пользователя. Диаграмма вариантов использования приложения. Объектное представление программы. Разработка класса корабля, прикладного окна и события but. Окно приложения с перемещающимися кораблями.
курсовая работа [207,0 K], добавлен 05.04.2014Структура Android-приложений. Особенности игрового движка. Алгоритмизация и программирование. Список игровых состояний. Настройка, отладка и тестирование программы. Разработка руководства пользователя. Тестирование инсталляции и отображения элементов.
дипломная работа [4,5 M], добавлен 19.01.2017Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.
дипломная работа [1,7 M], добавлен 16.02.2016Объектно-ориентированное проектирование системы, поддерживающей основные функции сотового телефонного аппарата, разработка диаграмм классов с их атрибутами и методами. Спецификации модулей программы, системные требования и тестирование функциональности.
курсовая работа [1,1 M], добавлен 24.01.2012Визуальное проектирование и событийное программирование. Повышение производительности программиста при использовании RAD-систем. Составление алгоритмов, разработка приложения для решения прикладных задач на примере консольных приложений C++ Builder 6.
курсовая работа [258,7 K], добавлен 30.10.2013