Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZVP_lab-novi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.14 Mб
Скачать

Котрольні питання

  1. Що таке консольна програма?

  2. Як створити консольну програму у C++ Builder?

  3. Чи є різниця між командами консольних і віконних програм?

Лабораторна робота №3 Тема: Використання масивів

Мета: Навчитись оголошувати та застосовувати масиви для вирішення поставленої задачі

Хід роботи

  1. Створити програму (рис. 1), що дозволяє розрахувати розмір страхової премії (рис 2.), відповідній сплаті за договором обов'язкового страхування цивільної відповідальності. Використовуючи компоненту ComboBox, обробку однією функцією подій для декількох компонентів.

  2. Забезпечити, щоб кнопка ОК доступна тільки в тому випадку, якщо введені всі дані, необхідні для розрахунку.

Рис. 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);

}

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