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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
24.11.2010, 22:40     Создание меню #1
необходимо создать в Turbo C меню из 5 пунтктов, первые 4 пункта выполняют открытие файла из какого либо каталога, а последний пункт - выход. Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 22:40     Создание меню
Посмотрите здесь:

Создание меню C++
C++ Создание меню в С++
C++ Создание меню
Создание меню в консоли (не контекстное) C++
Создание консольного меню C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.11.2010, 22:55     Создание меню #2
switch тебе в руки.
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
24.11.2010, 22:56  [ТС]     Создание меню #3
Цитата Сообщение от asics Посмотреть сообщение
switch тебе в руки.
а можно по подробнее я использовал switch в своем коде но файлы почему то упорно отказываются открываться((
Stealik
5 / 5 / 1
Регистрация: 24.11.2010
Сообщений: 10
24.11.2010, 22:59     Создание меню #4
Скинь код
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
24.11.2010, 23:28  [ТС]     Создание меню #5
Цитата Сообщение от Stealik Посмотреть сообщение
Скинь код

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
#include <stdio.h> 
#include <bios.h> 
#include <conio.h> 
#include <stdl ib.h>
void lb2 (void); 
void lb3 (uoid); 
void lb4 (void);
 void lb5 (void); 
void ex (void); 
main ()
{ int ch=0, s=0, i=0; 
clrscr (); 
textnode (C80); 
textbackground (BLACK); 
while (ch! =283)
{ switch (ch) 
{
case 15360: ex(); break; 
case 818: system (“labal2.exe); break; 
case 1875: system("labat3.exe"); break; 
case 1332: system("labat4.exe"); break; 
case 158S: system("labai5.exe"); break; 
case 1846: exit (0); break;
case 18432: s=s-l; break;
case 28488: s-s+l; break;
case 7181: if (i= = 0)  system ("laba2.exe");
if (i= =l|| i= =-5) system ("laba3.exe"); 
if (i= =2||i= =-4) system ("laba4.exe"); 
if (i= =3||i= =-3) system ("laba5.exe"); 
if (i= =4||i= =-2) exit (0);break;
}
I=s%5;
switch (i)
{case 0:lb2 (); break; 
case 1:lb3 (); break; 
case 2:lb4 (); break; 
case 3:lb5 (); break; 
case 4:ex (); break; 
case -l:ex (); break; 
case -2:lb5 (); break; 
case -3:lb4  (); break;
case -4:lb3  (); break;
 
} 
ch=bioskey (0);
}
}
void lb2 (void)
 { clrscr (); 
textmode (C80);
 textcolor (14); 
textbackground (1); 
window (26,7,52,14); 
textbackground (4);
cprintf (" Лабораторная работа 2"); textbackground (1);
cprintf (" Лабораторная работа  3 "); 
cprintf (" Лабораторная работа 4 ");
 cprintf (" Лабораторная работа 5 );
cprintf ("  Выход   ");
textcolor (0); 
textbackground (7); 
textmode (LASTMODE);
}
void lb3 (void) 
{ clrscr ();
textnode (C80);
 textcolor (14); 
textbackground (1); 
window (26,7,52,14); 
textbackground (4);
cprintf (" Лабораторная работа 2"); textbackground (1);
cprintf (" Лабораторная работа  3 "); 
cprintf (" Лабораторная работа 4 ");
 cprintf (" Лабораторная работа 5 );
cprintf ("  Выход   ");
textcolor (0); 
textbackground (7); 
textmode (LASTMODE);
 
}
void lb4 (void) 
{ clrscr ();
textnode (C80);
 textcolor (14); 
textbackground (1); 
window (26,7,52,14); 
textbackground (4);
cprintf (" Лабораторная работа 2"); textbackground (1);
cprintf (" Лабораторная работа  3 "); 
cprintf (" Лабораторная работа 4 ");
 cprintf (" Лабораторная работа 5); 
}
void lb5 (void) 
{ clrscr ();
textnode (C80);
 textcolor (14); 
textbackground (1); 
window (26,7,52,14); 
textbackground (4);
cprintf (" Лабораторная работа 2"); textbackground (1);
cprintf (" Лабораторная работа  3 "); 
cprintf (" Лабораторная работа 4 ");
 cprintf (" Лабораторная работа 5 );
cprintf ("  Выход   ");
textcolor (0); 
textbackground (7); 
textmode (LASTMODE);
}
void ex (void) 
{ clrscr ();
textnode (C80);
 textcolor (14); 
textbackground (1); 
window (26,7,52,14); 
cprintf (" Лабораторная работа 2"); textbackground (1);
cprintf (" Лабораторная работа  3 "); 
cprintf (" Лабораторная работа 4 ");
 cprintf (" Лабораторная работа 5 );
textbackground (4);
textcolor (14IBLINX);
cprintf ("  Выход   ");
textbackground (1); 
 
textcolor (14); 
textbackground (7); 
textcolor (0); 
 
textmode (LASTMODE);
 
}
Набирал код по памяти возможны ошибки.. Не могу понять почему не открывает мои файлы.Объяснитье пожалуйста как и что, по возможности подправьте код.Заранее благодарен
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 06:59  [ТС]     Создание меню #6
Помогите!Код рабочий но после вызова программы из меню не происходит очистки экрана, хотя в цикле на это я уделил внимание,но все равно отказывается очищать

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
char m[5][10] = { "menu1", "menu2", "menu3", "menu4", "exit" };
char dos[5][10] = { "laba1.exe", "laba2.exe", "laba3.exe", "laba4.exe", "exit" };
void paint(int index)
{ int i;
  window(26,7,52,14);
  for(i=0;i<5;i++)
  { gotoxy(1,1+i);
    textattr((i!=index)?7:15);
    textbackground((i!=index)?0:1);
    cprintf("%s",m[i]);
  }
 
}
 
void main(void)
{ int i=5; int c;
  int index=0;
 
  clrscr();
  while(1)
  {
  paint(index);
  while(!kbhit());
  c = getch();
 
  switch(c)
  {
    case 72:
    index--; if(index<0) index=4;
    break;
    case 80:
    index++; if(index>4) index=0;
    break;
    case 13:
    gotoxy(1,6);
    if(index==4) return;
    system(dos[index]);
    break;
  }
  }
  getch();
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 07:32     Создание меню #7
Цитата Сообщение от zver171992 Посмотреть сообщение
хотя в цикле на это я уделил внимание
В цикле ни какой очистки экрана нет.
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 07:47  [ТС]     Создание меню #8
Цитата Сообщение от kazak Посмотреть сообщение
В цикле ни какой очистки экрана нет.
можешь растолковать подробнее я новичок в этом
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 07:54     Создание меню #9
Что тут толковать, функция clrscr(), которая очищает экран стоит до цикла, хотя ей уместней находиться в цекле, допустим перед paint.
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 07:59  [ТС]     Создание меню #10
Цитата Сообщение от kazak Посмотреть сообщение
Что тут толковать, функция clrscr(), которая очищает экран стоит до цикла, хотя ей уместней находиться в цекле, допустим перед paint.
я делал так .... результат нулевой...экран не чистится
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 08:04     Создание меню #11
Еще вариант после system(dos[index]);
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 08:06  [ТС]     Создание меню #12
не помогает((
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 08:13     Создание меню #13
Цитата Сообщение от zver171992 Посмотреть сообщение
window(26,7,52,14);
А если эту строчку закоментировать?
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 08:15  [ТС]     Создание меню #14
Цитата Сообщение от kazak Посмотреть сообщение
А если эту строчку закоментировать?
без нее работает но мне нужно меню ровно по центру, а без
Цитата Сообщение от kazak Посмотреть сообщение
window(26,7,52,14);
получается все полевому сверху.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 08:20     Создание меню #15
Попробуй пару
C
1
2
window(1,1,80,25);
clrscr();
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 08:25  [ТС]     Создание меню #16
Цитата Сообщение от kazak Посмотреть сообщение
Попробуй пару
нет результата... все как и было на шаге до
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.12.2010, 08:32     Создание меню #17
На шаге до было закоментированная строка, можно раскоментировать.
Очистку экрана поставить после вызова программы.
C
1
2
3
4
5
6
7
    case 13:
        gotoxy(1,6);
        if(index==4) return;
        system(dos[index]);
        window(1,1,80,25);
        clrscr();
        break;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2010, 08:38     Создание меню
Еще ссылки по теме:

Создание меню C++
Создание меню C++
Создание меню в С++ C++

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

Или воспользуйтесь поиском по форуму:
zver171992
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 11
05.12.2010, 08:38  [ТС]     Создание меню #18
Цитата Сообщение от kazak Посмотреть сообщение
На шаге до было закоментированная строка, можно раскоментировать.
Очистку экрана поставить после вызова программы.
C
1
2
3
4
5
6
7
    case 13:
        gotoxy(1,6);
        if(index==4) return;
        system(dos[index]);
        window(1,1,80,25);
        clrscr();
        break;
Спасибо заработало я понял свою ошибку... чистил только кусок экрана под меню...
Yandex
Объявления
05.12.2010, 08:38     Создание меню
Ответ Создать тему
Опции темы

Текущее время: 10:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru