Файл: Программные средства создания клиентских программ.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 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; //значение этажей

// проверка на ввод пользовательских данных о количестве этажей