Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP Lab 1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Національний університет “львівська політехніка” Візуальне програмування при об’єктно-орієнтованому підході

М Е Т О Д И Ч Н І В К А З І В К И

до виконання лабораторних робіт з дисципліни

“Об’єктно-орієнтоване програмування”

для студентів базового напрямку "Програмна інженерія"

Затверджено

на засіданні кафедри

програмного забезпечення.

Протокол № ___ від ______ 2009 р.

Львів-2009

Візуальне програмування при об’єктно-орієнтованому підході: Методичні вказівки до виконання лабораторних робіт з дисципліни “Об’єктно-орієнтоване програмування” для студентів базового напрямку “Програмна інженерія” / Укл.: Т. О. Коротєєва, Р. Б. Тушницький, Т. О. Муха. – Львів: Видавництво Національного університету “Львівська політехніка”, 2009. – 54 с.

Укладачі Коротєєва Т.О., канд. техн. наук, доц.,

Тушницький Р.Б., асист.,

Муха Т.О., асист.

Відповідальний за випуск Левус Є.В., канд. техн. наук, доц.

Рецензенти Мельник Р.А., д-р. техн. наук., проф.,

Муха І.С., канд. техн. наук, доц.

Вступ

Методичні вказівки містять теоретичні відомості стосовно основних понять візуального програмування, приклади використання базових компонент Borland C++ Builder 6, а також контрольні питання та завдання до лабораторних занять.

Метою виконання лабораторних завдань студентами є освоєння середовища розробки програмного забезпечення, в той же час поглиблення знань з фундаментальних понять програмування та теорії обчислювальних процесів та структур.

Методичні вказівки забезпечують вивчення вступного курсу до візуального програмування і рекомендуються для початківців у цій галузі програмування. Назви службових слів для наглядного сприйняття текстів виділено жирним шрифтом.

Лабораторна робота № 1

Тема. Ознайомлення із середовищем розробки Borland C++ Builder 6. Створення проекту та налаштування його властивостей.

Мета. Засвоїти принцип візуального програмування шляхом створення та налаштування проекту.

Теоретичні відомості.

Інтерфейс Borland C++ Builder називають середовищем швидкої розробки застосувань RAD (Rapid Application Development) або середовищем візуальної розробки. Таку назву цей інтерфейс отримав за те, що створення застосування в ньому зводиться в основному до простого конструювання вікна майбутнього застосування із набору готових компонент, а більшу частину стандартних операцій виконує комп’ютер.

1.1. Огляд cередовища розробки Borland C++ Builder 6. Середовище C++ Builder умовно розділяють на наступні частини: вікно інспектора об’єктів (Object Inspector) (рис. 1, а), вікно дерева об’єктів (Object TreeView) (рис. 1, б), вікно класів (рис. 1, в), палітра інструментів (рис. 1, г), вікно редактору коду (рис. 1, д), дизайнер форми (рис. 1, е).

Палітра інструментів містить закладки із набором компонент. Виділяють візуальні (видимі при запуску застосування) та невізуальні компоненти. Окрім стандартних компонент є можливість імпортувати компоненти сторонніх розробників, або створити власну компоненту.

Інспектор об’єктів містить в собі закладку властивостей (Properties, рис. 2, а) та подій (Events, рис. 2, б). Призначення інспектора об’єктів – редагування властивостей об’єктів (форм та компонент) під час розробки застосування. З його допомогою можна вказати початкове значення об’єктів та присвоїти обробники подій. Властивості та події, що дозволяють зв’язати інші компоненти із поточною, в інспекторі об’єктів виділено червоним коліром.

Рис. 1. Інтерфейс Borland C++ Builder 6:

а – вікно інспектора об’єктів (Object Inspector),

б – вікно дерева об’єктів (Object TreeView), в – вікно класів,

г – палітра інструментів, д – вікно редактору коду, е – вікно форми (Form)

а б

Рис. 2. Інспектор об’єктів (Object Inspector):

а – закладка властивостей (Properties), б – закладка подій (Events)

У верхній частині вікна інспектора розміщено поле вибору об’єктів, в якому відображається назва вибраного об’єкта. Для вибору нового об’єкта потрібно відкрити випадаючий список, вибравши кнопку із стрілкою, а потім необхідний об’єкт із списку. Після цього можна редагувати властивості вибраного об’єкта. Інший спосіб вибору об’єкта – клік мишкою на об’єкті у формі. Третій спосіб полягає у виборі потрібного об’єкту за назвою у вікні дерева об’єктів (Object TreeView) (рис. 3).

 Рис. 3. Дерево об’єктів (Object TreeView)

Вікно дерева об’єктів містить назви всіх компонент, розміщених на поточній формі.

На закладці властивостей інспектора об’єктів розміщено всі неприховані властивості вибраного об’єкту. Зліва відображається назва властивості, а справа – її значення. Властивості можуть бути вкладені із позначенням «+» в квадраті лівіше назви властивості. Для їх розкриття необхідно клікнути на даному плюсу.

На закладці подій (Events) розташовано список подій, на які може реагувати об’єкт. Ця закладка дозволяє зв’язати об’єкт із подіями, які відбуваються в момент виконання застосування. Закладка подій теж розділена на дві частини. Ліва частина містить назву події, а права – назва методів їх обробки, або простіше – функцій обробки. Для створення обробника подій потрібно двічі клікнути лівою кнопкою миші в правій частині навпроти назви вибраної події. При цьому з’явиться вікно редактора коду, в якому автоматично створиться заготовка тексту коду обробника подій.

В результаті при виникненні події для вибраного об’єкту буде виконано дану підпрограму. Наприклад, подія OnClick означає клік лівою кнопкою миші на об’єкті.

1.2. Організація проекту в Borland C++ Builder 6. Проектом називається група файлів, що необхідні для створення кінцевого виконуючого застосування. Розглянемо типи файлів що входять до звичайного проекту із користувацькими вікнами на C++ Builder (див. табл. 1).

Таблиця 1. Основні файли проекту

Файл

Призначення

Файл проекту (Project.cpp)

C++ Builder створює файл Project.cpp для головної функції WinMain, що ініціює програму, створює головну форму та запускає її на виконання.

Файл опцій проекту (Project.bpr)

Містить налаштування опцій проекту і вказівки стосовно того, які файли і з якими опціями повинні компілюватися і компонуватися в проект. Файл зберігається у форматі XML.

Файл ресурсів проекту (Project.res)

Двійковий файл, що містить ресурси проекту: піктограми, курсори і т.д. За замовчуванням цей файл містить тільки піктограму проекту. Він може доповнюватись за допомогою редактора зображень (Image Editor).

Файл реалізації модуля (Unit.cpp)

Кожній формі, що створюється, відповідає текстовий файл реалізації модуля, що використовується для зберігання коду. Розробники можуть самі створювати модулі, що не пов’язані з формами.

Файл заголовку модуля (Unit.h)

Кожній формі що створюється відповідає файл заголовку з описом класу форми. Файли заголовків можуть створюватися розробником.

Файл форми (Unit.dfm)

Двійковий або текстовий файл, який C++ Builder створює для зберігання інформації про форму. Розробник може проглядати цей файл або в текстовому вигляді, або у вигляді форми. Кожному файлу форми відповідає файл модуля (Unit.cpp).

Файли резервних копій (.~bpr, .~dfm, .~cpp, .~h)

Файли резервних копій для файлів проекту, форми, реалізації модуля і файлу заголовку відповідно. Розробник може повернутися до попереднього варіанту проекту, змінивши відповідне розширення.

Файл, що виконується (Project.exe)

Файл застосування, що виконується. Він є автоматичним виконуваним файлом, для роботи якого більше нічого не потрібно, крім випадків коли ви використовуєте бібліотеки, що містяться в пакетах, DLL, OCX і т.д.

Об’єктний файл модуля (Unit.obj)

Відкомпільований файл модуля (Unit.cpp), який компонується в кінцевий .exe-файл.

Файл відлагодження

(Project.tds)

Файл містить в собі інформацію про проект для відлагодження, окремо від ехе-файлу. Використовується у тих випадках, коли є зібраний ехе-файл і потрібно відлагодити роботу проекту у відлагоджувачі (Debuger). Щоб не пересилати всі файли, зібрані у відлагоджуваному варіанті, відсилається лише цей файл. Потім запускається відлагоджувач із опцією завантаження символів відлагодження. Щоб отримати інформацію для відлагодження із ехе-файлу і зберегти його в *.tds є спеціальна утиліта tdstrp32.exe.

Для раціонального використання місця на диску, можна видаляти файли резервних копій, об’єктні файли та файл відлагодження, оскільки компілятор створить їх за необхідності ще раз.

Вміст файлу Project.cpp:

#include <vcl.h>

#pragma hdrstop

USEFORM("Unit1.cpp", Form1);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

Як видно з коду, створюється форма з іменем Form1, яка буде показана при запуску застосування. Користувач може програмним чином створити власні форми і в певний момент їх показати. Якщо необхідно при запуску застосування показати дві або більше форм, то ці форми можна вказати у його властивостях, або безпосередньо в коді даного файлу. Об’єкт проекту Application містить низку методів та властивостей для задання загального вигляду додатку, які можна задати безпосередньо в даному файлі.

Зауважимо, що компілятор додає за замовчуванням код обробки помилок (блок try … catch) як визначених, так і невідомих.

Середовище C++ Builder володіє зручним інтерфейсом підказок (intelligence). Для виклику підказки необхідно натиснути ctrl+пробіл. Приклад відображення підказки, що містить методи та властивості об’єкту Application, зображено на рис. 4.

Рис. 4. Інтерфейс підказок у середовищі Borland C++ Builder 6

1.3. Створення та збереження нового проекту. Для кожного нового проекту рекомендується створювати окрему папку для його зберігання.

1.3.1. Створення віконного проекту. Створити новий проект можна декількома способами:

1) команда File New Application.

2) команда File New Other. При виборі цієї команди відкриється вікно New Items, в якому потрібно двічі клікнути мишею на піктограмі Application (рис. 5).

В результаті створиться віконний проект, що міститиме одну користувацьку форму, заголовочний файл .h та файл коду .cpp.

а б

Рис. 5. Створення нового проекту

Файл коду Unit1.cpp має такий вигляд:

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

Файл заголовку Unit1.h:

#ifndef Unit1H

#define Unit1H

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

class TForm1 : public TForm

{

__published: // IDE-managed Components

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

extern PACKAGE TForm1 *Form1;

#endif

Очевидно, що в проекті може міститись тільки одна main-функція, яка розміщена в окремому файлі проекту Project.cpp.

1.3.2. Створення консольного проекту. Якщо необхідно створити застосування без використання користувацьких вікон (форм), то для цього слід виконати наступні кроки: File New Other, і вибрати у діалоговому вікні (рис. 5, б) Console Wizard. При цьому відкриється діалогове вікно, що зображене на рис. 6. Тут можна вибрати мову С/С++, зазначити які будуть використовуватись бібліотеки, тощо.

Рис. 6. Налаштування консольного проекту

При виборі мови С опції, що відповідають за використання бібліотек VCL, CLX будуть недоступні. Натомість опція використання декількох потоків (Multi Threaded) буде доступною. При виборі базової мови С++ опція Multi Threaded буде увімкнена завжди, і з’явиться можливість обрати одну із бібліотек VCL (для створення windows-застосування) або CLX (для створення кросплатформного застосування, тобто такого яке не буде залежати від типу операційної системи). Також можна вказати вже існуючий проект.

Зауважимо, що набір компонет у бібліотеках VCL та CLX відрізняються.

В результаті створиться консольний проект із модулем unit.cpp, який буде містити звичайну функцію main:

#include <vcl.h>

#pragma hdrstop

#pragma argsused

int main(int argc, char* argv[])

{

return 0;

}

1.3.3. Збереження проекту. Перша дія, яку рекомендується виконати після створення нового проекту – зберегти його. У багатовіконних застосуваннях це дозволяє одразу задати модулям імена, які використовуватимуться в програмі для взаємних посилань модулів один на одного. Якщо збереження форми не було виконане одразу, то розробнику потрібно буде спочатку посилатися на її ім'я за замовчуванням, а надалі змінювати ці посилання.

Зберегти проект можна командою File Save All. Зручно також використовувати відповідну швидку кнопку або комбінацію клавіш Shift+Ctrl+S. При першому збереженні C++ Builder запитує у розробника ім'я файлу модуля, що зберігається, а потім – ім'я файлу проекту. Треба мати на увазі, що C++ Builder не допускає однакових імен модулів і проектів. Файли модуля і головний файл проекту мають однакове розширення .срр, тому вони повинні відрізнятися іменами, щоб не затерти на диску один одного.

У подальших сеансах роботи збережений проект можна відкрити командою File Open Project. Якщо з проектом працювали недавно, то є можливість відкрити його командою File Reopen, або скористатися стрілкою поряд з відповідною цій команді швидкою кнопкою. В обох випадках відкриється вікно, в якому користувач має змогу вибрати потрібний файл чи проект.

1.4. Властивості проекту. Розглянемо основні налаштування проекту. Відкрити властивості проекту можна через меню Project Options.

Закладка Forms (рис. 7, а) дозволяє вказати головну форму проекту, а також вибрати форми, які будуть створюватися автоматично разом із головною.

Закладка Application (рис. 7, б) дозволяє задати заголовок проекту, вказати файл довідки, іконку для застосування, а також задати розширення для виконавчого файлу.

Закладка Directories/Conditionals (рис. 8, а) дозволяє задати розташу-вання include-файлів (класи), бібліотек, папку, в яку буде розміщено виконавчий файл, файли бібліотек і проміжні файли.

Закладка Version Info (рис. 8, б) дозволяє задати інформацію про версію застосування, а також додаткову інформацію про розробника. Опція Language дозволяє локалізувати застосування під певну мову.

Важливою є закладка Compiler (рис. 9), що дозволяє налаштувати режим виконання програми: режим відлагодження (debug) або режим кінцевого застосування (release). У режимі відлагодження (опція Full debug) компілятор не виконує оптимізацію коду, і зберігає інформацію для відлагодження (рис. 9, а). У режимі кінцевого застосування (опція Release) компілятор виконує оптимізацію коду, внаслідок чого застосування у більшості випадків виконується швидше, а також не збирає інформацію для відлагодження (рис. 9, б). Також для обох варіантів є можливість вказати рівні допустимих помилок при компілюванні проекту.

а б

Рис. 7. Налаштування проекту

а б

Рис. 8. Додаткові налаштування проекту

Ще однією з важливих закладок є закладка Packages (рис. 10), яку можна викликати через меню ComponentInstall Packages. Дана закладка дозволяє встановити бібліотеки компонент, вказати які саме бібліотеки використовуються, а також опцію компонування проекту із всіма використовуваними бібліотеками (Build with runtime packages).

а б

Рис. 9. Налаштування компілятора

Рис. 10. Налаштування бібліотек

Важливість останньої опції розглянемо на такому прикладі. Створимо новий віконний проект. Збережемо його у директорії на диску. Нехай дана опція буде увімкненою. Запустимо проект на виконання (меню RunRun, або клавіша F9). Тепер подивимось розмір виконавчого файлу. В залежності від налаштувань, він складатиме приблизно 25 kB. Тепер вимкнемо опцію і ще раз виконаємо програму. Розмір виконавчого файлу збільшився і становить тепер 396 kB. Це пояснюється тим, що у першому випадку застосування зкомпонувалося у виконавчий файл без бібліотек, які використовуються (VCL, тощо). В іншому випадку всі необхідні бібліотеки були додані до виконавчого файлу. Таким чином, якщо є необхідність виконати застосування на комп’ютері де відсутній Borland C++ Builder, необхідно опцію вимкнути.

Зауважимо, що розмір файлу для відлагодження, який створився в процесі компонування в даному прикладі становить 2 Mb. Для раціонального використання місця на диску, його можна видалити.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]