Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/246: Рейтинг темы: голосов - 246, средняя оценка - 4.97
2 / 2 / 0
Регистрация: 26.10.2010
Сообщений: 19

Создание меню в консольном приложении

14.11.2010, 16:05. Показов 51208. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужно создать меню. Каждый пункт в меню - программа, т.е. в меню можно выбирать какую программу запустить. Подскажите пожалуйста как это реализовать, с пояснениями, пожалуйста
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2010, 16:05
Ответы с готовыми решениями:

Меню в консольном приложении
есть ошибки не могу исправить #include <iostream> #include <iomanip> #include <ctime> #include <cstdlib> using namespace std; ...

Вывод в консольном приложении
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек. При обычном запуске всё работает хорошо....

WxWidgets - в консольном приложении
Начал изучение библиотек wxWidgets в Code Blocks, столкнулся с проблемой компиляции, вроде все подключено,просто строку в консоль выводит а...

36
2 / 2 / 0
Регистрация: 26.10.2010
Сообщений: 19
14.11.2010, 19:12  [ТС]
Студворк — интернет-сервис помощи студентам
кастанеда написал с функцией switch, а как можно, чтобы строка выделялась нажатиями стрелок "вверх" и "вниз"?
0
Заблокирован
14.11.2010, 19:18
cnipni,
замените функции вывода в коде Maxwe11, на функции запуска процессов.
например:
C++
1
2
 cprintf("Про автора\n\r"); //замените на:
system("start LAB0.exe");
Если я вас правильно понял
1
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
14.11.2010, 19:31
подскажите, пожалуйста, как, например, будет выглядеть код меню из выбора 3ух строк:
1-выполнить л.р.№1
2-выполнить л.р.№2
3-выход
??
C++
1
2
3
4
5
6
7
8
9
10
11
12
cout<<"If you want start programm \"Kill all humans\", press 1"<<endl;
cout<<"If you want start programm \"Save all humans\", press 2"<<endl;
cout<<"If you are indifferent about the fate of humans, press 0"<<endl;
int H;
cin>>H;
 switch (H)
{
   case 0: exit(0);
   case 1: system("start Kill_all_humans.exe");break;
   case 2: system("start Save_all_humans.exe");break;
   default : printf("You are useless!");
}
Добавлено через 4 минуты
Цитата Сообщение от rrrFer Посмотреть сообщение
cnipni, и еще надо посмотреть перменную среды PATH
В данном случае достаточно, чтоб екзешник был в каталоге с программой

Цитата Сообщение от cnipni Посмотреть сообщение
кастанеда написал с функцией switch
Это не я писал.
1
Заблокирован
14.11.2010, 19:35
Kastaneda,
В данном случае достаточно, чтоб екзешник был в каталоге с программой
про PATH я написал на случай если он захочет калькулятор, например, запустить чтоб не копировал в каталог программы.
1
2 / 2 / 0
Регистрация: 26.10.2010
Сообщений: 19
14.11.2010, 19:42  [ТС]
большое всем спасибо, сейчас буду разбираться
0
2 / 2 / 0
Регистрация: 26.10.2010
Сообщений: 19
08.12.2010, 18:13  [ТС]
все равно программа не запускается с помощью "start LAB.exe"
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
08.12.2010, 19:22
Попробуйте скомпилировать и выполнить вот это:
C++
1
2
3
4
5
#include<cstdlib>
int main(){
    system("start c:\\WINDOWS\\system32\\calc.exe");
    return 0;
}
Скажите потом, что у вас получилось.

P.S. опытным путем было выяснено, что GCC почему-то не выполняет этот код, хотя компилирует. Так что если у вас gcc (ну там или DEV C++ или Code Blocks) то возможно причина в этом.
1
Заблокирован
08.12.2010, 20:05
Kastaneda,
обычно c:\\WINDOWS\\system32\\ записано в PATH, поэтому:
C++
1
2
3
4
5
#include<cstdlib>
int main(){
    system("start calc");
    return 0;
}
тоже работает.
Цитата Сообщение от Kastaneda Посмотреть сообщение
P.S. опытным путем было выяснено, что GCC почему-то не выполняет этот код, хотя компилирует.
Извиняюсь что придираюсь к словам, но вообще не понял что вы имели ввиду. GCC вообще не выполняет код, разве нет?
1
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
08.12.2010, 20:14
Ну да, не правильно выразился)
Правильно так: программа, скомпилированная компилятором gcc, не запускает калькулятор, просто ни чего не происходит, хотя при компиляции ошибок не было, т.е. ф-цию system() он (компилятор) распознал.
0
08.12.2010, 20:24

Не по теме:

Kastaneda, если используете именно gcc(как вы пишите) то МБ cstdlib надо заменить на stdlib.h?
Как компилируете вообще?

0
08.12.2010, 20:30

Не по теме:

Цитата Сообщение от rrrFer Посмотреть сообщение
Как компилируете вообще?
Code
1
g++ a.cpp
да не, дело не в этом, еслиб хедер cstdlib не был найден, то не скомпилировалось тогда вообще.

0
Заблокирован
08.12.2010, 21:34
Цитата Сообщение от Kastaneda Посмотреть сообщение
g++ a.cpp
в результате разве не a.o получится?
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
09.12.2010, 14:17

Не по теме:

Я под виндой в CygWin'е. Получается a.exe.



Добавлено через 1 минуту

Не по теме:

Я проверил в Dev_C++ все нормально, просто причина наверно в том, что в CygWin'е не команды start, так, что на счет gcc я прогнал))

1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 8
08.10.2011, 21:38
Здравствуйте.
у меня то же вопрос по теме. почему то не компелируется программа. вроде выписал из рабочей а свое что то сделать не получилось. и здесь упоминался данный вариант. глянте пожалуйста где ошибка?

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
60
61
62
63
64
65
66
#include <iostream>
//#include <fstream>
#include<stdlib.h>
using namespace std;
 
 
//int menu();
//int x,t;
void enter(), report();
int choice;
 
int main()
{
//-------------------------------------------------
          //int menu()
          int choice;
              //choice = menu()
          cout << "MENU";
          cout << "\n";
            cout << "0. vihod iz podprogrammi\n";
            cout << "1. generator chisl\n";
            cout << "2. Zapis v fail\n";
            cout << "\n viberite komandu: ";
            cin >> choice;
//------------------------------------------
        //int choice;
    //do 
    {
       // choice = menu(); // получаем команду, 
                         // выбраную пользователем
        switch(choice) {
        case 0: break;
        case 1: enter();
        break;
        case 2: report();
        break;
        default: cout << "Poprobuite eshe raz.\n\n";
 
        } //while(choice != 0);
        //return 0;
        }
        
//int menu()
       // {
 
            
            //return choice;
           // }
//----------------------------------- 
void enter()
            {
            int x,t;  
cout << "eto pervii 1 razdel menu\n";
}
//------------------------------------ 
void report()
            {
            int x,t;  
cout << "eto vtoroi 2 razdel menu\n";
}
//------------------------------------- 
        cout << "\n";
        system("PAUSE");
        //cout << "\a";
        return EXIT_SUCCESS;  
}
Закоментированый код это то что осталось от рабочей программы. оставил специально, так как не понял. правда меню немного отличается от выводимого сообщения, это я упростил что бы разобраться в главном. не плохо было бы еще добавить выход из подпрограммы (возврат в меню) но я такого еще не встречал.

 Комментарий модератора 
Используйте теги форматирования кода!
0
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 20
08.10.2011, 21:49
такая подойдет


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
60
#include <iostream>
#include <conio.h>
using namespace std;
void f1();
void f2();
void f3();
void f4();
void main(){
    setlocale(LC_ALL, "RUS");
    int key=0, index=0;
    const int size=4;
    char * menu [size]={"Пункт1","Пункт2","Пункт3","Пункт4"};
    for (;key!=27;){
        system("cls");
        for (int i=0;i<size;i++)
            if (index==i)
                cout<<(char)26<<menu[i]<<"\n";
            else
                cout<<" "<<menu[i]<<"\n";
        key=getch();
        if(key==224||key==0)
            key=getch();
        switch(key){
        case 72:
            if (index>0)
                index--;
            else
                index=size-1;
            break;
        case 80:
            if (index<size-1)
                index++;
            else
                index=0;
            break;
        case 13:
            switch (index){
            case 0: f1(); break;
                case 1: f2(); break;
                    case 2: f3(); break;
                        case 3: f4(); break;
                            case 4: cout<<"Выход\n";
                            key=27; break;
            }
            system("pause");
        }
    }
}
void f1(){
    cout<<"Выбран Пунк1\n";
}
void f2(){
    cout<<"Выбран Пунк2\n";
}
void f3(){
    cout<<"Выбран Пунк3\n";
}
void f4(){
    cout<<"Выбран Пунк4\n";
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 8
09.10.2011, 18:04
почему то Dev-C++ b вилдер 6 выкидывает ошибку. билдер указывает на место смайла.

Добавлено через 18 часов 10 минут
после форматирования и смаил пропал. так и думал что в месть смайла что то длжно быть. вау СПАСИБО!!! чудо меню. я такого не встречал еще. со стрелочкой. :-)
СПАСИБО!!!

Добавлено через 1 час 46 минут
может как то мою пролграмму доработать можно? у меня расширить (добавить пункт) вашу не получилось. да и сам не разобрася. в основе все равно ведь
switch(choice){
case 0: break;
.........
0
20 / 20 / 8
Регистрация: 02.10.2012
Сообщений: 124
16.04.2013, 22:46
помогите написать консольную менюху типо этой
Миниатюры
Создание меню в консольном приложении  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2013, 22:46

Вывод в консольном приложении
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали выводиться вверх ( по спирали, и что бы ничего не стиралось )....

Таймер в консольном приложении
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в файл, а, к примеру через 40 минут стирала...

Изображение в консольном приложении.
Помогите, пожалуйста, с загрузкой и отображением изображений формата bmp в консольном приложении C++. Очень надо! Заранее спасибо.

Timer в консольном приложении
Доброе время суток! Подскажите пожалуйста, как в консольном приложении создать таймер, который бы срабатывал каждые n минут или в...

Таймер в консольном приложении
Подскажите, как сделать чтобы консольное приложение было постоянно запущено и раз в 1 минуту выполняло одну из функций? Добавлено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru