Добавлен: 31.03.2023
Просмотров: 108
Скачиваний: 1
this->pictureBox10->Location = System::Drawing::Point(21, 229);
this->pictureBox10->Name = L"pictureBox10";
this->pictureBox10->Size = System::Drawing::Size(100, 67);
this->pictureBox10->TabIndex = 15;
this->pictureBox10->TabStop = false;
//
// pictureBox11
//
this->pictureBox11->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox11.Image")));
this->pictureBox11->Location = System::Drawing::Point(316, 173);
this->pictureBox11->Name = L"pictureBox11";
this->pictureBox11->Size = System::Drawing::Size(32, 50);
this->pictureBox11->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;
this->pictureBox11->TabIndex = 16;
this->pictureBox11->TabStop = false;
//
// pictureBox12
//
this->pictureBox12->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox12.Image")));
this->pictureBox12->Location = System::Drawing::Point(197, 173);
this->pictureBox12->Name = L"pictureBox12";
this->pictureBox12->Size = System::Drawing::Size(32, 50);
this->pictureBox12->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;
this->pictureBox12->TabIndex = 17;
this->pictureBox12->TabStop = false;
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(12, 42);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(131, 13);
this->label5->TabIndex = 18;
this->label5->Text = L"Количество пассажиров";
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(172, 39);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(100, 20);
this->textBox2->TabIndex = 19;
//
// pictureBox13
//
this->pictureBox13->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox13.Image")));
this->pictureBox13->Location = System::Drawing::Point(267, 229);
this->pictureBox13->Name = L"pictureBox13";
this->pictureBox13->Size = System::Drawing::Size(59, 81);
this->pictureBox13->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage;
this->pictureBox13->TabIndex = 20;
this->pictureBox13->TabStop = false;
//
// pictureBox14
//
this->pictureBox14->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox14.Image")));
this->pictureBox14->Location = System::Drawing::Point(327, 229);
this->pictureBox14->Name = L"pictureBox14";
this->pictureBox14->Size = System::Drawing::Size(64, 81);
this->pictureBox14->TabIndex = 21;
this->pictureBox14->TabStop = false;
//
// pictureBox15
//
this->pictureBox15->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox15.Image")));
this->pictureBox15->Location = System::Drawing::Point(143, 229);
this->pictureBox15->Name = L"pictureBox15";
this->pictureBox15->Size = System::Drawing::Size(64, 81);
this->pictureBox15->TabIndex = 22;
this->pictureBox15->TabStop = false;
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(12, 65);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(47, 13);
this->label6->TabIndex = 23;
this->label6->Text = L"Прошло";
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(172, 65);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(35, 13);
this->label7->TabIndex = 24;
this->label7->Text = L"label7";
//
// groupBox1
//
this->groupBox1->Controls->Add(this->textBox6);
this->groupBox1->Controls->Add(this->label11);
this->groupBox1->Controls->Add(this->textBox5);
this->groupBox1->Controls->Add(this->label10);
this->groupBox1->Controls->Add(this->textBox4);
this->groupBox1->Controls->Add(this->label9);
this->groupBox1->Controls->Add(this->textBox3);
this->groupBox1->Controls->Add(this->label8);
this->groupBox1->Location = System::Drawing::Point(278, 12);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size = System::Drawing::Size(280, 132);
this->groupBox1->TabIndex = 25;
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"Время";
//
// textBox6
//
this->textBox6->Location = System::Drawing::Point(174, 105);
this->textBox6->Name = L"textBox6";
this->textBox6->Size = System::Drawing::Size(100, 20);
this->textBox6->TabIndex = 27;
//
// label11
//
this->label11->AutoSize = true;
this->label11->Location = System::Drawing::Point(6, 108);
this->label11->Name = L"label11";
this->label11->Size = System::Drawing::Size(77, 13);
this->label11->TabIndex = 26;
this->label11->Text = L"Работа лифта";
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(174, 79);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(100, 20);
this->textBox5->TabIndex = 25;
//
// label10
//
this->label10->AutoSize = true;
this->label10->Location = System::Drawing::Point(6, 82);
this->label10->Name = L"label10";
this->label10->Size = System::Drawing::Size(156, 13);
this->label10->TabIndex = 24;
this->label10->Text = L"Открытие \\ закрытие дверей";
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(174, 53);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(100, 20);
this->textBox4->TabIndex = 23;
//
// label9
//
this->label9->AutoSize = true;
this->label9->Location = System::Drawing::Point(6, 56);
this->label9->Name = L"label9";
this->label9->Size = System::Drawing::Size(102, 13);
this->label9->TabIndex = 22;
this->label9->Text = L"Вкл \\ выкл кнопок";
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(174, 27);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(100, 20);
this->textBox3->TabIndex = 21;
//
// label8
//
this->label8->AutoSize = true;
this->label8->Location = System::Drawing::Point(6, 30);
this->label8->Name = L"label8";
this->label8->Size = System::Drawing::Size(132, 13);
this->label8->TabIndex = 20;
this->label8->Text = L"Вход \\ выход пассажира";
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(570, 391);
this->Controls->Add(this->groupBox1);
this->Controls->Add(this->label7);
this->Controls->Add(this->label6);
this->Controls->Add(this->pictureBox15);
this->Controls->Add(this->pictureBox14);
this->Controls->Add(this->pictureBox13);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->label5);
this->Controls->Add(this->pictureBox12);
this->Controls->Add(this->pictureBox11);
this->Controls->Add(this->pictureBox9);
this->Controls->Add(this->label4);
this->Controls->Add(this->pictureBox5);
this->Controls->Add(this->label3);
this->Controls->Add(this->pictureBox4);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->pictureBox3);
this->Controls->Add(this->pictureBox1);
this->Controls->Add(this->pictureBox2);
this->Controls->Add(this->button1);
this->Controls->Add(this->pictureBox6);
this->Controls->Add(this->pictureBox7);
this->Controls->Add(this->pictureBox8);
this->Controls->Add(this->pictureBox10);
this->ForeColor = System::Drawing::SystemColors::ControlText;
this->Name = L"MyForm";
this->Text = L"Lift";
this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox3))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox4))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox5))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox6))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox7))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox8))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox9))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox10))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox11))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox12))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox13))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox14))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox15))->EndInit();
this->groupBox1->ResumeLayout(false);
this->groupBox1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// объявление делегата для функции SumPassenger
public: delegate void dSumPassenger(int);
// объявление функции SumPassenger
public: void SumPassenger(int k)
{
// Функция для отображения колличества пассажиров по форме
textBox2->Text = Convert::ToString(k);
}
// объявление делегата для функции dPassengerAction
public: delegate void dPassengerAction(int);
// объявление функции dPassengerAction
public: void PassengerAction(int k)
{
// Функция для передвижения пассажира по форме
int i; // переменная для движения пассажира
if (k < 0) { //если параметр больше 0, то переменная отрицательная
i = -1;
}
else { i = 1; }//иначе переменная положительная
pictureBox1->Location = Point(pictureBox1->Location.X, pictureBox1->Location.Y + i);// передвижение фигуры на форме
}
// объявление делегата для функции ButtonLift
public: delegate void dButtonLift(int,bool);
// объявление функции ButtonLift
public: void ButtounLift(int needFloor, bool status)
{
//функция для отображение нужного этажа на кнопке в лифте
//и для отображения этажа с пассажиром
if (status) {// если переменная True
label4->Visible = true; // сделать номер нужного этажа видимым
label4->Text = Convert::ToString(needFloor); // Конвертирование число в строку
pictureBox8->BringToFront();// уход на второй план картинки кнопки
label4->BringToFront();// уход на второй план номер этажа на кнопки
}
else
{
label4->Visible = false;// сделать номер нужного этажа невидимым
pictureBox7->BringToFront(); // уход на второй план картинки кнопки
}
}
// объявление делегата для функции LiftPossition
public: delegate void dLiftPosition(int);
// объявление функции LiftPossition
public: void LiftPosition(int k)
{
// функция для отображения номера этажа с лифтом
label1->Text = Convert::ToString(k);
}
// объявление делегата для функции dPassangerPosition
public: delegate void dPassangerPosition(int);
// объявление функции dPassangerPosition
public: void PassangerPosition(int k)
{
// функция для отображения номера этажа с пассажиром
if (k == -1) { // если параметр отрицательный, то номер этаж невидимый
label3->Visible = false;
}
else
{// если значение другое
label3->Visible = true;// номер этажа видимый
label3->Text = Convert::ToString(k); // ввод номера этажа
}
}
// объявление делегата для функции dShowClock
public: delegate void dShowClock(int);
// объявлени функции dShowClock
public: void ShowClock(int k)
{
// функция для вывода времени, которое прошло
label7->Text = Convert::ToString(k) + " секунд";
}
// объявление делегата для функции dNumberofFloor
public: delegate void dNumberofFloor(int);
// объявление функции dNumberofFloor
public: void NumberofFloor(int k)
{
// функция для отображения количества этажей
textBox1->Text = Convert::ToString(k);
}
// объявление делегата для функции dButtonFloorAction
public: delegate void dButtonFloorAction(int);
// объявление функции dButtonFloorAction
public: void ButtonFloorAction(int k)
{
// функция для отображения состояния кнопки
if (k==1){// если параметр равен 1, кнопка на этаже включается
pictureBox6->BringToFront();
}
else {// если параметр неравен 1, кнопка на этаже выключается
pictureBox5->BringToFront();
}
}
// объявление делегата для функции dPassengerStatus
public: delegate void dPassengerStatus(int);
// объявление функции dPassengerStatus
public: void PassengerStatus(int k)
{
// функция для отображения пассажира
if (k == 1) {// если параметр равен 1, то пассажир виден на форме
pictureBox1->Visible=true;
}
else { // если параметр неравен 1, то пассажир не виден на форме
pictureBox1->Visible = false;
}
}
// объявление делегата для функции dDoorAction
public: delegate void dDoorAction(int);
// объявление делегата для функции dDoorAction
public: void DoorAction(int k)
{
// функция для отображения работы дверей
int k1 = 30;
if (k == 1) {// если параметр равен 1, то двери лифта открываться
int x1, x2, xf, yf;
x1 = -1;
x2 = 1;
pictureBox9->Location = Point(pictureBox9->Location.X+x1, pictureBox9->Location.Y);
pictureBox13->Location = Point(pictureBox13->Location.X +x2, pictureBox13->Location.Y);
}
else {// если параметр неравен 1, то двери лифта закрываються
int x1, x2, xf, yf;
x1 = 1;
x2 = -1;
pictureBox9->Location = Point(pictureBox9->Location.X + x1, pictureBox9->Location.Y);
pictureBox13->Location = Point(pictureBox13->Location.X + x2, pictureBox13->Location.Y);
}
}
// объявление делегата для функции dPointAction
public: delegate void dPointAction(System::String^);
// объявление функции dPointAction
public: void PointAction(System::String^ str)
{
// функция для переключения кнопки между состояниями
if (str=="up") {// если параметр равен up, появляется стрелка вверх
pictureBox11->Visible = true;
pictureBox12->Visible = false;
}
else if (str=="down")
{// если параметр равен down, появляется стрелка вниз
pictureBox11->Visible = false;
pictureBox12->Visible = true;
}
else if (str=="stop")
{// если параметр равен stop, стрелки убираться
pictureBox12->Visible = false;
pictureBox11->Visible = false;
}
}
int timer(int sec, int time) {
// функция для задержки таймера
cout << endl; // перевод каретки на новую строку в консоли
for (int i = 0; i < sec; i++) {// вывод времени в секундах
cout << "\r "; //перевод каретки в начало строки
time++;// увеличение времени
cout << "Прошло " << time;// вывод времени
Sleep(1000);// пауза на 1 секунды
}
cout << endl; // перевод каретки на новую строку в консоли
return time; // возврат функцией времени
}
int randomNumber(int frome, int to) {
srand(time(NULL)); // инициализация генератора случайных чисел
int sc; // переменная для случайного числа
sc = frome + rand() % to; // получение случайного числа
return sc;// возврат функцией случайного числа
}
void elevatorcall(int tofloor,int floor) {
// функция для вызова лифта
if (tofloor == floor) { // Если нужный этаж равен этажу с лифтом
}
else if (tofloor > floor) {// если нужный этаж выше этажа с лифтом
while (tofloor != floor) {// поднимаем лифт, пока этажи не будут равными
floor++; // увеличиваем этаж
Invoke(gcnew dLiftPosition(this, &MyForm::LiftPosition), floor); // отображение позиции лифта на форме
}
}
else if (tofloor < floor)
{// если нужный этаж ниже этажа с лифтом
while (tofloor != floor) {// опускаем лифт, пока этажи не будут равными
floor--; // уменьшаем этаж
Invoke(gcnew dLiftPosition(this, &MyForm::LiftPosition), floor); // отображение позиции лифта на форме
}
}
}
int main()
{
int doorLif=56;
int step1;
int t = 1;
int k = 1;
int sumofpassenegr;// значение пассажиров
int generalTime=0; // начальное значение времени
// проверка на ввод пользовательских данных о количестве пассажиров
if (MainNumberPassenger == NULL) {
sumofpassenegr = 5;//Если нет, то количество пассажиров равно 5
}
else
{
sumofpassenegr = MainNumberPassenger;//Если есть, то количество пассажиров равно введенному значению
}
int fl; //значение этажей
// проверка на ввод пользовательских данных о количестве этажей