С++ Підкажіть, як реалізувати, щоб користувач в консольному вікні мав змогу за допомогою стрілок на клавіатурі обирати пункт, який забажає. А при зміні пунктів змінювався колір надписей. Наприклад:
МЕНЮ
Ввести записи
Вивести записи
Розрахувати кількість введених записів
Вихід з програми
А надписи можуть бути зеленого(якщо користувач на цьому пункті) і червоного кольору (якщо не на цьому пункті) а консольне вікно білого кольору. Користувач за допомогою клавіш обирає бажаний варіант. Також бажано додати стрілки, щоб було зображено на якому пункті стоїть користувач
Ответы
Ответ:
#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;
}
Объяснение: