к оглавлению

Программа обучения детей азбуке

Здесь рассказывается о создании в среде разработки Borland C++ Builder 6 учебной программы с применением некоторых компонентов и мультимедийных функций.


Создадим одну программу, предназначенную для обучения детей азбуке. Интерфейс, придуманный мною для этой программы, довольно прост. Программа будет иметь только одно окно, на котором разместятся все буквы русского алфавита и один рисунок. На рис. 19.1 показано окно этой программы.

 

 

Окно программы

Рис. 19.1. Окно программы

 

При работе с данной программой после щелчка левой кнопки мыши по любой из букв на экране появляется рисунок предмета (зверька, игрушки), название которого начинается с этой буквы или содержит ее. Одновременно через акустику компьютера воспроизводится название буквы.


Приступим к созданию такой программы. Запустите среду разработки Borland C++ Builder 6 и создайте новый проект с помощью команд File New | Application. Сразу же сохраните проект с помощью команд File | Save Project As на любом диске, создав для этого отдельную папку (каталог) с произвольным названием, например ABC. Программный модуль сохраните с именем Uabc.cpp, а сам проект — с именем abc.bpr.
Поместите на форму Form1 проекта компонент с названием Image 1 из вкладки Additional. Данный компонент необходим в программе для отображения на экране рисунков из загружаемых файлов. Замените свойство AutoSize компонента Image1 с false на true, для того чтобы его размер автоматически изменялся под размер отображаемого рисунка. Затем поместите на форму компонент Label1 из вкладки Standard палитры компонентов. Измените свойство Caption данного компонента на Аа (большая и маленькая русская буква а). Откройте свойства Font компонента Label1 и приведите их в соответствие со свойствами, изображенными на рис. 19.2.

 

Свойства Font компонента Label1

Рис. 19.2. Свойства Font компонента Label1


Скопируйте компонент Label 1 на форме 32 раза с помощью команд Edit Сору и Edit Paste контекстного меню. При выделении и копировании можно пользоваться операциями для группы элементов, что значительно ускоряет процесс копирования. В результате на форме должно быть создано 33 компонента с названием от Labe1 до Label32. Измените свойство Caption (Заголовок) скопированных элементов в соответствии с буквами русского алфавита от Бб до Яя. Для облегчения данной операции воспользуйтесь табл. 19.1, в которой приведено соответствие букв их порядковому номеру в русском алфавите.

 

Таблица 19.1. Соответствие букв их порядковому номеру в русском алфавите

     Номер Буква    
     Номер Буква    
     Номер Буква     
     1 А    
     12 К    
     23 Х    
     2 Б    
     13 Л    
     24 Ц    
     3 В    
     14 М    
     25 Ч    
     4 Г    
     15 Н    
     26 Ш    
     5 Д    
     16 О    
     27 Щ    
     6 Е    
     17 П    
     28 Ъ    
     7 Ё    
     18 Р    
     29 Ы    
     8 Ж    
     19 С    
     30 Ь    
     9 З    
     20 Т    
     31 Э    
     10 И    
     21 У    
     32 Ю    
     11 Й    
     22 Ф    
     33 Я     

 

Измените красный цвет свойства Font для согласных букв на синий цвет. Как известно, в русском алфавите 10 гласных и 23 согласных буквы.
Теперь щелкните по компоненту Label1 левой кнопкой мыши и в открывшемся окне инспектора кода введите текст программы, изображенной на рис. 19.3.

 

Окно инспектора кода

Рис. 19.3. Окно инспектора кода

 

Причем заготовка функции, создаваемая автоматически самой средой разработки и состоящая из строк, приведенных в листинге 19.1, уже будет присутствовать в вашей программе.

 

Листинг 19.1. Заготовка функции

void __fastcall TForm1::Label1Click(TObject *Sender)
{
}

 

Вам останется лишь добавить строку комментариев

//---Буква А-----------------------------------------------------

 

перед функцией и строки команд

 

Image1->Picture->LoadFromFile("PICTURE/1.bmp");
PlaySound("SOUND/1.wav",0,SND_ASYNC);

 

между фигурными скобками функции.


Первая строка команд будет изменять свойство Picture компонента Image1 при выполнении программы путем загрузки файла 1.bmp из каталога PICTURE после щелчка левой кнопкой мыши по данной букве.
Вторая строка состоит из одной мультимедийной команды, с помощью которой будет воспроизводиться звуковой файл 1.wav, расположенный в каталоге SOUND. Естественно, что эти файлы с рисунком и звуком необходимо будет создать самостоятельно и поместить в соответствующие подкаталоги проекта с названиями PICTURE и SOUND, которые необходимо создать в основном каталоге проекта. Borland C++ Builder 6 позволяет загружать звуковые файлы в формате WAV и файлы рисунков — в форматах BMP, WMF или JPG. Поэтому при создании данных файлов их необходимо сохранять только в таких форматах. Всего нужно будет создать 33 файла с рисунками и 33 звуковых файла: по количеству букв русского алфавита. Имена этих файлов должны носить названия от 1 до 33. Давать этим файлам имена по названию русских букв нежелательно, поскольку среда разработки является англоязычной, и при использовании таких названий в дальнейшем могут возникнуть непредсказуемые проблемы.


При создании звуковых файлов я рекомендую записать звуки букв, произносимые самим ребенком, который будет затем обучаться азбуке по создаваемой нами программе. В этом случае ему будет интересно слышать собственный голос, и процесс изучения букв станет интересен. Для детей такой процесс обучения превратится в своеобразную игру.

 

Неплохо было бы, чтобы ребенок сам нарисовал рисунки к данной программе. Тогда при изучении азбуки он будет узнавать не только свой голос, но и свои рисунки.

 

Звуковые файлы легко создаются с помощью программы звукозаписи sndrec32.exe, входящей в состав стандартных программ операционной системы Windows. Данная программа запускается с помощью команд Пуск | Программы | Стандартные | Развлечения | Звукозапись. Рисунки можно создать с помощью любого графического редактора. Для этих целей подойдет простейший графический редактор mspaint.exe. также входящий в состав стандартных программ операционной системы Windows и вызываемый командами Пуск | Программы | Стандартные | Paint. Фон рисунков лучше всего сделать прозрачным или серым, для того чтобы они сливались при отображении с фоном формы программы.
Вставьте в начало программы строку подключения библиотеки мультимедийных функций в виде #include   <rnmsystem.hpp>. эти функции необходимы нашей программе для выполнения команд проигрывания звуковых файлов. Окончательный вид заголовка программы будет таким, как в листинге 19.2.

 

Листинг 19.2. Окончательный вид заголовка программы

//---------------------------------------------------------------------------

#include
#pragma hdrstop
#include
#include "Uabc.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

 

 

Теперь откройте форму Form1 программы и замените ее свойство Caption на заголовок Азбука. Разверните форму на весь экран и разместите все компоненты на форме в соответствии с рис. 19.1.
Создайте функции обработки для каждой из оставшихся 32-х букв, вызывая для этого инспектор кода щелчком левой кнопки мыши по букве, и скопируйте строки программы, приведенные для буквы А (компонент Label1), в функцию каждой буквы. Замените в скопированных строчках комментарии и имена файлов в соответствии с названием буквы. В результате у вас должна получиться программа, состоящая из строк, похожих на строки, приведенные в листинге 19.3.

 

Листинг 19.3. Строки программы

 

TForm1 *Form1;

//----------------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//- Буква А ---------------------------------------------------------------------

void __fastcall TForm1::Label1Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/1.bmp");

PlaySound("SOUND/1.wav",0,SND_ASYNC);

}

//--Буква Б-----------------------------------------------------------------------

void __fastcall TForm1::Label2Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/2.bmp");

PlaySound("SOUND/2.wav",0,SND_ASYNC);

}

//--Буква В-------------------------------------------------------------------------

void __fastcall TForm1::Label3Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/3.bmp");

PlaySound("SOUND/3.wav",0,SND_ASYNC);

}

...

и т.д.

//--Буква Я-------------------------------------------------------------------------

void __fastcall TForm1::Label33Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/33.bmp");

PlaySound("SOUND/33.wav",0,SND_ASYNC);

}

//----------------------------------------------------------------------------------

 

Отличие может быть в расширениях файлов рисунков, поскольку формат этих файлов может быть одним из трех разрешенных, о чем было сказано ранее.
Для изменения значка программы необходимо нарисовать его с помощью инструментальной программы графического редактора Image Editor, встроенной в Borland C++ Builder 6 и загрузить этот значок через свойства проекта в программу. О том, как это сделать, было рассказано при описании создания программы timedate.
Теперь необходимо сохранить проект с помощью горячих клавиш <Ctrl>+<S> и выполнить его трансляцию и запуск с помощью клавиши <F9>. Обратите внимание на что, что при раскрытой на весь экран форме быстрые кнопки и главное меню среды разработки становятся недоступны; в этом случае для выполнения команд удобно использовать горячие клавиши.
Если при создании программы не было допущено ошибок, то она сразу начнет работать по приведенному в начале главы алгоритму. Если в программе встретятся ошибки, внесенные вами при ее создании, воспользуйтесь встроенным в среду разработки отладчиком. При необходимости можно полностью свернуть форму. Вновь отобразить форму на экране можно с помощью комбинации клавиш <Shift>+<F12>.
Для практики создайте программу для обучения английскому алфавиту по аналогии с программой, описанной здесь. Уверен, для тех, кто смог самостоятельно повторить создание программы обучения русской азбуке, решение этой задачи не составит особого труда.

к оглавлению

Знаете ли Вы, что Polymorphism, полиморфизм в объектно-ориентированном программировании - это способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution