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

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

14.11.2010, 16:05. Показов 51344. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru