ut_lift - знаходження вантажу поза ліфта.
У класі визначено операції установки і повернення значень членів-даних.
На базі попередніх двох класів отримаємо клас В«вантажний ліфтВ». Опис класу наведено нижче:
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 ();
};
У класі визначені члени-дані:
Сargo - масив елементів класу В«вантажВ»;
qual - кількість осіб викликів ліфта.
Над членами-даними класу визначені наступні операції:
В· установка кількості пасажирів, які очікують ліфт;
В· введення даних для роботи ліфта;
В· зміна членів-даних класу у зв'язку з входом пасажира в ліфт;
В· зміна членів-даних класу у зв'язку з виходом пасажира з ліфта;
В· зміна членів-даних класу у зв'язку з перевантаженням ліфта;
В· рух ліфта.
В
2.1 Побудова діаграми класів
Діаграма класів показує класи і їхні відносини, тим самим, представляючи логічний аспект проекту. Окрема діаграма класів являє певний ракурс структури класів. На стадії аналізу використовуються діаграми класів, щоб виділити загальні ролі та обов'язки сутностей, що забезпечують необхідну поведінку системи. На стадії проектування користуються діаграмою класів, щоб передати структуру класів, формують архітектуру системи. p> Два головні елементи діаграми класів - це класи та їх основні відносини. p> Основні атрибути та функції даних класів, а також їх взаємозв'язок і ієрархію зручно показати на діаграмі класів (малюнок 2.1).
В
Рис. 2.1 - Діаграма класів для об'єкта В«вантажний ліфтВ»
2.2 Побудова діаграми модулів
Діаграма модулів показує розподіл класів і об'єктів за модулям у фізичному проектуванні системи. Кожна окрема діаграма модулів представляє деякий ракурс структури модулів системи. При розробці ми використовуємо діаграму модулів, щоб показати фізична поділ нашої архітектури по шарах і розділах. Основними елементами діаграми модулів є модулі та їх залежно. p> Єдиний зв'язок, яка може існувати між двома модулями, - компіляційного залежність - представляється стрілкою, що виходить із залежного модуля. У C + + така залежність вказується директивою # include. У безлічі компіляційного залежностей не можуть зустрічатися цикли. Щоб визначити часткову упорядкованість компіляцій, досить виконати часткове упорядкування структури модулів системи.
На малюнку 2.2 показана діаграма модулів для нашої задачі.
В
Рис. 2.2 - Діаграма модулів
3. Структура класу В«вантажний ліфт В»
3.1 Формальний опис класу
В
Далі наведені заголовні h файли з коментарями.
Заголовний файл класу В«вантаж":
class load
{
int first_floor ;//початковий поверх
int last_floor ;//кінцевий поверх
float weight_load ;//вага вантажу
float pas_weight ;//вага пасажира
bool in_lift ;//в ліфті
bool out_lift ;//поза ліфта
public:
load () ;//конструктор
void put_first (int floor) ;//встановлення початкового поверху
void put_last (int floor) ;//встановлення кінцевого поверху
void put_load (float car) ;//встановлення ваги вантажу
void put_in (bool in) ;//встановлення знаходження вантажу в ліфті
void put_out (bool out) ;//встановлення знаходження вантажу поза ліфта
int get_first () ;//повернення початкового поверху
int get_last () ;//повернення кінцевого поверху
float get_load () ;//повернення ваги вантажу
float get_pweight () ;//повернення ваги пасажира
bool get_in () ;//повернення знаходження вантажу в ліфті
bool get_out () ;//повернення знаходження вантажу поза ліфта
};
Заголовний файл класу В«ліфтВ»:
class lift
{
float weight ;//вантажопідйомність
int height ;//кол-во поверхів
bool stop ;//зупинка на проміжних поверхах
float weight_load ;//вага вантажу і пасажирів у ліфті
float exc_weight ;//перевищення вантажопідйомності
bool safety ;//активація безпеки
public:
lift () ;//конструктор
void put_weight (float weigh) ;//встановлення вантажопідйомності
void put_h (int h) ;//встановлення кількості поверхів
void put_stop (bool stp) ;//встановлення політики обслуговування
(зупинятися чи н...