Примеры программ, выполненных в среде С++ Builder 6.0

 

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

Да конечно, всего этого можно достичь методом проб и ошибок – но вот вопрос какой ценой ?

Здесь представлены примеры простейших программ, созданных в среде C++ Builder 6.0. Они демонстрируют технологию создания программ, возможности среды разработки, назначение компонентов, знакомят с принципами работы с графикой, звуком, базами данных.

 

Базовые компоненты

001. Конвертор. Программа Конвертор (usd2rub.exe) пересчитывает цену из долларов в рубли. Демонстрирует использование компонентов TextBox и Label. Программа спроектирована таким образом, что пользователь может ввести в поля редактирования только правильные данные (числа). Компонент Label предназначен для вывода на поверхность формы.

 

 

5.3kb

002. Сила тока. Программа Сила тока демонстрирует использование компонентов TextBox и Label, а также обработку исключения «деление на ноль».

 

 

5.7kb

003. Сопротивление. Программа Сопротивление вычисляет сопротивление электрической цепи, состоящей из двух резисторов, которые могут быть соединены последовательно или параллельно. Демонстрирует использование компонента RadioButton.

 

 

5.4kb

004. Кофе. Программа Кофе демонстрирует использование компонента CheckBox.

 

 

3.9kb

005. Любимый напиток. Программа Любимый напиток демонстрирует использование компонента ComboBox. Списки компонентов ComboBox2 и ComboBox3 формируются во время работы программы (делает это конструктор формы). Пользователь может добавить элементы в списке компонентов ComboBox2 и ComboBox3, однако элемент в список компонента ComboBox3 добавляется только в том случае, если такого элемента в списке нет.

 

 

5.1kb

006. Электроэнергия. Программа Электроэнергия показывает, как одна функция может обрабатывать события разных, но однотипных компонентов.

 

 

5.4kb

007. ОСАГО. Программа ОСАГО, позволяет рассчитать размер страховой премии, подлежащей уплате по договору обязательного страхования гражданской ответственности. Демонстрирует использование компонента ComboBox, обработку одной функцией событий от нескольких компонентов. Программа спроектирована таким образом, что кнопка ОК доступна только в том случае, если введены все данные, необходимые для расчета.

 

 

6.6kb

008. Калькулятор. Программа Калькулятор позволяет выполнить простейшие расчеты. Следует обратить внимание, что в качестве индикатора используется компонент StaticText.

 

 

5.8kb

009. Калькулятор-2. Программа Калькулятор-2 демонстрирует создание компонентов во время работы программы или, как иногда говорят, «в коде». Кнопки калькулятора – это объединение в массив компоненты SpeedButton. Создание и настройку кнопок выполняет конструктор формы, он же определяет (задает) процедуру обработки события Click. Следует обратить внимание, что объявление массива компонентов SpeedButton и функции обработки события Click находится в объявлении типа формы, в заголовочном файле.

 

8.1kb

010. Секундомер. Программа Секундомер демонстрирует использование компонента Timer.

 

 

5.7kb

011. Доступ в Internet. Программа Доступ в Internet показывает, как запустить Internet Explorer или другой браузер для доступа к веб-странице. Браузер запускается в результате щелчка в поле Labe11.

 

 

5.6kb

012. Вывод справочной информации. Конвертор. Программа Конвертор демонстрирует различные способы отображения справочной информации в формате Wimhelp (файл с расширением hlp). Окно  справки появляется в результате нажатия клавиши <F1> ил щелчка на кнопке Справка. Следует обратить внимание, что при нажатии клавиши <F1> в тот момент, когда курсор находится в одном из полей ввода, в окне справочной системы отображения раздел, поясняющтй назначение того поля, в котором находится курсор.

Справочная информация программы Конвертор состоит из пяти разделов.

 

 

 

11.5kb

013. Вывод справочной информации. Конвертор – 2. Программа Конвертор – 2 демонстрирует различные способы отображения справочной информации в формате HTML (файл с расширением chm). Окно  справки появляется в результате нажатия клавиши <F1> ил щелчка на кнопке Справка, когда курсор находится в одном из полей ввода/редактирования. В последнем случае в окне справочной информации сразу отображается конкретный (нужный) раздел справки. Следует обратить внимание, что отображение справки активизирует процедура обработки события KeyDown, а не KeyPress.

 

 

 

16.8kb

 

 

 

Файлы

014. Погода. Программа Погода добавляет в базу данных, представляющую собой текстовый файл, информацию о температуре воздуха. Каждая строка файла данных meteo.txt содержит дату и значение температуры. Если файла данных в текущем каталоге нет, то программа создает его. Программа спроектирована так, что кнопка ОК доступна только в том случае, если поле Температура содержит данные.

 

 

11.7kb

015. MEdit. Простой редактор текста (medit.exe). Демонстрирует использование компонентов RichEdit, MainMenu, ToolBar, SpeedButton, OpenDialog, SaveDialog, работу с меню, выполнение операций чтения и записи текста в файл

 

 

15kb

 

 

 

Графики

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

 

 

 

 

76kb

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

 

5.3kb

018. График. В окне программы График отображается график изменения курса доллара. Следует обратить внимание, что на графике отображаются не значения, а отклонение от минимально значения ряда. Это делает график наглядным даже в том случае, если разброс значений (разница между минимальным и максимальным значениями) ряда незначительный.

 

 

 

15kb

019. КР диаграмма. В окне программа Круговая Диаграмма отображается диаграмма, которая отображает долю каждой категории в общей сумме. Исходные могут быть представлены как в «готовом виде» (доля каждой категории в общей сумме), так и без предварительной обработки. Во втором случае программа сама вычисляет долю каждой категории. Также выполняется сортировка исходных данных.

 

 

6.1kb

020. Просмотр иллюстраций. Программа Просмотр иллюстраций позволяет файлы формата JPEG, например – фотографии. Выбор рабочей папки (каталог) выполняется в стандартном окне Выбор папки. Иллюстрации можно просматривать по кадрам или в режиме слайд-шоу.  Чистоту смены кадров в режиме слайд-шоу определяет значение свойства Interval таймера.

 

375kb

021. Пинг-понг. Программа демонстрирует, как можно сделать графики интерактивной. В окне программы два объекта: мячик и ракетка, которой при помощи клавиш перемещения курсора управляет игрок. На форме программы только один компонент – Timer.

 

8kb

022. Часы. В окне программы Часы находится изображение идущих часов, которые показывают текущее время.

 

 

6.6kb

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

 

 

80kb

024. Бегущая строка. В этой программе баннер (бегущая строка) загружается из ресурса. Баннер "выплывает" из-за правой границы формы. В момент времени, когда банер достигает центра окна, движение приостанавливается на несколько секунд, а затем - возобновляется.

Создать файл ресурсов можно при помощи утилиты Image Editor.

 

 

 

 

10kb

025. Фоновый рисунок. Программа Фоновый рисунок демонстрирует, как можно получить фоновый рисунок путем многократного вывода битового образа на поверхность формы. Битовый образ загружается из файла, но может быть загружен и из ресурса. Окно программы и битовый образ.

 

 

110kb

026. Олимпийский флаг. Программа олимпийский флаг демонстрирует вывод графики на поверхность формы.

 

 

4.6kb

 

 

 

Мультимедиа

027. MIDI. Программа Успеть за 60 секунд (gone60.exe) демонстрирует использование компонента MediaPlayer для воспроизведения MIDI-файла. Мелодия воспроизводится "по кругу", до тех пор, пока пользователь не угадает число или не истечет время, отведенное на решение задачи.

 

38.2kb

028. CDP. Полнофункциональный проигрыватель CD дисков (cdp.exe).

Контролирует наличие диска в дисководе и его тип.

Демонстрирует использование компонента MediaPlayer,

а также отображение окна программы без границ и заголовка.

 

 

 

18.9kb

029. CD Player. Программа позволяет прослушать компакт-диск. После запуска или после того, как в дисковод будет вставлен компакт-диск, в окне программы отображается количество треков диска и общее время звучания CD, в процессе воспроизведения – номер воспроизводимого трека, его длинна (время) и время от начала воспроизведения. Демонстрирует использование компонента MediaPlayer.

 

 

 

32.7kb

030. Анимация. Программа анимация демонстрирует воспроизведение AVI-анимации при помощи компонента Animate. Анимация загружается из файла в начале работы программы. Процесс воспроизведения активизируется автоматически, в момент появления окна прграммы на экране. Следует обратить внимание, что компонент Animate обеспечивает воспроизведение только простой, не сопровождаемой звуком анимации.

 

 

6.8kb

 

 

 

Базы данных

031. Записная книжка. Программа Записная книжка демонстрирует использование компонентов BDE для работы с одноименной базой данных формата Paradox. База данных состоит из одной единственной таблицы adrbk.db. Программа работает с данными в режиме таблицы и позволяет просматривать, редактировать, добавлять и удалять записи, а также обеспечивает выборку (поиск) информации по содержимому поля Name. Для доступа к базе данных программа использует псевдоним adrbk. Создать псевдоним можно при помощи утилиты BDE Administrator.

 

 

 

 

 

13.1kb

032. Ежедневник. Программа Ежедневник демонстрирует использование компонентов ADO для доступа к базе данных формата Microsoft Access. База данных содержит информацию о запланированных мероприятиях (дата, задача). Программа позволяет вносить в базу данных изменения (добавлять, удалять и редактировать записи), а также обеспечивает выбор информации по запросу – выводит список мероприятий, запланированных «на сегодня», «на завтра» и «на неделю». При запуске программа автоматически выводит список мероприятий, запланированных «на сегодня» или, если программа запущена в пятницу, субботу или воскресенье, «на сегодня и ближайшие дни».

 

 

 

 

