- •До практичних занять з курсу технологія створення програмних та інтелектуальних систем
- •9. Оформити звіт, який повинен містити запити та їх результати виконання, а також їх описання відповідно до поставлених завдань.
- •3.2. Налаштування проекту. Створення першої програми.
- •3.3. Основні властивості форми
- •3.4. Власний ScreenSaver
- •Мета роботи: Набуття навичок створення бази даних та використання її за допомогою візуальних компонентів. Використання у програмі зв'язаних таблиць, додавання обчислювальних полів.
- •Контрольні питання та завдання
- •Порядок виконання роботи
- •Приклад створення експертної системи визначення виду рослини за її ознаками
3.4. Власний ScreenSaver
3.4. Створення власного ScreenSaver (Хранитель экрана) (додатки\ScreenSaver.sWO.zip)
3.4.1. Створюємо проект в середовищі C++Builder 6. Встановлюємо Project->Options->Application->Target file extension значення scr (Рис3.19)
Рисунок 3.19 – налаштування проекту
Виконуємо пункт 3.1.3 даної практичної роботи. Зберігаємо проект.
3.4.2. Встановлюємо на формі Label1 та Timer1.
3.4.3. В вікні інспектора подій головного вікна в подію OnActivate вписуємо наступний код:
// Дозволяємо змінювати прозорість вікна.
Form1->AlphaBlend=True;//
// Встановлюємо значення прозорості вікна, максимум 255.
Form1->AlphaBlendValue=210;//
/* Встановлюємо стиль рамки віка "без рамки" .*/
Form1->BorderStyle==bsNone;//
/* Встановлюємо відкриття вікна на весь екран.*/
Form1->WindowState=wsMaximized;//
// Встановлюємо вивід нашого вікна поверх всіх вікон.
Form1->FormStyle==fsStayOnTop;//
// Встановлюємо колір форми.
Form1->Color=clBlack;//
// Надаємо ім"я формі.
Form1->Caption="МОЯ ЗАСТАВКА";//
//=========================================================
// Встановлюємо колір виводу тексту.
Form1->Label1->Font->Color=clGreen;//
// Встановлюємо шрифт тексту.
Form1->Label1->Font->Name="Vivaldi";//
// Встановлюємо розмір шрифту.
Form1->Label1->Font->Size=38;//
3.4.4. В вікні інспектора подій Timer1 в подію OnTimer вписуємо наступний код:
Label1->Caption=Time().FormatString("hh:mm:ss:zz");//
Timer1->Interval=1;//
Зберігаємо проект. Компонуємо проект.
Скомпонований файл з розширенням scr копіюємо до папки WINDOWS, що розміщується C:\WINDOWS. Виконуємо ПУСК->Панель управления->Экран (Рис 3.20)
Рисунок 3.20 – встановлення налаштувань екрана
переходимо до вкладки Заставка та в випадаючому списку вибираємо нашу заставку рис 3.21.
Рис 3.21 – Вибір заставки.
Перелік контрольних запитань:
Що необхідно зробити щоб скомпонавана програма не вимангала підключення RTL ресурсів ?
Що встановлюється властивостями BorderStyle властивостей форми.
Як встановлюється внутрішнє імя проекту?
Основні властивості форми.
Підключення форм проекту, вибір головної форми проекту.
Практична робота № 4
Тема: Типи даних в C++ Builder.
Мета: Ознайомитися з використанням основних типів даних.
Завдання:
Ознайомитися з використанням основних типів даних.
Створити програму – таблицю множення.
Створити програму-калькулятор
Виконати індивідуальні завдання відповідно до варіанту.
Хіт роботи
Запустити програму C++Builder. Створити та зберегти проект.
Встановити на форму два компоненти TrakcBar з закладки палітри компонентів Win32 (рис 4.1),
Рис. 4.1 – компонент TrackBar
встановлюємо CheckBox (рис 4.2) закладки палітри компонентів Standard, основні властивості компонента представлені в таблиці 4.1
Рис. 4.2 – компонент ChekcBox
Таблиця 4.1. Властивості компоненту CheckBox
|
Встановлюємо властивості для компонентів TrackBar (рис 4.3), таким чином щоб значення кроку прогресора становив одну одиницю, мінімальне значення прогресора щоб становив 0 одиниць, а максимальне значення становив 100 одиниць.
Рис. 4.3 – встановлення властивостей компонента TrackBar.
Встановлюємо на форму три компоненти Label (рис. 4.4), компонент Label призначений для виведення тексту на поверхню форми. Властивості компоненту (табл. 4.2) визначають вигляд і розташування тексту.
Рис. 4.4 – компонент Label закладки палітри компонентів Standard
Таблиця 4.2. Властивості компоненту Label (поле виведення тексту)
|
так як це показано на рисунку 4.5. Компоненти TrackBar1 i TrackBar2 призначені для встановлення певних значень (в даному випадку від 0 до 100) бігунком прогресора, Label1 i Label2 відображають значення відповідних значень бігунків прогресора, Label3 призначений для представлення результатів виконання операції (в даному випадку множення) над змінними – значеннями бігунків прогресора. При встановлені ChekcBox1 значення бігунків першого та другого прогресора будуть рівними тобто виконається операція піднесення до квадрату.
Рис. 4.5 – розміщення компонентів на формі.
Встановити в інспекторі подій (Object Inspector закладка Events) компонента TrackBar1, в значення, OnChange наступного програмного коду (Рис. 4.6):
Label1->Caption=IntToStr(TrackBar1->Position);
Label3->Caption="Результат "+IntToStr(TrackBar1->Position*TrackBar2->Position);
if(CheckBox1->Checked)// при визначеному компоненті прогресори будуть однаковими.
TrackBar2->Position=TrackBar1->Position;
В даному коду використовувалися функції перетворення а саме перетворення стрічкового значення в числове IntToStr та інші опис яких представлений в таблиці 4.1.
Таблиця 4.1.
Функції перетворення
Функція |
Значення функції |
IntToStr(k) |
Рядок, що є зображенням цілого k |
FloatToStr(n) |
Рядок, що є зображенням речового n |
FloatToStrF(n, f, к,m) |
Рядок, що є зображенням речового n. При виклику функції указують: f — формат; k — точність; m— кількість цифр після десяткової крапки. Формат визначає спосіб зображення числа: ffGeneral— універсальний; ffExponent— науковий; ffFixed — з фіксованою крапкою; ffNumber — з роздільниками груп розрядів; ffCurrency— фінансовий. Точність — потрібна загальна кількість цифр: 7 або менше для значення типу single, 15 або менше для значення типу Double і 18 або менше для значення типу Extended |
StrToInt(s) |
Ціле число, зображенням якого є рядок s |
StrToFloat(s) |
Дробове число, зображенням якого є рядок s |
Рис. 4.6 – Визначення програмного коду, через інспектор подій.
Аналогічно встановити значення для другого прогресора:
Label2->Caption=IntToStr(TrackBar2->Position);
Label3->Caption="Результат "+IntToStr(TrackBar1->Position*TrackBar2->Position);
if(CheckBox1->Checked)// при визначеному компоненті прогресори будуть однаковими.
TrackBar1->Position=TrackBar2->Position;
Зберігаємо, компонуємо проект. Переглядаємо результати виконання програми, завершуємо виконання програми.
Встановлюємо на нашій формі кнопку, відповідно елемент Button1, закладки Standard палітри компонентів.
Створюємо нову форму, для цього необхідно виконати: File->New->Form (Рис. 4.7)
Рис. 4.7 – Створення нової форми.
Далі засвідчуємо нову форму в проекті для цього добавляємо стрічку
#include "Unit2.h" в вікні редактора коду Unit1.cpp (рис. 4.8)
Рис. 4.8 – Оголошення нової форми в проекті.
Зберігаємо форму, або проект повністю.
В встановлену кнопку на першій формі надаємо значення: Form2->Visible=True;
На другій формі встановити три компоненти Edit та чотири компоненти Button. Тут Edit1 та Edit2 використовується як поля для введення зміних, Edit3 використовується як поле для виведення зміних, Button1 – Button4 – кнопки виконання операцій.
Рис. 4.9 – Розміщення компонентів на другій формі.
В кнопку Button1 вписуємо наступний текст:
/*визначення тексту Edit1 як число, та оголошення його як zmina1*/
float zmina1= FloatToStr (Edit1->Text);//
/*визначення тексту Edit2 як число, та оголошення його як zmina2*/
float zmina2= FloatToStr (Edit2->Text);//
/*оголошення додаткової зміної*/
float zmina3;//
/*виконання операції над зміними*/
zmina3=zmina1*zmina2;//
/*вивід результату виконання операції в поле Edit3*/
Edit3->Text=StrToFloat(zmina3);//
Зберігати та скомпонувати, повторити дану операцію для різних значень дій (множення, ділення, віднімання, додавання).
Індивідуальні завдання
Аналогічно до програми-калькулятор, скласти програму яка обраховує значення С якщо відомо залежні зміни А, В, Д, - які вводяться з клавіатури. Значення С обраховується за формулою відповідного варіанту:
Перелік контрольних запитань:
Основні властивості компоненту Label
Основні властивості компоненту CheckBox
Функції перетворення.
Визначення границь прогресора.
Дійсний тип числових даних, його необхідність для використання в обрахункових задачах.
Практична робота 5
Тема : Створення навчальної системи керування базами даних.
Мета : Ознайомитися з сучасними методами та засобами проектування СКБД.
Обсяг роботи : 4 години.
Завдання :
Ознайомитися з методикою побудови СКБД.
Побудувати власну навчальну систему керування базою даних.
Виконати індивідуальні завдання.
Хіт роботи
1. Створити проект. Зберегти проект в папці «Навчальна СКБД» та розміщуємо її в папці проектів
C:\Program Files\Borland\CBuilder6\Projects
2. Розмістити елементи користувацького інтерфейсу:
Встановити на форму компонент ADODataSet1:TADODataSet панелі ADO
Встановити компонент ADOConnection1: TADOConnennection панелі ADO
Встановити DataSource1:TDataSource панелі DataAccess
Встановлюємо DBGird1:TDBGird панелі DataControls – власне таблиця, засіб для вводу, виводу та редагування даних (рис 5.4).
Рис. 5.4 – DBGird
Ми отримали форму з елементами для управління даними (рис 5.5)
Рис. 5.5 – розміщення компонентів на формі.
3. Далі необхідно налагодити між цими компонентами зв'язок таким чином щоб ми могли керувати базою даних. Базу даних db1.mdb (лабораторна №1) розміщаємо в папці де знаходиться наш проект:
C:\Program Files\Borland\CBuilder6\Projects\Навчальна СКБД\db1.mdb
Зв'язок між компонентами керування базою даних будемо налагоджувати як це показано на рис 5.6.
Рис. 5.6 – Зв’язок між компонентами
Після того як ми встановили необхідні компоненти на форму а також визначилися з зв’язками між компонентами, можемо приступити до власне налагодження зв’язків. Першим кроком у налагодженні зв’язків є встановлення постачальника даних (провайдера), у нас постачальником даних є ADODataSet. У вікні Object Inspector відносно ADOConnection натискаємо на піктограму відкриття діалогу введення в стрічці ConnectionString (рис 5.7) після чого з’являється вікно визначення стрічки з’єднання з файлом (рис 5.8) у якому ми будемо визначати файл для з’єднання.
Рис 5.7 Стрічка ConnectionString
У вікні визначення стрічки з’єднання з файлом (рис 5.8) встановлюємо налаштування з’єднання (Source of Connection) на перемикач Use Connection String та натискаємо кнопку Build.(рис 5.8)
Рис. 5.8 – Стрічка з’єднання з файлом
У вікні що з’явилося «Свойства связи с даными» ми виконуємо:
Крок 1 – вибір драйвера провайдера: встановлюємо (рис 5.9) драйвер провайдера Microsoft Jet 4.0 OLE DB Provider (можна і Microsoft Jet 3.51 OLE DB Provider – це старіша його версія ) та натискаємо кнопку « Далее>> »
Рис. 5.9 – вибір драйвера провайдера
Крок 2 – встановлення бази даних: переходимо до закладки « Подключение » (рис 5.10) встановлюємо галочку в значенні « Пустой пароль » вводимо значення Пользователь-> Admin
Рис 5.10. – встановлення підключення бази.
Після чого ми натискаємо на піктограму вводу(рис 5.10 //підкреслено) для відкриття діалогу вибору відкриття файлу(рис 5.11).
Рис 5.11. – вибір бази даних.
Вибираємо нашу базу даних та натискаємо на кнопку «Проверить подключение» після чого отримаємо повідомлення про валідність з’єднання з файлом бази даних. Якщо зв'язок працює (рис 5.12) ми можемо приступити до подальшої роботи над проектом, в іншому випадку нам потрібно повернутися на попередні кроки побудови СКБД і виправити помилку.
Рис 5.12 Валідне з’єднання з файлом бази даних.
Після чого переходимо (Крок 3) на закладку «Дополнительно» де встановлюємо права доступу до нашої бази даних таким чином щоб ми могли її не лише переглядати але й редагувати (рис 5.13)
Рис.5.13. – встановлення приорітетів СКБД.
Натискаємо ОК і налаштування постачальник даних у нас проведено.
Відповідно до нашої схеми (рис. 5.6) наступним у нас є встановлення зв’язку типу Connection між компонентами ADODataSet1 та ADOConnection, для цього у вікні Object Inspector відносно ADODataSet натискаємо на прихований список у стрічці Connection (рис.5.14) та вибираємо нашого провайдера ADOConnection
Рис.5.14. – встановлення зв’язку типу Connection між компонентами ADODataSet1 та ADOConnection
Далі нам необхідно провести налаштування SQL - зв’язків в середині бази даних, для цього у вікні Object Inspector відносно ADODataSet натискаємо на піктограму відкриття діалогу введення в стрічці CommandText , у вікні що з’явиться(рис 5.15) в полі Tables вибираємо наше робочу таблицю students, робимо на ній двійний клік, після чого встановлюємо SQL - зв’язки, для цього в полі SQL вводимо SQL- запит:
select*
from students;
Рис.5.15 – встановлення SQL- зв’язків в середині бази даних
Натискаємо ОК та активуємо зв'язок з файлом бази даних для цього нам необхідно потрібно у вікні Object Inspector відносно ADODataSet (рис.5.16) значення Active в положення true.
Рис.5.16.- активація зв’язку.
Далі відносно нашої схеми (рис 5.6) встановлюємо зв'язок DataSet між компонентами DataSet та DataSource для цього у вікні Object Inspector (5.17) відносно DataSource в полі DataSet вибираємо ядро нашої СКБД - ADODataSet
Рис. 5.17. - встановлюємо зв'язок між компонентами DataSource та DataSet
Далі відносно нашої схеми (рис 5.6) – визначення зв'язку DataSet для компоненту DBGird, для цього у вікні Object Inspector (5.18) відносно DBGird в полі DataSet вибираємо ядро нашої СКБД - ADODataSet
Рис. 5.18. – визначення зв'язку DataSet для компоненту DBGird
Після чого ми отримаємо готову до компіляції СКБД (рис. 5.19.)
Рис. 5.19. – готова до компіляції СКБД
4. Зберігаємо та компілюємо проект.
5. Перериваємо виконання програми (Run->Program Reset) встановлюємо на форму три кнопки (панель Standart,елемент Button). Змінюємо значення Caption (напис на кнопці) елементів Button наступним чином:
Button1 – |
SELECT num, priz, imja, stip FROM students; |
Button2 – |
SELECT count (*) FROM students; |
Button3 – |
SELECT* FROM students; |
У результаті ми отримаємо форму аналогічну до форми на рис. 5.20.
Рис. 5.20. – користувацький інтерфейс «СКБД Навчальна»
6. Далі потрібно надати значення виконанню дій при натисненні на кнопки:
Робимо подвійний клік на елементу Button1 та прописуємо наступний код:
ADODataSet1->Active=False;
ADODataSet1->CommandText=("SELECT num, priz, imja, stip FROM students;");
ADODataSet1->Active=True;
Робимо подвійний клік на елементу Button2 та прописуємо наступний код:
ADODataSet1->Active=False;
ADODataSet1->CommandText=("SELECT count (*) FROM students;");
ADODataSet1->Active=True;
Робимо подвійний клік на елементу Button3 та прописуємо наступний код:
ADODataSet1->Active=False;
ADODataSet1->CommandText=("SELECT* FROM students;");
ADODataSet1->Active=True;
Пояснення:
Стрічка ADODataSet1->Active=False; робить переривання зв’язку ядра СКБД з файлом. Це необхідно для того щоб було можливим провести налаштування SQL - зв’язків в середині бази даних.(рис. 5.21)
Стрічка ADODataSet1->CommandText=("........."); встановлює SQL - зв’язків в середині бази даних, тут потрібно вводити SQL- запит в дужках між знаками " "
Стрічка ADODataSet1->Active=True; відновлює (активує) зв’язок ядра СКБД з файлом. Це необхідно для того щоб відновити роботу СКБД (рис.5.21)
Рис. 5.21. – залежність встановлення налаштувань ADO- компонентів
Завдання для виконання :
Побудувати СКБД.
Реалізувати кнопки з SQL- запитами відповідно до варіанта
Варіанти індивідуальних завдань
Реалізувати SQL- запит таким чином щоб в таблиці відображалися поля «Прізвища», «Ім’я», «Стипендія», лише тих студентів у кого стипендія більша ніж 480 грн.
Реалізувати SQL- запит таким чином щоб в таблиці відображалися поля «Прізвища», «Ім’я», «Оцінка», лише тих студентів у кого є хоча одна двійка.
Реалізувати SQL- запит таким чином щоб в таблиці відображалися поля «Прізвища», «Ім’я», «Оцінка», лише тих студентів у кого немає двійок
Реалізувати SQL- запит таким чином щоб в таблиці відображалися поля «Прізвища», «Імя», «Стипендія», лише тих студентів у кого немає стипендії.
Реалізувати SQL- запит таким чином щоб в таблиці відображалися поля «Прізвища», «Імя», «Оцінка», лише тих студентів у кого є п’ятірки
Практична робота №6
Тема: Робота з базами даних. Використання зв'язку один-до-одного між таблицями бази даних.
