47360 (608233), страница 2
Текст из файла (страница 2)
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);//установка политики обслуживания
(останавливаться ли на промежуточных этажах)
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();//работа лифта
};
-
Описание структур данных
Далее приведено описание структур данных и функций используемых классов.
-
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) "; cin>>i_number; if(i_number==1) put_stop(true); else put_stop(false); } В данной реализации производится проверка вводимых значений, чтобы избежать некорректных данных. Например, грузоподъёмность лифта должна быть положительной (больше 0), а количество этажей в здании, в котором эксплуатируется лифт, меньше 25 (это связано демонстрационной программой). Функция используется для подъёма кабины лифта с этажа 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; } В данной реализации функция лишь подсвечивает номера этажей во время движения. А после прибытия лифта подсвечивает надпись «Двери открыты!». Функция используется для спуска кабины лифта с этажа 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;i--) { setcolor(15); itoa(i,num,10); outtextxy(x+6,15,num);
int up(int a, int b)
int down(int a, int b)















