• Предмет: Информатика
  • Автор: tsjdk9r7j2
  • Вопрос задан 1 месяц назад

Нужно написать код для трех приложений на c++. использовать именные каналы
Первое приложение случайным образом определяет число А.
Второе приложение ожидает ввода числа В пользователем, третье
приложение ожидает ввода числа С. Второе и третье приложения
посылают числа первому, оно определяет, совпадает ли полученное
число с числом А, и отсылает назад ответ. Если ответ
положительный, пользователю присуждается очко. Игра ведется 15
раундов. Каждый пользователь должен узнавать об успехах другого
на каждом раунде. Работа приложений должна быть согласована.

Ответы

Ответ дал: memesjustlaked
0

Відповідь:

Пояснення:

Для реалізації даного завдання можна використовувати іменовані канали у мові програмування C++. Нижче наведений код для трьох прикладів:

1. Перше приложення (генерація випадкового числа):

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <fstream>

int main() {

   // Встановлення налаштувань для генерації випадкових чисел

   std::srand(std::time(0));

   // Генерація випадкового числа A

   int A = std::rand() % 100;

   // Запис числа A у файл

   std::ofstream outFile("channelA");

   outFile << A;

   outFile.close();

   return 0;

}

2. Друге приложення (очікування вводу користувача та надсилання числа B):

#include <iostream>

#include <fstream>

int main() {

   // Очікування вводу числа B

   int B;

   std::cout << "Enter the number B: ";

   std::cin >> B;

   // Надсилання числа B у іменований канал channelB

   std::ofstream outFile("channelB");

   outFile << B;

   outFile.close();

   return 0;

}

3. Третє приложення (очікування вводу користувача та надсилання числа C):

#include <iostream>

#include <fstream>

int main() {

   // Очікування вводу числа C

   int C;

   std::cout << "Enter the number C: ";

   std::cin >> C;

   // Надсилання числа C у іменований канал channelC

   std::ofstream outFile("channelC");

   outFile << C;

   outFile.close();

   return 0;

}

4. Четверте приложення (перевірка чисел та обмін результатами):

#include <iostream>

#include <fstream>

int main() {

   // Отримання числа A з файлу

   std::ifstream inFile("channelA");

   int A;

   inFile >> A;

   inFile.close();

   // Отримання числа B з файлу

   std::ifstream inFileB("channelB");

   int B;

   inFileB >> B;

   inFileB.close();

   // Отримання числа C з файлу

   std::ifstream inFileC("channelC");

   int C;

   inFileC >> C;

   inFileC.close();

   // Перевірка, чи збігається число B з числом A

   bool successB = (B == A);

   // Перевірка, чи збігається число C з числом A

   bool successC = (C == A);

   // Надсилання результатів обох гравців

   std::ofstream outFile("channelResult");

   outFile << successB << " " << successC;

   outFile.close();

   return 0;

}

Очікується, що всі програми працюватимуть паралельно, взаємодіючи через спільні файли.

Вас заинтересует