
Добавил:
rus2an
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:3к5с Архитектура информационных систем / Работы / КР2 / КР2
.cpp#include "pch.h"
#include <iostream>
#include <ctime>
#include <windows.h>
void zaderjka()
{
Sleep(100);
printf(".");
Sleep(100);
printf(".");
Sleep(100);
printf(".");
Sleep(100);
printf(".");
Sleep(100);
printf(".\n");
}
int vkl() {
int zz;
setlocale(LC_ALL, "Rus");
printf("Получить данные от датчика\n");
std::cout << "0 - нет, 1 - да: ";
std::cin >> zz;
return zz;
}
int random(int min, int max, int n) {
if (n > 0) {
return min + rand() % (max - min);
}
else {
return NULL;
}
}
int value1()
{
printf("СЧИТЫВАНИЕ ДАННЫХ\n");
printf("\nСчитывание данных с датчика температуры");
zaderjka();
return random(280, 340, vkl());
}
int value2()
{
printf("\nСчитывание данных с оптического датчика прохода поситителей");
zaderjka();
return random(15, 60, vkl());
}
int value3()
{
printf("\nСчитывание данных с датчика ");
zaderjka();
return random(12, 19, vkl());
}
int main()
{
setlocale(0, "rus");
printf("Магазин у дома\n");
printf("Ядерный реактор ВВЭР-1300:\n");
printf("Нормальный температурный режим от 298 до 329 °C\n");
printf("Нормальный водородный режим от 20 до 50 см3/кг\n");
printf("Нормальный режим давления не привышающщий 16 МПа\n\n");
int arr[3] = { value1(), value2(), value3() };
int arr2[3] = { 0,0,0 };
_asm
{
lea EBX, arr
lea EDX, arr2
mov EDI, [EBX]
cmp EDI, 0d
jz lab1
cmp EDI, 329d
jc lable
mov[EDX], 3d
jmp lab1
lable :
cmp EDI, 298d
jc labl
mov[EDX], 2d
jmp lab1
labl :
mov[EDX], 1d
lab1 :
mov EDI, [EBX + 4]
cmp EDI, 0d
jz lab2
cmp EDI, 50d
jc lable1
mov[EDX + 4], 3d
jmp lab2
lable1 :
cmp EDI, 20d
jc labl1
mov[EDX + 4], 2d
jmp lab2
labl1 :
mov[EDX + 4], 1d
lab2 :
mov EDI, [EBX + 8]
cmp EDI, 0d
jz end
cmp EDI, 16d
jc lable2
mov[EDX + 8], 2d
jmp end
lable2 :
mov[EDX + 8], 1d
end :
}
printf("\nОБРАБОТКА ДАННЫХ\n");
printf("\nДатчик температуры: %i°C\n", arr[0]);
switch (arr2[0])
{
case 0: printf("ERROR!\nОшибка получения данных с датчика\n"); break;
case 1: printf("Показатели ниже среднего \nУвеличьте нагрев энергоблока\n"); break;
case 2: printf("Показатели в норме\n Оборудование работает в штатном режиме.\n"); break;
case 3: printf("Показатели выше среднего!\n Запустите систему охлаждения\n"); break;
default: break;
}
printf("\nДатчик газа: %i см3/кг\n", arr[1]);
switch (arr2[1])
{
case 0: printf("ERROR!\nОшибка получения данных с датчика\n"); break;
case 1: printf("Показатели ниже среднего \nУвеличьте концентрацию водорода\n"); break;
case 2: printf("Показатели в норме\n Оборудование работает в штатном режиме.\n"); break;
case 3: printf("Показатели выше среднего!\n Запустите систему удаления водорода\n"); break;
default: break;
}
printf("\nДатчик давления: %i МПа\n", arr[2]);
switch (arr2[2])
{
case 0: printf("ERROR!\nОшибка получения данных с датчика\n"); break;
case 1: printf("Показатели в норме\n Оборудование работает в штатном режиме.\n"); break;
case 2: printf("Показатели выше среднего!\n Запустите компенсатор давления\n"); break;
default: break;
system("pause");
}
}