- •В.В. Чуркин лабораторные работы по программированию
- •Содержание
- •Введение
- •Основное окно иср
- •Лабораторная работа 1
- •Задания
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды обработчиков событий и функций
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 2
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 3
- •Задание
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Заголовочный файл
- •Файл реализации
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 4
- •Введение
- •Алгоритмы шифрования и дешифрования
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Лабораторная работа 5
- •Введение
- •Алгоритмы
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Диспетчеризация действий на основе компонента ActionList
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Лабораторная работа 6
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания (стеки, очереди)
- •Лабораторная работа 7
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 8
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Лабораторная работа 9
- •Введение
- •Проектирование приложения. Выбор, размещение и задание свойств компонентов. Коды классов, функций и обработчиков событий
- •Тестирование и использование приложения
- •Контрольные вопросы
- •Задания
- •Библиографический список
Основное окно иср
Основное окнопоявляется на экране после запускаC++Builder6.
В верхней части окна ИСР находится полоса главного менюГлавное меню имеет следующие разделы (меню)
Файл – позволяет создать новый проектновую формуоткрыть ранее созданный проект или формусохранить проекты или формы в файлах с заданными именами
Правка – позволяет выполнять обычные для приложенийWindowsоперации обмена с буферомClipboard, а также дают возможность выравнивать группы размещенных на форме компонентов по размерам и местоположению
Поиск – позволяет осуществлять поиск и контекстные замены в коде приложения
Вид –позволяет вызывать на экран различные окнанеобходимые для проектирования
Проект –позволяет добавлять и убирать из проекта формызадавать опции проектакомпилировать проект без его выполнения и тд
Запуск – дает возможность выполнять проект в нормальном или отладочном режимахпродвигаясь по шагамостанавливаясь в указанных точках кодапросматривая значения переменных и тд
Компонент –позволяет создавать и устанавливать новые компонентыконфигурировать палитру компонентовработать с пакетами
База данных –позволяет использовать инструментарий для работы с базами данных
Инструменты –позволяет настраивать ИСР и выполнять различные вспомогательные программынапример: вызывать редактор изображенийработать с программамиконфигурирующими базы данных и тдКроме тогов это меню можно включать любые разделывызывающие те или иные приложения
Окно –позволяет ориентироваться среди массы оконобычно одновременно открытых в процессе проектирования и переключаться в нужное окно
Помощь –содержит разделыпомогающие работать со встроенной вC++Builderсправочной системой
Помимо главного меню в C++Builderимеется система контекстных всплывающих менюкоторые появляютсяесли пользователь поместил курсор мыши в каком-то окне или на каком-то компоненте и щелкнул правой кнопкой мышиБольшинство разделов контекстных меню дублирует основные разделы главного менюНо есть и разделыотсутствующие в главном меню и позволяющие ускорить программирование
Ниже полосы главного меню в окне ИСР расположены две инструментальные панелиЛевая панель (состоит из нескольких панелей) содержит два рядабыстрых кнопокдублирующих некоторые наиболее часто используемые команды менюПравая панель содержитпалитру компонентовбиблиотеки визуальных компонентовПалитра компонентов содержит ряд страницзакладки которых видны в ее верхней части
Правее полосы главного меню размещена еще одна небольшая инструментальная панельсодержащая выпадающий список и две быстрые кнопкиЭто панель сохранения и выбора различных конфигураций окнаИСРкоторые пользователь может создавать и запоминать
В основном поле окна слева видны два окна: сверху – Дерева Объектов, под ним –Инспектора Объектов(Инспектора проекта). Окно Дерева Объектовбудет отображать иерархическую связь визуальных и невизуальных компонентов и объектов проектируемого приложенияАИнспектор Объектов– это основной инструментс помощью которого пользователь задает свойства компонентов и обработчики событийПравее этих окон видно окно пустой формыготовой для переноса на нее компонентовПод ним расположено окноРедактора КодаЧтобы увидеть егоокно формы необходимо сдвинуть
Проектирование приложения – расчет по формуле z=f(x,y)
Создайте для проекта приложения каталог (папку Windows) с именем ТЕХН_ПРОГР и запустите C++Builder 6
Создайте новый проект командой Файл|Новый|Приложение
Сохраните файл модуля и проект командой Файл|Сохранить все. Во время работы над проектом удобно использовать соответствующую быструю кнопку При первом сохранении C++Builder спросит сначала имя файла сохраняемого модуля а затем – имя головного файла проекта Файл модуля и головной файл проекта имеют одинаковое расширение .cpp и поэтому они должны различаться именами чтобы не затереть на диске друг друга Итак файлу модуля дайте имя Formula а файлу проекта – PR_Formula В последующих сеансах работы можно открыть сохраненный проект командой Файл|Открыть проект ( или Повторно открыть).
Перейдите в Инспектор Объектов щелкнув левой кнопкой мыши на свойстве Caption (надпись) Данное по умолчанию значение Form1 свойства Caption замените на значение РАСЧЕТ ПО ФОРМУЛЕ Перейдите в форму щелкнув на ней левой кнопкой
В процессе первого проектирования приложения полезно иметь в качестве справки результат проектирования, представленный на рис.1.
Рис.1 – результат проектирования
Перенесите па пустую форму кнопку Button со страницы Стандарт палитры компонентов Для этого выделите пиктограмму кнопки (она седьмая слева) При этом первая слева кнопка-указатель приобретет вид ненажатой кнопки Это означает намерение поместить компонент (в данном случае кнопку) на форму Если нажать кнопку-указатель то это будет означать отказ от размещения выбранного компонента Итак выделив пиктограмму кнопки щелкните курсором мыши в нижней части формы посредине На форме появится кнопка которой C++Builder присвоит имя по умолчанию – Button1. Теперь свойствам перенесенного на форму компонента – кнопке присваивают нужные значения (Во время присваивания компонент должен оставаться выделенным те окруженным рамкой с маркерами Для выделения компонента достаточно щелкнуть на нем левой кнопкой мыши Для удаления ошибочно перенесенного на форму компонента нужно выделить его и нажать клавишу Delete.) Перейдите в Инспектор Объектов и измените ее свойство Caption (надпись) которое по умолчанию равно Button1 на РАСЧЕТ Установите свойство кнопки Height (высота) равным 30 Раскройте двойным щелчком свойство Font (шрифт) установите свойство шрифта Height (высота) равным 10 затем также двойным щелчком раскройте подсвойство Style (стиль) и установите в true свойство fsBold (жирный) Затем перейдите в форму щелкнув на ней курсором мыши Выделение с кнопки будет снято
Над кнопкой РАСЧЕТ поместите на форме панель Panel1 На странице Стандарт палитры компонентов пиктограмма панели – вторая справа Результат расчета по формуле будем выводить в панель и поэтому перейдя в Инспектор Объектов очистите свойство Caption у панели Высоту шрифта установите равной 20 Поварьируйте такими свойствами панели как BevelInner и BevelOuter, которые определяют вид (утопленный – bvLowered или выпуклый – bvRaised) основного поля и рамки панели Установите BevelInner = bvLowered и BevelOuter = bvRaised.
Над панелью поместите метку Label1 (на странице Стандарт – четвертая слева) Укажите на метке надпись РЕЗУЛЬТАТ жирным шрифтом высотой 20
Перенесите в верхнюю часть формы со страницы Дополнительно два окна редактирования с присоединенными к ним метками LabeledEdit расположив их на одной горизонтали Измените надписи в метках компонентов LabeledEdit на ЗНАЧЕНИЕ X и ЗНАЧЕНИЕ Y соответственно Для этого щелкните на символе ‘+’ в свойстве EditLabel этих компонентов и измените надпись в свойстве Caption раскрывшихся списков свойств меток на ЗНАЧЕНИЕ X и ЗНАЧЕНИЕ Y соответственно Задайте для меток жирный шрифт высотой 10 Закройте свойство EditLabel, щелкнув на символе ‘-’ перед этим свойством. Затем высоте шрифта присвойте значение 10, а свойству Text компонентов - значения 1,3 и 5,6 соответственно
Выше окон редактирования с метками на одной вертикали с кнопкой панелью и меткой перенесите на форму еще одну метку Label2 в свойстве Caption которой запишите программируемую формулу так чтобы она легко читалась на экране
Выделите кнопку РАСЧЕТ на форме щелкнув на ней курсором мыши Перейдите в Инспектор Объектов откройте в нем страницу событий (События) найдите (второе сверху) событие кнопки OnClick (щелчок) и сделайте двойной щелчок в окне справа от имени этого события Это стандартный способ задания обработчиков любых событий Но перейти в обработчик события OnClick (только этого события) можно и иначе: достаточно сделать двойной щелчок на кнопке В обоих случаях окажетесь в окне Редактора Кода и увидите там функцию с заголовком который складывается из имени класса формы (TForm1), имени компонента (Button1) и имени события без префикса On (Click). Курсор находится в позиции с которой вписывается обработчик события Например в случае формулы
он может выглядеть так (курсив):
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double x,y,z;
x=StrToFloat(LabeledEdit1->Text);
y=StrToFloat(LabeledEdit2->Text);
z=(exp(x*x+2.37)-pow(x,1.5))/sqrt(fabs(y*y*y+atan2(y,x)));
Panel1->Caption="z="+FloatToStr(z);
}
Перейдите в этом файле выше и после директивы #include”Formula.h” добавьте директиву #include <math.h>.
Сохраните проект быстрой кнопкой Сохранить все и запустите приложение на выполнение командой Запуск|Запустить или нажмите соответствующую быструю кнопку или нажмите «горячую» клавишу F9. После недолгой компиляции сопровождающейся временным появлением на экране окна компилятора появится окно приложения Щелкнув на кнопке РАСЧЕТ в панели получите результат выполнения приложения (Рис.2) Очевидно, нужен форматированный вывод результата. Для перехода в окно Редактора Кода закройте окно с результатом щелчком на крестике в правом верхнем углу формы.
Введите форматированный вывод в строку в обработчике Для этого используется функция FloatToStrF с синтаксисом:
System::AnsiString FloatToStrF(Extended Value,
TFloatFormat Format, int Precision, int Digits).
Число Value функция преобразует в строку с помощью формата типа TFloatFormat с синтаксисом: enum TFloatFormat{ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency};
Рис.2 – результат выполнения без форматирования
Возможные значения формата определяют следующие правила форматирования:
ffGeneral |
Основной числовой формат Число преобразуется по формату с фиксированной точкой или научному в зависимости от того какой из них оказывается короче Начальные нули удаляются десятичная точка ставится только при необходимости Фиксированный формат используется если число разрядов слева от точки не больше указанной точности Precision и если значение не меньше 000001. В противном случае используется научный формат в котором параметр Digits определяет число разрядов степени – от 0 до 4 |
ffExponent |
Научный формат Число преобразуется в строку вида “–d.ddd…E+dddd” Общее число цифр включая одну перед десятичной точкой задается параметром Precision. После символа “E” всегда следует знак “+” или “–“ и до четырех цифр Параметр Digits определяет минимальное число разрядов степени – от 0 до 4 |
ffFixed |
Формат с фиксированной точкой Число преобразуется в строку “–ddd.ddd…” По крайней мере одна цифра всегда предшествует десятичной точке Число цифр после десятичной точки задается параметром Digits который может лежать в пределах от 0 до 18 Если число разрядов слева от десятичной точки больше указанного параметром Precision то используется научный формат |
Соответствующую строку в обработчике измените следующим образом:
Panel1->Caption=”z=”+FloatToStrF(z,ffExponent,5,2);
После ввода командыСохранить все запустите приложение на выполнение (Рис.3).
Рис.3 – результат выполнения с форматированием
Теперь в окна редактирования можно вводить значения и(между целой и дробной частью числа ставьте запятую!) и получать результатнажимая на кнопкуРАСЧЕТ Поэкспериментируйте с форматамиffGeneralиffFixed.
Выйдите из среды C++Builder, щелкнув на крестике в правом верхнем углу формы.