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

Программа с меню - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать Не конкретное название файла? http://www.cyberforum.ru/cpp-beginners/thread636152.html
Помогите написать одну простую программу: 1) Человек вводит в консоль название файла 2) затем вводит путь для его сохранения 3) компьютер выполняет Я не могу осуществить имя файла и путь.... У меня получается только конкретное значение Что мне посоветуете?
C++ Функция не принимает значение Вот код: #include "stdafx.h" #include "CRoute.h" #include <iostream> #include <string.h> #include <windows.h> using namespace std; int _tmain() http://www.cyberforum.ru/cpp-beginners/thread636145.html
Перегрузка функции. Зависимость от формулы C++
Добрый день! Работаю с перегрузкой функции, но необходимо реализовать выбор зависимой формулы, благодаря которой будут считаться все функции. Это заголовочный файл в котором содержатся вычисляемые функции, но имеется переменная r, от которой зависят все формулы. Имеется два вида формул вычисления r. Если инициализировать выбор через switch, то программа, каждый раз обращаясь за r, требует по...
C++ Подвинуть кнопку
Как средствами MFC при нажатии кнопки Windows(IDC_MYBUTTON_1 101) левой кнопкой мыши заставить её передвинуться? И посоветуйте, пожалуйста, толковую книгу по MFC. #define IDC_MYBUTTON_1 101 class CMainWnd : public CFrameWnd { public: ... void MoveButton() { // Если использовать MoveWindow(), то двигается главное окно, а не кнопка
C++ конструкторы копий http://www.cyberforum.ru/cpp-beginners/thread636088.html
1) правильно ли я понял задание class noname { public: noname() : pstring(new std::string), i(0), d(0) {} noname(const noname&); private: std::string *pstring; int i;
C++ Автоматизация(перемещение) Незнаю, но полагаю лучше будет на с++ написать такое...Итак.Предположим на рабочем столе Windows есть Корзина, и она расположена где нибудь там в левом верхнем углу.Как сделать так, чтобы она переместилась в правый нижний угол?Меня интересует такая автоматизация) P.S:Прошу обратить внимание, нужно мне будет перемещать не только корзину, ну и другие файлы, с условием что имена файлов и/или папок... подробнее

Показать сообщение отдельно
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2

Программа с меню - C++

11.08.2012, 18:46. Просмотров 469. Ответов 1
Метки (Все метки)

Недавно встретил программу в на паскале ABC может кто нибудь поможет реализовать ее на c++

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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
uses crt;
const nmenu=4;  //кол-во строк в меню
      DataFileName = 'spis.dat'; //имя файла и путь к нему
type anketa=record
     tel:integer;  //номер телефона
     kod:real;     //код города
     data:string[20];  //дата разговора
     kol:real;     //кол-во минут
     sum:real;     //сумма к оплате
     end;
var
i, n: integer;
  c:char;
  spis: anketa;
  f: file of anketa;
ch:char;       //код последней нажатой клавиши
fun_key: boolean;//нажата ли спец клавиша
str_menu:array [0..nmenu-1] of string;   //массив строк меню
text_color:byte; //цвет текста меню
back_color:byte;//цвет фона строки меню
sel_text_color:byte;//цвет текста выбранного пункта меню
sel_back_color:byte;//цвет фона выбранного пункта меню
menu_back_color:byte;//цвет фона меню
screen_back_color:byte;//цвет фона экрана
border_back_color:byte;//цвет фона рамки
border_color:byte;//цвет рамки
width:byte;//ширина меню
wx:byte;//координата х левого верхнего угла меню
wy:byte;//координата у левого верхнего угла меню
dy:byte;//интервал между строками меню
crm:byte;//номер подсвеченного пункта меню
                  procedure  vivod;  //вывод на экран содержимого файла
                begin
                clrscr;
                seek(f,0);
                    writeln;
                    WriteLn('-------------------------------------------------------------------------------');
                    WriteLn('|      №  телефона   |Код города |Дата разговора|Кол-во минут| Сумма к оплате |');
                    WriteLn('-------------------------------------------------------------------------------');
                 for i:=1 to FileSize(f) do begin
                 Read(f,spis );
                 with spis do
                 begin
                  gotoxy(1,4+i);write('|');
                  gotoxy(2,4+i); write(tel);
                  gotoxy(22,4+i); write('|');
                  gotoxy(23,4+i); write(kod);
                  gotoxy(34,4+i); write('|');
                  gotoxy(35,4+i); write(data);
                  gotoxy(49,4+i); write('|');
                  gotoxy(50,4+i); write(kol);
                  gotoxy(62,4+i); write('|');
                  gotoxy(63,4+i); write(sum);
                  gotoxy(79,4+i);write('|');
                  end;
                  writeln
                  end;
                   WriteLn('-------------------------------------------------------------------------------');
                   writeln('Программа завершена. Нажмите ESC для выхода.');
                   halt
               end;
 
                 procedure dob;//добавление записей в файл
                   var n:integer;
                   begin
                   clrscr;
                   writeln('Введите кол-во добавляемых записей');
                   Readln(n);
                   if n>1 then  begin
                     for i := 1 to n do begin
                     writeln('Введите № телефона:');
                     readln(spis.tel);
                     writeln('Введите код города:');
                     readln(spis.kod);
                     writeln('Введите дату разговора:');
                     readln(spis.data);
                     writeln('Введите Количество минут:');
                     readln(spis.kol);
                     writeln('Введите сумму к оплате:');
                     readln(spis.sum);
                     Write(f, spis);
                     end;
                     end
                     else begin
                     if n=1then begin
                     writeln('Введите № телефона:');
                     readln(spis.tel);
                     writeln('Введите код города:');
                     readln(spis.kod);
                     writeln('Введите дату разговора:');
                     readln(spis.data);
                     writeln('Введите Количество минут:');
                     readln(spis.kol);
                     writeln('Введите сумму к оплате:');
                     readln(spis.sum);
                     Write(f, spis);
                     end
                     else begin writeln('Введено отрицательно число.');
                     close(f);
                     halt
                     end;
                     vivod;
                     end;
                     end;
                               procedure del;//удаление файла
                               begin
                                  close(f);
                                  Erase(f);
                                  gotoxy(27,15);writeln('Файл успешно удален. Также был создан новый файл.');
                                  assign(f, DataFileName );
                                  rewrite(f);
                               end;
                                             procedure ex;//выход
                                             begin
                                             close(f);
                                             halt
                                             end;
//процедура рисует на экране рамку
procedure box(x1,y1,x2,y2:integer);
 var i,j:integer;
begin
 gotoxy(x1+1,y1);
 for i:=x1+1 to x2+4 do write('-');
 gotoxy(x1+1,y2);
 for i:=x1+1 to x2+4 do write('-');
 for i:= y1 to y2 do
   begin
     gotoxy(x1,i);
     write('|');
   end;
 for i:=y1+1 to y2-1 do
  begin
   gotoxy(x2+4,i);
   write('|');
  end;
 gotoxy(x1,y1);
 write('0');
 gotoxy(x2+4,y1);
 write('0');
 gotoxy(x2+4,y2);
 write('0');
 gotoxy(x1,y2);
 write('0');
end;
//процедура очищает экран , вызывает процедуру вох
procedure draw_menu;
  var i,j:integer;
 begin
    textbackground(screen_back_color);
    clrscr;
    textcolor(border_color);
    textbackground(border_back_color);
    box(wx-2,wy-2,wx+width,wy+(nmenu-1)*dy+2);
    textbackground(menu_back_color);
    i:=wx-1;
    for j:=wy-1 to wy+(nmenu-1)*dy+1 do
      for i:=wx-1 to wx+width-1 do
        begin
         gotoxy(i,j);
         write('');
        end;
      for i:=0 to nmenu-1 do
       begin
       if i=crm then
        begin
          textbackground(sel_back_color);
          textcolor(sel_text_color);
        end
      else
         begin
            textbackground(back_color);
            textcolor(text_color);
         end;
      gotoxy(wx,wy+i*dy);
      write(str_menu[i]);
        end;
  end;
  //процедура устанавливает значение для переменных, хранящих цвета текста и фона:
  //размеры меню, координаты положения меню на экране и текст, содержащийся в строках меню
procedure init;
begin
   text_color:=blue;
   back_color:=white;
   sel_text_color:=yellow;
   sel_back_color:=green;
   menu_back_color:=blue;
   screen_back_color:=white;
   border_back_color:=lightgray;
   border_color:=red;
   width:=25;
   wx:=25;
   wy:=9;
   dy:=1;
   crm:=0;
   str_menu[0]:='Просмотреть содержимое файла';
   str_menu[1]:='Добавить записи в файл';
   str_menu[2]:='Удалить файл';
   str_menu[3]:='Выход из программы';
end;
//процедура получая параметры-значения Old - старый номер подсвеченной строки
//menu и Sel - новый номер подсвеченной строки, обновляет изображение меню на
//экране за счет печати строки меню со старым номером цветом Text_Color на фоне
//Back_Сolor, а строки меню с новым номером цветом Sel_Text_Color на фоне цветом
//Sel_Back_Color
procedure new_menu(old,sel:integer);
   begin
        textbackground(sel_back_color);
        textcolor(sel_text_color);
        gotoxy(wx,wy+sel*dy);
        write(str_menu[sel]);
        textbackground(back_color);
        textcolor(text_color);
        gotoxy(wx,wy+old*dy);
        write(str_menu[old]);
   end;
//процедура реагирует на нажатие клавиши со стрелкой вверх
procedure up;
  var old:byte;
begin
     old:=crm;
     if crm-1=-1 then crm:=nmenu;
     crm:=crm-1;
     if crm=-1 then crm:=nmenu-1;
     new_menu(old,crm);
end;
//процедура реагирует на нажатие клавиши со стрелкой вниз
procedure down;
  var old:byte;
begin
     old:=crm;
     crm:=crm+1;
     if crm=nmenu then crm:=0;
     new_menu(old,crm);
end;
//процедура получает параметр-значение - номер выбранного пункта меню и имитирует
//действие программы при выборе данного пункта меню и имитирует действие программы
//при выборе данного пункта
procedure do_select(n:integer);
  begin
   textcolor(n);
   if n=0 then vivod;
   if n=1 then dob;
   if n=2 then del;
   if n=3 then ex;
   gotoxy(1,1);write('Выполнение задания из пункта',n+1);
  end;
//Процедура, получив параметры-значения key и fun_key, выполняет проверку клавиши
//и, если была нажата клавиша Enter, то передает управление процедуре do_select
//указывая ей номер выбранного пункта меню. Если была нажата клавиша со стрелкой
//вверх или вниз, то вызываются проуедуры up или down соответственно.
procedure do_command(key:char;fun_key:boolean);
  begin
      if (not fun_key) or (upcase(key)=#13)// если не спец клавиша и нажата клавиша Enter
        then do_select(crm);
         if fun_key then //если спецклавиша
         case upcase(key) of
          #72: up;
          #80: down;
         end;
  end;
//основная программа
begin
assign(f, DataFileName );  //открытие файла
    if not FileExists( DataFileName )   //проверка существования файла
    then Rewrite(f)
    else begin reset(f); seek(f, FileSize(f)) end;
  init;
  draw_menu;
  repeat
     ch:=readkey;
     if ch=#0 then
       begin
         fun_key:=true;
         ch:=readkey;
       end
       else fun_key:=true;
       do_command(ch,fun_key);
   until (ch=#27);
close(f);
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru