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

С++ Підкажіть, як реалізувати, щоб користувач в консольному вікні мав змогу за допомогою стрілок на клавіатурі обирати пункт, який забажає. А при зміні пунктів змінювався колір надписей. Наприклад:
МЕНЮ
Ввести записи
Вивести записи
Розрахувати кількість введених записів
Вихід з програми

А надписи можуть бути зеленого(якщо користувач на цьому пункті) і червоного кольору (якщо не на цьому пункті) а консольне вікно білого кольору. Користувач за допомогою клавіш обирає бажаний варіант. Також бажано додати стрілки, щоб було зображено на якому пункті стоїть користувач ​

Ответы

Ответ дал: листиккк
0

Ответ:

#include <iostream>

#include <conio.h>

#include <Windows.h>

using namespace std;

enum Color { RED = 12, GREEN = 10 };

void printMenu(int selectedOption) {

   system("cls");

   cout << "MENU" << endl;

   if (selectedOption == 0) {

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), GREEN);

       cout << "-> Ввести записи" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Вивести записи" << endl;

       cout << "   Розрахувати кількість введених записів" << endl;

       cout << "   Вихід з програми" << endl;

   }

   else if (selectedOption == 1) {

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Ввести записи" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), GREEN);

       cout << "-> Вивести записи" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Розрахувати кількість введених записів" << endl;

       cout << "   Вихід з програми" << endl;

   }

   else if (selectedOption == 2) {

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Ввести записи" << endl;

       cout << "   Вивести записи" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), GREEN);

       cout << "-> Розрахувати кількість введених записів" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Вихід з програми" << endl;

   }

   else if (selectedOption == 3) {

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), RED);

       cout << "   Ввести записи" << endl;

       cout << "   Вивести записи" << endl;

       cout << "   Розрахувати кількість введених записів" << endl;

       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), GREEN);

       cout << "-> Вихід з програми" << endl;

   }

}

int main() {

   int selectedOption = 0;

   bool loop = true;

   printMenu(selectedOption);

   while (loop) {

       switch (_getch()) {

       case 72:    // Up arrow key

           if (selectedOption > 0) {

               selectedOption--;

               printMenu(selectedOption);

           }

           break;

       case 80:    // Down arrow key

           if (selectedOption < 3) {

               selectedOption++;

               printMenu(selectedOption);

           }

           break;

       case 27:    // Escape key

           loop = false;

           break;

       }

   }

   return 0;

}

Объяснение:

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