Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Создать меню - C++

26.02.2010, 23:45. Просмотров 1023. Ответов 11
Метки нет (Все метки)

Здрасти, мне в универе задали сделать меню(есть вложенности). Я подумал что меню можно сделать с помощью классов и без них. Остановился на классах. Так вот, как лучше сделать: чтобы само меню было классом а его пункты подклассами, или пункты сделать классами а само меню подклассом, или меню-класс а его пункты-объекты класса, вообщем затрудняюсь как лучше сделать, подскажите. (яз с++)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2010, 23:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать меню (C++):

Создать меню - C++
Создать меню с командами Input, Work, Exit. При выборе команды Exit приложение завершает работу. При выборе команды Input открывается...

создать меню - C++
помогите создать меню в ВС+ с такими пунктами about edit Show prog run exit

создать меню - C++
#include<iostream.h> #include<conio.h> #include<stdlib.h> // объявление функции INPT(int a, int k,int l); PRNT(int a, int k,...

Как создать меню - C++
В общем хочу для начала написать программу, которая бы решала разные математические действия. То есть при запуске программы появлялся...

Необходимо создать меню к игре - C++
Я новичек, поэтому мне сложнова-то обьяснить. Мне необходимо создать меню к игре: 1. появляется окно - в нем пункты - правила игры, новая...

Создать программу - меню «Калькулятор». - C++
Создать программу - меню «Калькулятор». В программе реализовать следующие операции: 1 очистка результата 2 добавление (вычитание) к...

11
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.02.2010, 00:27 #2
PointsEqual, делайте древовидную структуру меню без классов, с использованием только кейсов
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.02.2010, 00:30  [ТС] #3
почиму кейсами?( классами ведь лучше
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.02.2010, 00:32 #4
PointsEqual, я не вижу смысла в использовании для этой задачи классов. Зачем нужен лишний перерасход времени, памяти и усложнение элементарного кода?
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.02.2010, 00:35  [ТС] #5
ну например есть меню:
1
2
3
4
при на жатии на 3, правее этого меню у меня должно выпасть подменю:
3.1
3.2
3.3

без классов разве проще это?
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.02.2010, 00:47 #6
PointsEqual, на сколько я понял, то программа консольная. Такой код еще никто не отменял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(key)
{
    case 1:
        ...
        switch(subkey)
        {
            case 1:
                 ...
                 break;
            ...
        }
        break;
    case 2:
    ...
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
27.02.2010, 01:07 #7
PointsEqual, Можно заморочиться создав класс для команд меню и класс-контейнер типа стек, в который будут помещаться объекты команд меню... Но это слишком заумно, тем более - для консольного приложения.
M128K145, предложил Вам классическую схему, которая, кстати, применяется не только для создания разветвлённого меню. В виндовс примерно так же сообщения обрабатываются... Вот
пример
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
    switch ( Message ) {
        ...
        case WM_VSCROLL :
            switch ( LOWORD(wParam) ){
                case SB_LINEDOWN :
                    if ( nVPos < nVDif )
                        ++nVPos;
                    break;
                case SB_LINEUP :
                    if ( nVPos > 0 )
                        --nVPos;
                    break;
                case SB_THUMBTRACK :
                    nVPos = HIWORD(wParam);
                    break;
            }
            SetScrollPos(hWnd, SB_VERT, nVPos, TRUE);
            InvalidateRect(hWnd, NULL, TRUE);
            return 0;
        case WM_HSCROLL :
            switch ( LOWORD(wParam) ){
                case SB_LINEDOWN :
                    if ( nHPos - nHDif )
                        ++nHPos;
                    break;
                case SB_LINEUP :
                    if ( nHPos > 0 )
                        --nHPos;
                    break;
                case SB_THUMBTRACK :
                    nHPos = HIWORD(wParam);
                    break;
            }
            SetScrollPos(hWnd, SB_HORZ, nHPos, TRUE);
            InvalidateRect(hWnd, NULL, TRUE);
            return 0;
        ...
    }
    return DefWindowProc(hWnd, Message, wParam, lParam);
кода, обрабатывающего прокрутку окна... Короче, если нет достаточно веской причины создавать классы, настоятельно рекомендую этим методом воспользоваться.
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.02.2010, 01:15  [ТС] #8
за код спасибо.
можно по подробнее про "класс для команд меню"? что в него класть
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
27.02.2010, 01:35 #9
PointsEqual, хороший пример создания меню с помощью классов есть в книжке "Стандартная библиотека С++ на примерах" П. Халперн. Она у меня бумажная, перепечатывать три страницы ломает, если честно... Но всё-таки со switch/case и проще, и нагляднее...
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.02.2010, 10:23  [ТС] #10
easybudda, посмотрел я эту книгу, ну кейсами полегче будит.
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.03.2010, 21:28  [ТС] #11
M128K145, я сделал меню кейсами, это самый выгодный вриант), как ты в начале и сказал
0
neonneo
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 4
22.11.2010, 22:15 #12
А возможно ли в switch и case добавить функции добавления ветви (прошу прощения за тавтологию),удалении и переименования?
Если да, то подскажите как это реализовать?
0
22.11.2010, 22:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 22:15
Привет! Вот еще темы с ответами:

Помогите создать меню в консоли - C++
Есть код игры змейка и надо сделать меню тут же в консоли, самое простое, в котором есть 'Старт' и 'Выход', а выбор осуществляется...

Создать меню настроек в консоли - C++
Доброй ночи В одном из заданий написано: Саму программу я уже написал осталось это меню настроек перед запуском программы. Из...

Создать такое меню как в Far Cry 3 - C++
Только Windows 7+ Вот все игры и не тоько имеют необычный интерфейс и особенно стиль окон и кнопок вот допустим игра far cry 3 имеет...

Как создать двухуровневое меню на switch - C++
Например Пункты меню: 1 2 3 при выборе пункта 2 или любого другого стало доступно под меню 2.1 2.2 2.3


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru