Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MENU_H
- #define MENU_H
- #include <iostream>
- #include <string>
- class menu
- {
- public:
- std::string name;
- menu *prev;
- menu *right;
- menu *down;
- menu *up;
- void displayMenu();
- };
- #endif
- #include "menu.h"
- void menu::displayMenu()
- {
- std::string userInput;
- std::cout<<name<<" menu:n";
- if(prev != 0)
- {
- std::cout<<"0:"<<prev->name<<" menun";
- }
- if(up != 0)
- {
- std::cout<<"1:"<<up->name<<" menun";
- }
- if(down != 0)
- {
- std::cout<<"2:"<<down->name<<" menun";
- }
- if(right != 0)
- {
- std::cout<<"3:"<<right->name<<" menun";
- }
- }
- void buildMenu(menu *menu,std::string name,class menu *prev,class menu* up,class menu* down,class menu* right)
- {
- menu->name = name;
- menu->prev = prev;
- menu->right = right;
- menu->down = down;
- menu->up = up;
- }
- bool valid(std::string userInput,menu *currentMenu)
- {
- if(userInput != "1" && userInput != "2" && userInput != "3" && userInput != "0")
- {
- std::cout<<"invalid input n";
- return false;
- }
- if(userInput == "0" && currentMenu->prev == 0)
- {
- std::cout<<"invalid input n";
- return false;
- }
- if(userInput == "1" && currentMenu->up == 0)
- {
- std::cout<<"invalid input n";
- return false;
- }
- if(userInput == "2" && currentMenu->down == 0)
- {
- std::cout<<"invalid input n";
- return false;
- }
- if(userInput == "3" && currentMenu->right == 0)
- {
- std::cout<<"invalid input n";
- return false;
- }
- return true;
- }
- while(go)
- {
- currentMenu->displayMenu();
- std::cin>>userInput;
- while(!valid(userInput,currentMenu)|| (userInput.size() > 1))
- {
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'n');
- std::cin>>userInput;
- }
- switch(userInput[0])
- {
- case '0':
- currentMenu = currentMenu->prev;
- break;
- case '1':
- currentMenu = currentMenu->up;
- break;
- case '2':
- currentMenu = currentMenu->down;
- break;
- case '3':
- currentMenu = currentMenu->right;
- }
- }
Add Comment
Please, Sign In to add comment