а проміжних поверхах)
void put_wload (float weigh) ;//встановлення ваги вантажу і пасажирів у ліфті
void put_excess (float exc) ;//встановлення перевищення вантажопідйомності
void put_safety (bool saf) ;//встановлення безпеки
float get_weight () ;//повернення вантажопідйомності
int get_h () ;//повернення кількості поверхів
bool get_stop () ;//повернення політики обслуговування
float get_wload () ;//повернення ваги вантажу і пасажирів у ліфті
float get_excess () ;//повернення перевищення вантажопідйомності
bool get_safety () ;//повернення безпеки
void global_tuning () ;//налаштування ліфта
};
Заголовний файл класу В«вантажний ліфтВ»:
class car_lift: public lift
{
load * cargo ;//масив вантажів
int qual ;//кількість викликів
public:
car_lift ();
~ car_lift ();
int get_first (int k) ;//повернення початкового поверху
int get_last (int k) ;//повернення кінцевого поверху
float get_load (int k) ;//повернення ваги вантажу
float get_pweight (int k) ;//повернення ваги пасажира
bool get_in (int k) ;//повернення знаходження вантажу в ліфті
bool get_out (int k) ;//повернення знаходження вантажу поза ліфта
void put_load (int ql) ;//встановлення кількості викликів
void turning () ;//введення даних для роботи ліфта
void entry (load & l) ;//вхід пасажира з ліфта
void out (load & l) ;//вихід пасажира з ліфта
void overl (int floor) ;//тимчасовий вихід пасажира у зв'язку з перевантаженням
void work () ;//робота ліфта
};
3.2 Опис структур даних
Далі наведений опис структур даних і функцій використовуваних класів.
В· void global_turning ()
Функція використовується для глобальної налаштування роботи ліфта. Приклад реалізації функції наведено ниже:
void lift :: global_tuning ()
{
clrscr ();
float f_number = 0;
int i_number = 0;
cout <<"Глобальна настройка роботи ліфта:" <
do
{
cout <<"Вантажопідйомність ліфта (кг):";
cin>> f_number;
if (f_number <= 0)
cout <<"Вантажопідйомність повинна бути більше 0 "<
} while (F_number <= 0);
put_weight (f_number);
cout <<"Активувати безпеку? ('да'-1)";
cin>> i_number;
if (i_number == 1) put_safety (true),
else put_safety (false);
if (get_safety () == false)
{
do
{
cout <<"Допустиме перевищення вантажопідйомності (кг):";
cin>> f_number;
if (f_number <0)
cout <<"Перевищення вантажопідйомності повинно бути позитивним" <
} while (F_number <0);
put_excess (f_number);
}
do
{
cout <<"Кількість поверхів у будинку:";
cin>> i_number;
if (i_number> +25) cout <<"Кількість поверхів повинно бути менше 25 "<
} while (I_number> 25);
put_h (i_number);
cout <<"Зупинятися на проміжних поверхах? ('да'-1) "; p> cin>> i_number;
if (i_number == 1) put_stop (true);
else put_stop (false),
}
У даній реалізації проводиться перевірка вводятьсязначень, щоб уникнути некоректних даних. Наприклад, вантажопідйомність ліфта повинна бути позитивною (більше 0), а кількість поверхів у будинку, в якому експлуатується ліфт, менше 25 (це пов'язано демонстраційної програмою).
В· int up (int a, int b)
Функція використовується для підйому кабіни ліфта з поверху a на поверх b. Приклад реалізації функції наведено нижче:
int up (int a, int b)
{
char num [10];
delay (4000);
setcolor (0);
outtextxy (25,47, "Двері відкриті!");
int x = 5 + (a-1) * 25;
for (int i = a; i <= b; i + +)
{
setcolor (15);
itoa (i, num, 10);
outtextxy (x +6,15, num);
if (i> a)
{
setcolor (8);
itoa (i-1, num, 10)
outtextxy (x-19, 15, num);
}
x + = 25;
delay (2000);
}
setcolor (15);
rectangle (5,40,150,60);
setcolor (15);
outtextxy (25,47, "Двері відкриті!");
return b;
}
У даній реалізації функція лише підсвічує номери поверхів під час руху. А після прибуття ліфта підсвічує напис В«Двері відкриті!В». h3> В· int down (int a, int b)
Функція використовується для спуску кабіни ліфта з поверху a на поверх b. Приклад реалізації функції наведено нижче:
int down (int a, int b)
{
char num [10];
delay (4000);
setcolor (0);
outtextxy (25,47, "Двері відкриті!");
int x = 5 + (a-1) * 25;
for (int i = a; i> = b...