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

Как упростить меню? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопросы по C++ http://www.cyberforum.ru/cpp-beginners/thread364252.html
Всем привет! У меня появилось несколько вопросов по C++, был бы рад, если бы Вы помогли бы мне хотя бы из одним из них. 1) Как узнать количество строк в файле; 2) Как узнать количество символов в файле; 3) Как узнать количество символов в отдельной строке файла; 4) Как считать каждую строку в отдельный массив символов (char); 5) Есть строка с N-ым количемством чисел, записаных через...
C++ Вычислить значение выражения ребят,помогите решить эти задачи в "С". http://www.cyberforum.ru/cpp-beginners/thread364241.html
C++ C++ и MPI
Подскажите пожалуйста, бесплатный компилятор, который работает хотя бы со второй версией библиотеки MPI, хотя уже есть третья версия. Платформа на компе: Windows, конфиг - AMD.
C++ классы
что значит : и :: A-основной класс B-производный класс B::B(int ch,char *str):A(ch) {} непонимаю зачем тут A(ch) без этого не компилируется Добавлено через 17 минут
C++ Сохранить переменный член в области динамической памяти ???? http://www.cyberforum.ru/cpp-beginners/thread364212.html
Есть класс class Analiz { public: Analiz(); ~Analiz(); int A(){return itsA;} void B(int I){itsA=I;} private:
C++ Передача вектора по ссылке Делаю задание Страуструпа на шаблоны, но столкнулся с тем что передавая вектор по ссылке он передаётся не по ссылке (такая вот тавтология). #include <iostream> #include <vector> #include <algorithm> using namespace std; template<typename T> class Sort { подробнее

Показать сообщение отдельно
Мартиника
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43

Как упростить меню? - C++

10.10.2011, 20:32. Просмотров 428. Ответов 3
Метки (Все метки)

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#include <stdio.h> 
#include <conio.h> // для _getch()
#include <windows.h>
#include <iostream>
using namespace std; 
 
.
.
.
 
 
 
HANDLE hConsole, hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
 
int m_pos = 0;          // позиция меню
int max_pos = 9;        // максимальная позиция меню
 
void SetColor(int text, int background) // устанавливаем цвет
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
void GotoXY(int X, int Y) // позиция курсора
{
    COORD coord = { X, Y };
    SetConsoleCursorPosition(hStdOut, coord);
}
 
 
void choice();
 
void menu(){
{setlocale(LC_ALL, "");
system("cls"); // очистить экран
if(m_pos==0){ 
  SetColor(13,0); 
  cout<<" > Замена максимума и минимума в одномерном массиве\n"; 
  SetColor(15,0);
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n";
  choice();
}
if(m_pos==1){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n"; 
  SetColor(13,0); 
  cout<<" > Шесть задач на диагонали\n"; 
  SetColor(15,0);
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n"; 
  choice(); 
}
if(m_pos==2){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  SetColor(13,0); 
  cout<<" > Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  SetColor(15,0);
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n"; 
  choice();
}
if(m_pos==3){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  SetColor(13,0);
  cout<<" > Подсчитать суммы элементов двумерного массива по столбцам\n";
  SetColor(15,0);
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n"; 
  choice();
}
if(m_pos==4){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  SetColor(13,0);
  cout<<" > Длина строки\n";
  SetColor(15,0);
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n"; 
  choice();
}
if(m_pos==5){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  SetColor(13,0); 
  cout<<" > Слипание двух строк\n";
  SetColor(15,0);
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n"; 
  choice();
}
if(m_pos==6){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  SetColor(13,0);
  cout<<" > Сортировка одномерного массива от максимума к минимуму\n";
  SetColor(15,0);
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  cout<<"   Выход\n";;
  choice();
}
if(m_pos==7){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  SetColor(13,0);
  cout<<" > Сортировка одномерного массива от минимума к максимуму\n";
  SetColor(15,0);
  cout<<"   Выход\n";
  choice();
}
if(m_pos==8){ 
  cout<<"   Замена максимума и минимума в одномерном массиве\n";
  cout<<"   Шесть задач на диагонали\n";
  cout<<"   Поменять местами максимумы под и над главной диагональю двумерного массива\n";
  cout<<"   Подсчитать суммы элементов двумерного массива по столбцам\n";
  cout<<"   Длина строки\n";
  cout<<"   Слипание двух строк\n";
  cout<<"   Сортировка одномерного массива от максимума к минимуму\n";
  cout<<"   Сортировка одномерного массива от минимума к максимуму\n";
  SetColor(13,0);       
  cout<<" > Выход\n"; 
  SetColor(15,0);
  choice();
}
}
}
 
void go(int x){ // Если нажали Enter
  setlocale(LC_ALL, "");
  if(x==0) {exch(); menu();}
  if(x==1) {diagon(); menu();}
  if(x==2) {exch_max(); menu();}
  if(x==3) {summa_st(); menu();}
  if(x==4) { length(); menu();}
  if(x==5) { concat1(); menu();}
  if(x==6) {sort(); menu();}
  if(x==7) {sort1(); menu();}
  cout<<"\n   Нажмите любую\n клавишу";
  SetColor(0,0); 
  GotoXY(35,24);
  exit(0);
}
 
 
void choice(){ // функция выбора
l:
    int ch=_getch(); // считываем значение нажатой клавиши
    if(ch==224){ // 224 - это стрелочки
      switch(ch){
      case 80:  if(m_pos+1<max_pos) // вниз
                  ++m_pos;
                menu();
                break;
      case 72:  if(m_pos-1>=0)// вверх 
                  --m_pos;
                menu();
                break;
      case 13:  go(m_pos);// Enter 
                break;
    default:
    goto l;}
    }
   switch(ch){
      case 80:  if(m_pos+1<max_pos) // вниз 
                ++m_pos;
              menu();
              break;
      case 72:  if(m_pos-1>=0)// вверх
                  --m_pos;
                menu();
                break;
     case 13:  go(m_pos);// Enter
               break;
    default:
    goto l;}
 }
 
int main(){
    menu();
}
Помогите упростить, а то восемь раз повторять такую громоздкую надпись мне не нравится, а как избавится от этих повторов, ума не приложу. так все работает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru