- •Методичні вказівки
- •Лабораторна робота №1
- •Хід роботи
- •Короткі теоретичні відомості
- •Контрольні питання
- •Лабораторна робота №2
- •Короткі теоретичні відомості
- •Котрольні питання
- •Лабораторна робота №3 Тема: Використання масивів
- •Хід роботи
- •Котрольні питання
- •Лабораторна робота №4
- •Хід роботи
- •Котрольні питання
- •Лабораторна робота №5
- •Котрольні питання
- •Лабораторна робота №6 Тема: Розробка мультимедійних програм
- •Хід роботи
- •Завдання для самостійного виконання:
- •Контрольні питання
- •Лабораторна робота №7 Тема: Створення нової компоненти
- •Хід роботи
- •1. Вибір базового класу
- •2. Створення модуля компоненту
- •3. Встановлення компоненту
- •4. Ресурси компоненту
- •5. Установка
- •6. Перевірка компоненти
- •Контрольні питання
- •Лабораторна робота №8 Тема: Створення довідкової системи
- •1. Підготовка довідкової інформації
- •2. Проект довідкової системи
- •2. Використання Microsoft Word
- •3. Використання html Help Workshop
- •4. Створення файлу довідки
- •5. Компіляція
- •6. Вивід довідкової інформації
- •Контрольні питання
- •Лабораторна робота №9 Тема: Створення інсталяційного пакету
- •1. Новий проект
- •2. Структура
- •3. Вибір встановлюваних компонентів
- •4. Конфігурування системи користувача
- •5. Настройка діалогів
- •6. Системні вимоги
- •7. Створення образу установчого диску
- •Котрольні питання
- •Лабораторна робота №10
- •Завдання для самостійної роботи:
- •Короткі теоретичні відомості Компонент tTable
- •Контрольні питання
- •Лабораторна робота №11
- •Хід роботи
- •12. Змінити дану програму так, щоб всі невізуальні компоненти мітились на модулі даних. Короткі теоретичні відомості
- •Модулі даних
- •Контрольні питання
- •Лабораторна робота №12 Тема: Налаштування та робота з базами даних
- •Хід роботи
- •Короткі теоретичні відомості
- •Контрольні питання
- •11. Розмітити на першій формі дві кнопки для перегляду створених звітів. Короткі теоретичні відомості Створення простого звіту
- •Створення звітів "master-detail"
- •Відображення графічних і мемо-полів в звітах
- •Попередній перегляд звітів
- •Котрольні питання
- •Лабораторна робота № 14
- •Хід роботи
- •Короткі теоретичні відомості
- •Контрольні питання
- •Література:
- •Студентами денного відділення спеціальності
- •5.05010301 «Розробка програмного забезпечення»
- •8 2100, Вул.Раневицька, 12, м.Дрогобич Львівської обл.
Котрольні питання
Що таке консольна програма?
Як створити консольну програму у C++ Builder?
Чи є різниця між командами консольних і віконних програм?
Лабораторна робота №3 Тема: Використання масивів
Мета: Навчитись оголошувати та застосовувати масиви для вирішення поставленої задачі
Хід роботи
Створити програму (рис. 1), що дозволяє розрахувати розмір страхової премії (рис 2.), відповідній сплаті за договором обов'язкового страхування цивільної відповідальності. Використовуючи компоненту ComboBox, обробку однією функцією подій для декількох компонентів.
Забезпечити, щоб кнопка ОК доступна тільки в тому випадку, якщо введені всі дані, необхідні для розрахунку.
Рис. 1, Вікно програми
Рис.2, Результат розрахунку
|
|
//Оголошення масиву регіонів
AnsiString reg[8] = {"Львів","Львівська обл.", "Тернопіль", "Харків", "Ів-Франківська обл.", "Запоріжжя", "Київ", "Чернівці"};
// коeф., враховуючи регіон
float Kt [8] ={1.8,1.6, 1.8,1.3,1,1,1,1};
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
int i,n;
n= sizeof (Kt) / sizeof (float);
for (i=0; i<n; i++)
{
ComboBox1->Items->Add(reg[i] ) ;
}
}
/* подія Change всіх компонентів обробляє функція TForml:: Change */
ComboBoxl->OnChange = Change; ComboBox2->OnChange = Change;
ComboBox4->0nChange = Change; ComboBQx4->OnChange = Change;
Editl->OnChange = Change;
Edit2->OnChange = Change;
Edit3->0nChange = Change; }
/* таблиця визначення коефіцієнта страхового тарифу Перший рік - 3-й клас, другий рік (якщо не було страхових випадків) 4-й клас І т.д.). Якщо страховий випадок був, то клас елемент таблиці: рядок - клас попереднього року, стовпець - к-ть страхових випадків. */
// клас безаварійності
Int Cb[6][5] = {{1, -1, -1, -1, -1},
{2, -1, -1, -1, -1},
{3, 1, -1, -1, -1},
{4, 1, -1, -1, -1},
{5, 2, 1, -1, -1},
{6, 3, 1, -1,-1});
// коефіцієнт безаварійності
float Kb[7] = {2.3, 1.55, 1.4, 1, 0.95, 0.9};// конструктор форми
// натиснення на кнопці ОК
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float aTb; // базова ставка тарифу float;
float aKt;// коеф. тарифу float КЬ;
float aKb;// коеф. безаварійності float aKvs;
float aKvs;// коеф. стажу float аКо водія,
float aKo;// коеф., враховуючий кількість осіб що допущенні до управління
float aKm; // коеф. потужності двигуна
float aKs; // коеф., враховуючий період використовування ТС
int pcb,ccb; // попередній і поточний клас безаварійності
int nss; // кількість страхових випадків попереднього періоду
aTb = StrToFloat(Edit1->Text);
aKt = Kt[ComboBox1->ItemIndex];
pcb = StrToInt (Edit2->Text) ;
nss = StrToInt(Edit3->Text);
ccb = Cb[pcb][nss];
if (ccb != -1)
aKb = Kb[ccb];
else aKb = 2.45;
aKb = Kb[ccb];
switch (ComboBox2->ItemIndex) {
case 0: aKvs = 1.3; break;
case 1: aKvs = 1.2; break;
case 2: aKvs = 1.15; break;
case 3: aKvs = 1.0; break; }
// коеф., враховуючий кількість осіб, допущених до управління
if (CheckBox1->Checked)
aKo =1;
else
aKo = 1.5;
// коеф. потужності двигуна
switch (ComboBox3->ItemIndex)
{
case 0 : aKm = 0.5; break;
case 1 : aKm = 0.7; break;
case 2 : aKm = 1.0; break;
case 3 : aKm = 1.3; break;
case 4 : aKm = 1.5; break;
case 5 : aKm = 1.7; break;
case 6 : aKm = 1.9; break; }
// коеф., враховуючий період використовування ТС :
switch (ComboBox4->ItemIndex)
{
case 0 : aKs = 0.1; break ;
case 1 : aKs = 0.8; break;
case 2 : aKs = 0.5; break;
case 3 : aKs = 0.95; break;
case 4 : aKs = 1.0; break; }
// всі коефіцієнти визначені
float T; // тариф
AnsiString st;
T = aTb * aKt * aKb * aKvs * aKo * aKm *aKs;
st = "Базова ставка тарифу: " +FloatToStrF(aTb,ffCurrency,5,2)+ "\nКоеф. тарифу: " + FloatToStrF(aKt,ffGeneral,2,2)+ "\nКоеф. безаварійності: " + FloatToStrF(aKb,ffGeneral,2,2)+
"\nКоеф. стажу водія: " +
FloatToStrF(aKvs,ffGeneral,2,2)+
"\nКоеф. кiлькість осіб, допущенi до управління: " +
FloatToStrF(aKo,ffGeneral,2, 2)+
"\nКоеф. потужності двигуна: " +
FloatToStrF(aKm,ffGeneral,2,2)+
"\nКоеф. періоду використання ТС: " +
FloatToStrF(aKs,ffGeneral,2,2)+
"\n\nТариф: " + FloatToStrF(T,ffCurrency,5,2);
ShowMessage(st) ;
}
// користувач змінив стан якого-небудь з компонентв форми
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
Button1->Enabled =
(ComboBox1->ItemIndex != -1) &&
(ComboBox2->ItemIndex != -1) &&
(ComboBox3->ItemIndex != -1) &&
(ComboBox4->ItemIndex != -1) &&
(Edit1->Text.Length() != 0) &&
(Edit2->Text.Length() != 0) &&
(Edit3->Text.Length() != 0);
}
