Форум программистов, компьютерный форум CyberForum.ru

Консольное меню - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сумма двоичных чисел, представленных массивами http://www.cyberforum.ru/cpp-beginners/thread528826.html
Ребят, помогите понять, что не так. Задача просуммировать 2 массива двоичных чисел. На посленей итерации в цикле for почему-то значение суммы на 6 элементе меняется. bool x1 = {1, 1, 1, 1, 1}; bool x2 = {0, 0, 0, 0, 0}; bool b = {0}; // переносы bool sum = {0}; for (int i = 4; i > -1; --i) {
C++ В тексте заменить окончания слов ing на еd и вывести результаты на экран. Подскажите, пожалуйста, каким образом можно реализовать данную задачу на Си или выложите пример, идентичный данному, либо пример с поиском и заменой слов в строке или тексте. http://www.cyberforum.ru/cpp-beginners/thread528822.html
C++ Ошибка компиляции array of abstract objects is not allowed
Здравствуйте, следующий код выдает ошибку array of array of abstract class "tochka" is not allowed tochka pole// tochka - class наследовуемый от базового класса RisujObject Скажите пожалуйста с чем связана может быть ошибка? Код слишком большой и непонятный чтобы выкладывать.
C++ Класс Complex
Описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа (конструктор по замачивания и с параметрами, конструктор копии) и представлены в таблице операции над объектами класса (плюс обязательно операцию присваивания) с использованием механизма перегрузки операций. Написать программу, которая демонстрирует работу...
C++ Как узнать, какого типа объект находится по указателю http://www.cyberforum.ru/cpp-beginners/thread528781.html
Есть массив указателей базового класса, нужно узнать какие типы этих объектов. class Shape{ public: ~Shape(){} virtual void Draw() = 0; }; class Triangle : public Shape{ virtual void Draw(){} };
C++ Нужна помощь , помогите переделать несложную программу с C# на C++ Нужна помощь , помогите переделать несложную программу с C# на C++ using System; namespace ConsoleApplication1 { class Program { подробнее

Показать сообщение отдельно
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,593
Записей в блоге: 17
23.11.2012, 22:58     Консольное меню
Исходники : Вывод дерева в виде иерархий папок

Класс расположенный в отдельном юните
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <string>
#include <vector>
#include <iostream>
//-----------------------------------------------------------------------------
namespace my
{
struct console_menu
{
  console_menu* parent;
  std::string name;
  std::vector<console_menu*> items;
  //---------------------------------
  console_menu(std::string name,console_menu* parent=NULL)
    {
    this->name=name;
    this->parent=parent;
    }
  //---------------------------------
  ~console_menu()
    {
    std::cout<<"destroy  "<<name<<std::endl;
    for(unsigned i=0;i<items.size();i++)
       if(items[i]) delete items[i];
    }
  //---------------------------------
  console_menu* add_item(std::string item_name)
   {
   console_menu* new_item= new console_menu(item_name,this);
   items.push_back(new_item);
   return  new_item;
   }
  //---------------------------------
  void show()
   {
    for(unsigned i=0;i<items.size();i++)   std::cout<<items[i]->name<<std::endl;
   }
 //---------------------------------
  std::string path()
   {
   std::string s=name;
   console_menu* pos=parent;
   for(;pos;) { s.insert(0,pos->name+"\/"); pos=pos->parent;}
   return s;
   }
};
};
//---------------------------------------------------------------------------
Использование

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using namespace std;
using namespace my;
//-------------------------------------------------
int main()
{
 console_menu* main_menu= new console_menu("main_menu");
 
 main_menu->add_item("0. item0");
 main_menu->add_item("1. item1");
 main_menu->add_item("2. item2");
 main_menu->add_item("3. item3");
 
 main_menu->items[1]->add_item("0 sub item 1.1");
 
    main_menu->items[1]->items[0]->add_item("0 sub sub item 1.1.1");
 
 main_menu->items[1]->add_item("1 subitem 1.2");
 
 console_menu* current_menu;
 
 current_menu= main_menu;
 cout<<"\/"<<current_menu->path()<<endl;
 current_menu->show();
 
 char key;
 unsigned index;
 string str;
 
 for(;;)
   {
    cin>>str;
    key=str[0];
 
    if(isdigit(key))
     {
     index= atoi(str.c_str());
 
     if(index<current_menu->items.size())
        {
        current_menu= current_menu->items[index];
        cout<<"\/"<<current_menu->path()<<endl;
        current_menu->show();
        }
     else cerr<<"error"<<endl;
     }
    else
     if(str=="exit"||str=="quit")  break;
     else
          if(str=="back" && current_menu->parent)
            {
            current_menu= current_menu->parent;
            cout<<current_menu->path()<<endl;
            current_menu->show();
            }
   }
delete  main_menu;
system("pause");
}
//---------------------------------------------------------------------------
Добавлено через 17 минут
back возврат в предыдущее меню
 
Текущее время: 13:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru