Методичні вказівки до виконання самостійних робіт з дисципліни: «інструментальні засоби візуального програмування»



Скачати 446.51 Kb.
Сторінка4/4
Дата конвертації23.03.2017
Розмір446.51 Kb.
#13014
ТипМетодичні вказівки
1   2   3   4

КОНТРОЛЬНІ ПИТАННЯ

  1. Напишіть програму з використанням більше ніж чотирьох компонентів з палітри Standart.

  2. Наведіть приклади, коли програма не працює, поясніть чому.

  3. Напишіть будь-яку математичну програму, окрім складання двох чисел.


ЛІТЕРАТУРА

1. Архангельский А.Я. Программирование в С++ Builder. – М.: Изд. «Бином», 2010 г. – 447 с.

2. Холингворт Джаррод. Borland C++ Builder 6. Руководство разработчика. – М.: Изд. «Вильямс», 2011 г. – 976 с.

3. Шилдт Герберт. Полный справочник по C++. – М.: Изд. «Вильямс», 2012 г. – 800 с.


Змістовий модуль 5

Розробка застосувань для баз даних

На самостійну роботу для цього змістовного модуля відведено 10 годин для спеціальності «Розробка програмного забезпечення» та 10 годин для спеціальності «Розробка програмного забезпечення (за прискореним терміном навчання)». До розділу додається теоретичний матеріал, який не входить до лекційної частини. Тому студенти мають ознайомитися з ним, зробити словник незрозумілих термінів, вміти відповідати на поставлені питання. Студенти звітують викладачеві на останньому занятті модуля.
Існує декілька способів доступу до даних із засобів розробки і клієнтських додатків.

Переважна більшість систем управління базами даних містить у своєму складі бібліотеки, що надають спеціальний прикладний програмний інтерфейс (Application Programming Interface, API) для доступу до даних цієї СУБД. Зазвичай такий інтерфейс являє собою набір функцій, що викликаються з клієнтського додатку. У разі настільних СУБД ці функції забезпечують читання / запис файлів бази даних, а в разі серверних СУБД ініціюють передачу запитів серверу баз даних і отримання від сервера результатів виконання запитів або кодів помилок, що інтерпретуються клієнтським додатком. Бібліотеки, що містять API для доступу до даних серверної СКБД, зазвичай входять до складу її клієнтського програмного забезпечення, що встановлюється на комп'ютерах, де функціонують клієнтські додатки.

Останнім часом Windows-версії клієнтського програмного забезпечення найбільш популярних серверних СУБД, зокрема Microsoft SQL Server, Oracle, Informix, містять також COM-сервери, що надають об'єкти для доступу до даних і метаданих.

Використання клієнтського API (або клієнтських COM-об'єктів) є найбільш очевидним (і нерідко самим ефективним з точки зору продуктивності) способом маніпуляції даними в додатку. Однак у цьому випадку створене додаток зможе використовувати дані тільки СУБД цього виробника, і заміна її на іншу (наприклад, з метою розширення сховища даних або переходу в архітектуру «клієнт-сервер») спричинить за собою переписування значної частини коду клієнтського додатку - клієнтські API і об'єктні моделі не підкоряються жодним стандартам і різні для різних СУБД.

Інший спосіб маніпуляції даними в додатку базується на застосуванні універсальних механізмів доступу до даних. Універсальний механізм доступу до даних зазвичай реалізований у вигляді бібліотек і додаткових модулів, званих драйверами або провайдерами. Бібліотеки містять деякий стандартний набір функцій або класів, нерідко підкоряється тієї чи іншої специфікації. Додаткові модулі, специфічні для тієї чи іншої СУБД, реалізують безпосереднє звернення до функцій клієнтського API конкретних СУБД.

Відзначимо, що гідністю універсальних механізмів є можливість застосування одного і того ж абстрактного API, а у багатьох випадках - COM-серверів, компонентів, класів для доступу до різних типів СУБД. Тому додатки, що використовують універсальні механізми доступу до даних, легко модифікувати, якщо необхідна зміна СУБД. При цьому нерідко модифікація зачіпає не код додатку як такої, а налаштування доступу до даних, що містяться в реєстрі або зовнішніх файлах. Однак за подібну універсальність деколи доводиться платити неможливістю доступу до унікальної функціональності, специфічною для конкретної СУБД, зниженням продуктивності додатків, а також ускладненням процедури поставки додатки - адже в його склад потрібно включати бібліотеки, відповідальні за реалізацію універсальних механізмів, драйвери для тих чи інших СУБД, а також забезпечувати налаштування, необхідні для їх правильного функціонування.

Найбільш популярними серед універсальних механізмів доступу до даних можна назвати наступні:

• Open Database Connectivity (ODBC).

• OLE DB.

• ActiveX Data Objects (ADO).

• Borland Database Engine (BDE).

Універсальні механізми ODBC, OLE DB і ADO фірми Microsoft представляють собою по суті промислові стандарти. Що стосується механізму доступу до даних BDE фірми Borland, то він так і не став промисловим стандартом, проте до недавнього часу застосовувався досить широко, так як до виходу Delphi 5 був практично єдиним універсальним механізмом доступу до даних, підтримуваним засобами розробки Borland на рівні компонентів і класів.

Найбільш часто використовувані в додатках способи доступу до даних схематично зображені на рис. 1.

Як видно з наведеної схеми, в загальному випадку додаток, що використовує бази даних, може застосовувати такі механізми доступу до них:

• Безпосередній виклик функцій клієнтського API (або звернення до COM-об'єктів клієнтських бібліотек).

• Виклик функцій ODBC API (або застосування класів, інкапсулюють подібні виклики).

• Безпосереднє звернення до інтерфейсів OLE DB.

• Застосування ADO (або застосування класів, інкапсулюють звернення до об'єктів ADO).

• Застосування ADO + OLE DB + ODBC.

• Застосування BDE + SQL Links (або застосування класів, інкапсулюють звернення до функцій BDE).

• Застосування BDE + ODBC Link + ODBC.

Крім цих існують і інші способи доступу до даних, зазвичай в тій чи іншій мірі використовують перераховані універсальні механізми або безпосередньо клієнтські API.

Нижче ми коротко зупинимося на найбільш широко використовуваних універсальних механізмах, а потім розглянемо Borland Database Engine і найбільш популярні продукти третіх фірм, здатні його замінити.
КОНТРОЛЬНІ ПИТАННЯ


  1. Які бази даних може використовувати Borland C++?

  2. За якою технологією інтегрована середа розробки працює з базами даних?

  3. Чи можна написати програму з використанням бази даних в обхід стандартним методам роботи?


ЛІТЕРАТУРА

1. Архангельский А.Я. Программирование в С++ Builder. – М.: Изд. «Бином», 2010 г. – 447 с.

2. Холингворт Джаррод. Borland C++ Builder 6. Руководство разработчика. – М.: Изд. «Вильямс», 2011 г. – 976 с.

3. Шилдт Герберт. Полный справочник по C++. – М.: Изд. «Вильямс», 2012 г. – 800 с.


Змістовий модуль 6

Розробка мережевих застосувань

На самостійну роботу для цього змістовного модуля відведено 10 годин для спеціальності «Розробка програмного забезпечення» та 4 години для спеціальності «Розробка програмного забезпечення (за прискореним терміном навчання)». До розділу додається теоретичний матеріал, який не входить до лекційної частини. Тому студенти мають ознайомитися з ним, зробити словник незрозумілих термінів, вміти відповідати на поставлені питання. Студенти звітують викладачеві на останньому занятті модуля.
КОНТРОЛЬНІ ПИТАННЯ

В даному змістовному модулі не передбачені контрольні питання, проте кожний студент повинен написати самостійну роботу, виконати тестове завдання та створити програму з використанням власного компоненту.



ЛІТЕРАТУРА

1. Архангельский А.Я. Программирование в С++ Builder. – М.: Изд. «Бином», 2010 г. – 447 с.

2. Холингворт Джаррод. Borland C++ Builder 6. Руководство разработчика. – М.: Изд. «Вильямс», 2011 г. – 976 с.

3. Шилдт Герберт. Полный справочник по C++. – М.: Изд. «Вильямс», 2012 г. – 800 с.


Змістовий модуль 7

Створення власних компонентів

На самостійну роботу для цього змістовного модуля відведено 10 годин для спеціальності «Розробка програмного забезпечення». До розділу додається теоретичний матеріал, який не входить до лекційної частини. Тому студенти мають ознайомитися з ним, зробити словник незрозумілих термінів, вміти відповідати на поставлені питання. Студенти звітують викладачеві на останньому занятті модуля.
Мы неоднократно рассматривали применение различных событий компонентов в предыдущих примерах программ. Настало время рассмотреть их отдельно. В табл. 1 приведены основные события компонентов и дано описание моментов, когда они происходят.

 


Таблица1

Событие

Коли відбувається подія

OnActivate

При активізації об'єкта

OnCanResize

При зміні розмірів

OnContextPopup

При виклику контекстного меню

OnClick

За клацанню миші на компоненті і при іншій активізації компонента

OnClose

при закритті

OnDblClick

За подвійним клацанням миші на компоненті

OnChanqe

Після зміни графічного об'єкта

OnDragDrop

У момент відпускання перетягувати компонента над даними компонентом

OnDragOve

Коли користувач переміщує перетаскується об'єкт над компонентом

OnEndDraq

У момент переривання або закінчення перетягування компонента

OnEnter

У момент отримання елементом Фокуса

OnExit

У момент втрати елементом фокусу

OnKeyDown

При натисканні користувачем будь-якої клавіші

OnKeyPress

При натисканні користувачем клавіші символу

OnKeyUp

При відпусканні користувачем будь-якої клавіші

OnMouseUp

У момент натискання користувачем клавіші миші над компонентом

OnMouseMove

При переміщенні курсору миші над компонентом

OnPaint

При отриманні повідомлення Windows про необхідність перемалювати зображення

OnProgress

Під час повільних процесів зміни графічного зображення

OnStartDraq

Коли користувач почав перетягування об'єкту

OnEnter

при введенні

OnExit

при виході

Самим часто використовуваним і вже знайомим нам подією є OnClick. Зазвичай подія OnClick настає, якщо користувач натиснув і відпустив ліву кнопку миші в той момент, коли курсор миші знаходився на компоненті. Крім того, ця подія відбувається в наступних випадках:

• користувач натиснув клавішу пробілу, коли кнопка або індикатор були у фокусі;

• користувач натиснув клавішу Enter, а активна форма має кнопку за замовчуванням, зазначену властивістю Default;

• користувач натиснув клавішу Esc, а активна форма має кнопку переривання, зазначену властивістю Cancel;

• користувач натиснув клавіші швидкого доступу до кнопки або індикатора;

• користувач вибрав елемент в сітці, дереві, списку або випадному списку, натиснувши клавішу зі стрілкою;

• додаток встановило в True властивість Checked кнопки RadioButton;

• додаток змінило властивість Checked індикатора CheckBox;

• викликаний метод Click елемента меню.

Як бачимо, дана подія може відбуватися в більшості випадків, недарма воно є одним з найпоширеніших.

Для компонента форми подія OnClick настає, якщо користувач клацнув на порожньому місці форми або на недоступному компоненті.

Створіть новий додаток і помістіть на форму одну кнопку Button1. Відкрийте для неї в інспектора об'єктів ятати подій Events і двічі клацніть лівою кнопкою миші на полі правіше події OnClick. Відкриється інспектор кодів і з'явиться заготовка програмного коду для функції обробки події OnClick, створювана автоматично середовищем розробки Borland C + + Builder 6. Вона має вигляд:

void __ fastcall TForm1 :: Button1Click (T0bject * Sender)

{

}

Параметр Sender даної події містить об'єкт, в якому відбулася подія, і може бути використаний для добування інформації про те, який компонент сформував подія OnClick.



Впишіть між фігурними дужками функції обробки події OnClick для кнопки Button1 наступну програмну рядок:

ShowMessage ("Подія OnClick відбулося в" + ((TControl *) Sender) -> Name);


Аналогічні дії виконайте для форми Form1, після чого запустіть програму. В результаті при виникненні події OnClick на кнопці або формі буде формуватися вікно повідомлення з інформацією про компоненті, в якому відбулося дану подію. Перевірте реакцію програми на клацання лівою кнопкою миші по кнопці, натиснення клавіш пробіл і Enter і інші дії користувача програми.

Інша подія - OnDblClick настає, якщо користувач здійснив подвійне клацання, тобто двічі натиснув і відпустив основну кнопку миші з коротким інтервалом, коли покажчик миші знаходився на компоненті. До одного і того ж компоненту можна написати обробники подій OnClick і OnDblClick, оскільки перший з обробників завжди перехопить клацання миші. Параметр Sender для події OnDblClick може бути використаний аналогічно прикладу, описаного вище.

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

Нарешті ми приступили до створення компонентів під VCL. Спочатку деякий відступ. Бувають питання типу "а звідки береться Handle, WndProc?". Або інший - Взагалі як це все працює! Я повинен ще раз сказати, що просто так звідкись нічого не береться. Сама бібліотека VCL, як і будь-яка інша бібліотека, є просто оболонкою для WinAPI. Наприклад. Один з найважливіших класів - TForm. Цілком можна було б створити діалогове вікно взагалі не використовуючи класи VCL. Навіть взагалі не використовуючи класи. За допомогою виклику функції CreateWindow можна створити повнофункціональне вікно. Класи створені тільки для того, щоб полегшувати життя програмістам.

Ще один момент. Як це не дивно, зовсім не обов'язково створювати свої класи VCL. Досить велика частина програмістів Delphi і C + + Builder є прикладними програмістами. Вони використовують доступні компоненти для створення своїх додатків, найчастіше баз даних або якихось дрібних утіліток.

Однак Ви все ж це читаєте, значить, Вам цікаво створення чогось нового, цікавого. Нехай це чимось скидається на принципи Linux OpenSource, але я скажу, що чудово, зробивши і налагодити свій оригінальний компонент, виставити його на загальний огляд (і завантаження). Можливо він припаде до душі. Вас помітять, знайдуть і запросять на роботу в Європу чи Америку :)). І Білл Гейтс поперхнется від заздрості :).

Кілька слів щодо сумісності. Як це не прикро, більше половини компонентів написані на Delphi. Повинен Вас порадувати, сказавши, що C + + Builder повною мірою підтримує компілятор Дельфі п'ять. Файли. Pas можна спокійно додавати в проекти. Для включення модуля pas в проект необхідний автоматично генерований файл *. Hpp, з ім'ям, аналогічним файлу модуля. При цьому виклики функцій будуть автоматично перетворюватися якщо це необхідно, до FAR PASCAL. Стилістика цього виклику до речі використовується не тільки в Делфі, а й у викликах типу __ stdcall для АПИ. І в ОпенГЛ теж використовується. Таким чином, можливо інсталювати будь-який компонент будь-якої версії Делфі в палітру. Насчет версій. Взагалі, повністю сумісні тільки версії 5. Але при деякому доопрацюванні будуть працювати і всі інші варіанти. Наприклад, я зміг інсталювати на C + + Builder компонент Delphi 1.0, хоча спочатку на Делфі 5 не зміг.

VCL має досить розвинену ієрархію класів. Детальніше про неї ми поговоримо в наступному кроці. Але треба сказати, що кожна гілка цього класу надає максимально стандартизований варіант інтерфейсу до об'єкта. При творі нащадків від компонент з власним зовнішнім виглядом (таких, як, наприклад TListView) у загальному випадку не потрібно піклується про перетворення його в потрібний вид. Взагалі, в загальному випадку створення візуального компонента в основному полягає в перевантаженні преопределенность віртуальних функцій.

Також я маю намір навести приклад створення досить корисних компонентів. Таких, як, наприклад діалог вибору папки або список файлів Explorer-style.

Ієрархія компонентів VCL передбачає в деякому роді платформо-незалежний інтерфейс програмування. Це підтверджує так само і те, що пакет VCL був перенесений на системи Unix (сюди я відношу Linux, * BSD і деякі інші різновиди) під ім'ям Kylix.

Невеликий відступ. На момент написання статті остання версія була 2.0. Особисто я випробував версію 1.0. Я нічого проти Дельфі не маю, проте на мій погляд, було б практичніше перенести для початку систему типу C + + Builder. Зацікавився повинен з сумом сказати, що версія 1.0 була ... досить далека від досконалості. Сподіваюся, що 2.0 більш відпрацьована. Ну, для прикладу можна сказати, що досить багато часу я витратив на проблеми усунення конфліктів локалі мого Лінукса і власного середовища IDE. Потім виявляється, що готові проекти можуть працювати тільки з однією версією Qt-бібліотеки, якщо не помиляюся, 2.2.4. Може, звичайно, це все одно, але вкладати, наприклад, в готові пакети з програмами 3-4 метровий Qt як мінімум неприємно. Ну да ладно. Сподіваюся, все ж невдовзі зможу спокійно переносити проекти С + + Builder на Лінукс.

Так от. Ієрархія в загальному така (у верхньому рядку розташовані послідовні нащадки, а під ними - їхні нащадки):



TObject

TPersistent

TComponent

TControl

TWinControl

TCustomControl










TGraphicControl

TButtonControl
TCustomComboBox

TCustomGrid
TCustomGroupBox
TCustomPanel
TDBImage
TDBLookupControl
THeader
TCustomEdit
TCustomHotKey
TCustomListBox
TCustomListView
TCustomTabControl
TCustomTreeView
TCustomUpDown
TDBCtrlGrid
TDBCtrlPanel
THeaderControl
TOleControl
TProgressBar
TScrollBar
TScrollingWinControl
TStatusBar
TTabPage
TTabSheet
TTrackBar

Я трохи поясню загальну семантику. TObject - предок ВСІХ компонентів VCL. Це має кілька переваг, в основному пов'язаних з тим, що практично будь-який клас, що використовується в програмі, можна прирівняти TObject. Методи (властивості та методи ми докладніше розглянемо в наступному кроці) надають деякі можливості, пов'язані з run-time визначенням класу, його строкового імені, можливості взаємодії з COM.

TPersistent визначає деякі низькорівневі можливості класів VCL. Це завантаження і збереження властивостей об'єкта, його копіювання в інший примірник об'єкта такого ж класу і т.д. Зазвичай програмісти рідко працюють над змінами класу TPersistent, він приймається as is. Цікавим похідним TPersistent є TComponent, що є предком всіх компонентів бібліотек VCL і VCLx. Його прямі нащадки - невидимі компоненти, такі як TOpenDialog.

TControl дає Вашому класу можливість працювати як елементу управління - перехоплювати події Windows, відображатися на екрані, взагалі бути видимими. Це чисто базовий клас, при цьому нові компоненти найчастіше створюються від нащадків TControl - TGraphicControl або TWinControl.

TGraphicControl не є віконним компонентом, але при цьому надає успадковану можливість перехоплення повідомлень клавіатури і миші, а також властивість Canvas, яке надає зручну можливість малювання. Однак він не дає можливості переходу на нього фокусу, оскільки не є імплементацією WinAPI. Заплутано звучить, але, втім, досить знати те, що цей компонент добре використовувати для створення оригінальних графічних компонентів. Ну все одно - як же так, що якщо це не віконний компонент, а події перехоплювати може? Справа в тому, що механізм малювання і перехоплення повідомлень закладений в батьку - похідному TWinControl. Це, крім того, кілька економить ресурси власне Windows.

TWinControl - загальний інтерфейс до більшості вбудованих віконних ... навіть не класів, а ресурсів WinAPI. Тобто це просто зручний інтерфейс для імплементації, оскільки багато параметрів, що надаються функціями АПИ, схожі або просто однакові.

Однак, коли необхідно створити оригінальний компонент, здатний приймати фокус введення і містити в собі дочірні комопненти, зручніше використовувати TCutsomControl, який має власну канву малювання.


КОНТРОЛЬНІ ПИТАННЯ

В даному змістовному модулі не передбачені контрольні питання, проте кожний студент повинен написати самостійну роботу, виконати тестове завдання та створити програму з використанням власного компоненту.


ЛІТЕРАТУРА

1. Архангельский А.Я. Программирование в С++ Builder. – М.: Изд. «Бином», 2010 г. – 447 с.

2. Холингворт Джаррод. Borland C++ Builder 6. Руководство разработчика. – М.: Изд. «Вильямс», 2011 г. – 976 с.

3. Шилдт Герберт. Полный справочник по C++. – М.: Изд. «Вильямс», 2012 г. – 800 с.


Критерій оцінки самостійної роботи з дисципліни "Інструментальні засоби візуального програмування"


Оцінка "Відмінно" ставиться за цілком і акуратно виконану роботу, що містить вірні відповіді на поставлені питання. Відповіді повинні бути коректними і конкретними, не містити зайвої не стосовної до даного питання інформації. Уживані терміни і визначення повинні відповідати вимогам візуального програмування. Практичне завдання виконано в повному обсязі, працює без будь-яких проблем. Помилок в операторах немає, помилок в порядку написання також немає.
Оцінка "Добре" ставиться за акуратно оформлену роботу, що містить коректні відповіді на питання. У відповідях на теоретичні питання допускаються описки і помилки, що не мають принципового характеру. Практичне завдання виконано в повному обсязі, проте допускаються незначні помилки в описанні операторів, порядку їх розташування. Програма працює з несуттєвими помилками.
Оцінка "Задовільно" ставиться якщо практичне завдання виконане, але теоретичні питання не відкриті або містять помилки принципового характеру. А також у тих випадках, коли теоретичні питання розкрити на "відмінно", але у відповідях на практичні завдання утримуються грубі помилки, наприклад неправильне написання операторів, суттєві помилки в програмному коді, однак які можна виправити.
Оцінка "Незадовільно" виставляється студентам, що недбало виконали комплексну контрольну роботу, не змогли розкрити теоретичні питання і допустили грубі помилки при виконанні практичних завдань (завдання виконано недбало, допущено багато суттєвих, критичних помилок, програма не працює та для її виправлення потрібно багато часу).
Каталог: download -> version
version -> Захист навколишнього середовища від забруднення мийними засобами
version -> «Валеологічне виховання дітей дошкільного віку, як фактор формування здорового способу життя»
version -> Виписка з навчального плану
version -> Методичні рекомендації щодо викладання уроків для стійкого розвитку «Моя щаслива планета» розділ Система уроків-зустрічей для 3 класу курсу за вибором «Моя щаслива планета»
version -> Затверджую директор Зіньківської спеціалізованої школи І-ІІІ ст.№2 Л. В. Литус
version -> Наказ №526 " Про затвердження Науково-методичних рекомендацій щодо оцінювання навчальних досягнень учнів та оформлення сторінок класних журналів загальноосвітніх
version -> Методичні рекомендації Донецьк  2006 ббк 64. 9 (ІІ) 722 ш 30
version -> Вимоги до оформлення посібника
version -> Програма бібліотечно-бібліографічних знань для учнів 1-11 класів

Скачати 446.51 Kb.

Поділіться з Вашими друзьями:
1   2   3   4




База даних захищена авторським правом ©uchika.in.ua 2022
звернутися до адміністрації

    Головна сторінка