16.2kb

 

 

 

Игры и другие полезные программы

033. Сапер. Программа демонстрирует работу с графикой, массивами, вывод справочной информации и показывает, как можно запустить программу доступа в Internet. Окно О программе появляется на экране в результате выбора в меню Справка команды О программе.

 

 

76kb

034. Игра 15. Всем известна игра «15». Вот ее правила. В прямоугольной коробочке находятся 15 фишек, на которых написаны числа от 1 до 15. Размер коробочки – 4*4, таким образом в коробочке есть одна пустая ячейка. В начале игры фишки перемешаны. Задача игрока состоит в том, чтобы, не вынимая фишки из коробочки, выстроить фишки в правильном порядке.

 

 

5.5kb

035. Игра «Собери картинку». Игра Собери картинку. Задача игрока – расположить фишки в правильном порядке. Игра заключается, когда картинка будет собрана. Программа загружает картинку из файла формата BMP, имя которого указано в командной строке запуска программы, или из файла, который находится в каталоге программы. Если в каталоге программы несколько файлов с расширением bmp, то будет загружен первый по порядку файл. При повторной активизации игры в результате выбора в строке меню команды Новая игра загружается следующий файл с расширением bmp.

 

 

 

478kb

036. Парные картинки. Игра Парные картинки развивает внимание. Вот ее правила. Игровое поле разделено на клетки, за каждой из которых скрыта картинка. Картинка парные, т.к. на игровом поле есть две клетки, в которых находятся одинаковые картинки. В начае игры всеклетки «закрыты». Щелчек левой кнопкой мыши «открывает» клетку, в клетке появляется картинка. Теперь надо найти клетку, в которой находится такая же картинка, как и в открытой клетке. Щелчок по другой клетке открывает вторую картинку.

Программа, реализующая игру Парные картинки, демонстрирует работу с графикой. В приведенной реализации игры все картинки квадратные и находятся в одном файле. Это позволило сделать программу «интелектуальной2 – размер игрового поля (количество клеток по горизонтали и ертикали) определяется количеством картинок в файле: зная высоту и ширину картинки в файле, программа вычисляет размер и количество картинок и устанавливает соответствующий размер игрового поля.

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

 

 

 

 

 

358kb

037. Экзаменатор. Программа экзаменатор позволяет автоматизировать процесс тестирования. В окне программы отображается текст – последовательность вопросов, на которые используемый должен ответить путем выбора правильного ответа. В рассматриваемой программе вопросы загружаются из файла. Имя файла теста передается программе при ее запуске – указывается в качестве параметра команды запуска.

496kb

038. Календарь. Программа Календарь выводит изображение календаря на текущий месяц. Имеется возможность задать праздничные дни. Демонстрирует вывод графики на поверхность формы, работу с функциями манипулирования датами. Как видно, заголовок окна во время работы программы не отображается (значение свойства BorderStyle равно bsNone), однако пользователь все-таки может переместить окно, «захватив» мышью сам календарь. Непосредственное перемещение календаря (окна программы) выполняет функция обработки события MouseUp, которое возникает в момент отпускания кнопки мыши.

 

 

 

12.5kb

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

 

 

 

 

45.3kb

040. Очистка диска. Очистка диска (clear.exe).

Программа удаляет ненужные, созданные в процессе компиляции проектов C++Builder, файлы (obj, tds) и резервные копии (~bpr, ~dfm, ~h, ~cpp) из указанного пользователем каталога и всех его подкаталогов.

Для выбора каталога используется стандартное окно Обзор папок.

 

 

6.8kb

041. Печать. Программа Счет позволяет распечатать (вывести на принтер) счет.

 

 

11.2kb

 

 

 

Дополнительные программы

042. Spending. Программа Расходы (spending.exe) обеспечивает работу с базой данных, которая представляет собой текстовый файл (tabl.grd). Для редактирования и просмотра данных используется компонент StringGrid.

Внимание! Каталог проекта называется Spending а не Расходы, так как при испозовании в имени каталога буквы Ы, компилятор не может выполнить компиляцию.

 

 

13.2kb

043. Звуки Windows. Программа Звуки Windows (WinSound.exe) позволяет прослушать звуковые файлы (форматов WAV, RMI ,и MID), которые находятся в каталоге Windows\Media. Демонстрирует использование компонента MediaPlayer.

 

 

5.77kb

044. Кофе. Программа Кофе демонстрирует использование компонента CheckBox.

 

 

3.95kb

045. Просмотр анимации.

 

 

88.8kb

046. Фунт. Программа Фунты-килограммы позволяет пересчитать вес из фунтов в килограммы. Кнопка Пересчет доступна только в том случае, если пользователь ввел исходные данные.

 

 

5.28kb

 

 

Список используемой литературы

1. Культин Н. Б. C++ Builder в задачах и примерах. – СПб.: БХВ – Петербург, 2007. – 336 с.: ил.