Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
1

Создать меню для программы

15.12.2017, 19:06. Показов 8287. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите, пожалуйста, создать меню для программы такого вида:

1.Ввод данных(создание файла)
2.Просмотр данных
3.Удаление записи
4.Редактирование записи
5.Сортировка данных
6.Выход

Сама программа:

Pascal
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
type
  complex = record
    re, im: real;
  end;
 
var
  f: text;
  g: file of complex;
  x: complex;
  s: string;
 
function ComplexToStr(x: complex): string;
var
  t: string;
begin
  t := FloatToStr(x.re);
  if x.im >= 0 then
    t := t + '+' + FloatToStr(x.im)
  else  
    t := t + FloatToStr(x.im);
  t := t + 'i';
  ComplexToStr := t;
end;
 
function StrToComplex(s: string): complex;
var
  x: complex;
  n: integer;
begin
  delete(s, length(s), 1); // убрали i
  n := pos('+', s);
  if n = 0 then 
    n := pos('-', s, 2); // игнорируем первый -
  x.re := StrToFloat(copy(s, 1, n - 1));
  x.im := StrToFloat(copy(s, n, Length(s)));
  StrToComplex := x;
end;
 
begin
  assign(f, 'complex.txt');
  assign(g, 'complex.dat');
  reset(f);
  rewrite(g);
  writeln('Исходный текстовый файл:');
  while not eof(f) do
  begin
    readln(f, s);
    write(s, ' ');
    x := StrToComplex(s);
    write(g, x);
  end;
  writeln;
  writeln('Типизированный файл:');
  reset(g);
  while not eof(g) do
  begin
    read(g, x);
    write(ComplexToStr(x), ' ');
  end;
  writeln;
  writeln('Добавление числа в файл.');
  write('Введите действительную часть числа: ');
  readln(x.re);
  write('Введите мнимую часть числа: ');
  readln(x.im);
  seek(g, filesize(g));
  write(g, x);
  writeln('Измененный типизированный файл:');
  reset(g);
  while not eof(g) do
  begin
    read(g, x);
    write(ComplexToStr(x), ' ');
  end;
  close(f);
  close(g);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2017, 19:06
Ответы с готовыми решениями:

Создать меню для программы
меню.

Создать меню для программы
Помогите зделать меню для етой задачи) .Мне нужно два окна для ввода числа и вывода и кнопку для...

Как создать меню, которое будет запускать внешние программы?
Подскажите плз как создать менюшку которая будет запускать внешние програмки написанные на Паскаль...

Создать меню для игры
При запуске программы загружается и меню и игра одновременно!!! (Как на картинке) Я хочу чтобы ...

8
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 19:30 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses crt;
var
d:char;
begin
writeln('1.Ввод данных(создание файла)');
writeln('2.Просмотр данных  ');
writeln('3.Удаление записи ');
writeln('4.Редактирование записи');
writeln('5.Сортировка данных  ');
writeln('6.Выход           ');
d:=readkey;
case d of
'1': writeln('1');//процедура ввода
'2': writeln('2');//--\\--просмотра
'3': writeln('3');//--\\-- удаления
'4': writeln('4');//--\\-- редакт
'5': writeln('5');//--\\--сорт
'6':exit;
   end;
   end.
1
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
15.12.2017, 19:38  [ТС] 3
Спасибо) А вставлять его в начало или конец программы?

Добавлено через 6 минут
Спасибо) А как его в программу вставить?
0
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 19:41 4
в основную программу.

можно еще так
Pascal
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
uses crt;
procedure pak;
var a,b,c:integer;
begin
writeln('введите а и б');
readln(a,b);
c:=a+b;
writeln(c);
readln;
end;
var
d:byte;
begin
 d := 0;
  while d <> 6 do
  begin
writeln('1.Ввод данных(создание файла)');
writeln('2.Просмотр данных  ');
writeln('3.Удаление записи ');
writeln('4.Редактирование записи');
writeln('5.Сортировка данных  ');
writeln('6.Выход           ');
readln(d);
case d of
1:pak;//процедура ввода
2: writeln('2');//--\\--просмотра
3: writeln('3');//--\\-- удаления
4: writeln('4');//--\\-- редакт
5: writeln('5');//--\\--сорт
6:break;
end;
end;
   end.
1
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
15.12.2017, 20:02  [ТС] 5
Да,я понимаю,что в основную программу.. Только как это сделать не могу понять..
0
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 20:07 6
задание выложите. что вообще нужно сделать?
1
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
15.12.2017, 20:13  [ТС] 7
Каждая строка текстового файла представляет собой запись комплексного числа. Разработать программу создания типизированного файла, содержащего комплексные числа, из заданного. Программа должна также позволять
добавлять в файл новые числа и сортировать его. Вместе с подобным меню.
0
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 20:39 8
вот вам для образца:
Pascal
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
Program zap_file;
uses crt;
type
 TF=record
 name:string[20];
 price:integer;
 count:integer;
 end;
 
var
 fz:file of TF;
 zap:TF;
 v:integer;
{-----процедура записи в файл------}
procedure fwrite;
var
 ch:char;
begin
{открываем файл для записи (создаем)}
 rewrite(fz);
 writeln('окончание ввода в файл - 0');
 repeat
 {ввод исходных данных c клавиатуры с помощью оператора with}
 with zap do begin
 write('Введите наименование: '); readln(name);
 write('Введите стоимость: '); readln(price);
 write('Введите количество: '); readln(count);
 end;
 {занесение записи в файл}
 write(fz,zap);
 writeln('Continue? (y/n)');
 readln(ch);
 until ch='n';
end;
{-----процедура чтения записей из файла------}
procedure fread;
var
 i:integer;
begin
{открываем файл для чтения}
 reset(fz);
{читаем запись из файла}
 i:=0;
 while not eof(fz) do begin
 i:=i+1;
 read(fz,zap);
{вывод записи с помощью оператора with}
 with zap do begin
 writeln(i:3,name:15,price:10,count:6);
 end;
 end;
{закрываем файл}
 close(fz);
end;
 {-----процедура добавления записей в файл------}
procedure fappend;
var
 ch:char;
begin
{открываем файл для чтения}
 reset(fz);
 writeln('окончание ввода в файл - 0');
{ устанавливаем указатель последнею запись в файле}
 seek(fz,filesize(fz));
 repeat
 {ввод исходных данных c клавиатуры с помощью оператора with}
 with zap do begin
 write('Введите наименование: '); readln(name);
 write('Введите стоимость: '); readln(price);
 write('Введите количество: '); readln(count);
 end;
{занесение записи в файл}
 write(fz,zap);
 writeln('Continue? (y/n)');
 readln(ch);
 until ch='n';
{закрываем файл}
 close(fz);
end;
 {-----процедура изменения записи в файле------}
procedure fcorrect;
var
 ch:char;
 n:integer;
begin
{ перед изменением записи - выводим все записи на экран}
 fread;
 reset(fz); {открываем файл для чтения}
 writeln('окончание ввода в файл - 0');
 writeln('Введите номер записи для изменения: ');
 readln(n);
 seek(fz,n-1);{устанавливаем указатель на требуемую запись в файле}
 repeat
{читаем с клавиатуры новые значения}
 with zap do begin
 write('Введите наименование: '); readln(name);
 write('Введите стоимость: '); readln(price);
 write('Введите количество: '); readln(count);
 end;
{новую запись записываем на место старой записи}
 write(fz,zap);
 writeln('Continue? (y/n)');
 readln(ch);
 until ch='n';
end;
 {-----процедура удаления записи из файла------}
procedure del;
var
 k, n:integer;
 j,i:integer;
 f:file of TF;
begin
{подготовка к удалению записей: переименование исходного
файла и открытие нового файла с тем же именем}
 rename(fz,'sclad.bak'); {переименовываем файл}
 reset(fz); {открываем файл для чтения}
 assign(f,'sclad.dat'); {связываем новый файл с переменной}
 rewrite(f); {открываем новый файл для записи}
 write('Введите номер удаляемой записи n= ');
 readln(n);
 i:=0;
 while not eof(fz) do begin
 {читаем запись из файла}
 read(fz,zap);
 {если запись не подлежит удалению, то записываем ее в новый файл}
 if not eof(f) then write(f,zap);
 i:=i+1;
 end;
close(fz); {закрываем файлы}
close(f);
reset(f); {открываем новый файл для чтения}
rewrite(fz); {открываем старый файл для записи}
 while not eof(f) do begin
 {записываем данные в старый файл}
 read(f,zap); write(fz,zap);
 end;
close(fz); {закрываем файлы}
close(f);
erase(f); {удаляем новый файл}
rename(fz, 'sclad.dat'); {переименовываем файл}
end;
begin
Assign(fz,'sclad.dat');
 repeat
 writeln(' MENU ');
 writeln('1-Write '); {запись в файл}
 writeln('2-Read '); {чтение записей из файла}
 writeln('3-Append '); {добавление записей в файл}
 writeln('4-Correct'); {изменение записи в файле}
 writeln('5-Del '); {удаление записи из файла}
 writeln('6-Exit '); {выход из меню}
 readln (v);
 case v of
 1: fwrite;
 2: fread;
 3: fappend;
 4: fcorrect;
 5: del;
 6: exit;
 end;
until v=6;
end.
1
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
16.12.2017, 19:06  [ТС] 9
Спасибо. Только я не очень понимаю

Добавлено через 32 минуты
Pascal
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
Program Kurs;
uses crt;
type
 complex = record
    re, im: real;
 end;
 
var
  f: text;
  g: file of complex;
  x: complex;
  s: string;
function ComplexToStr(x: complex): string;
var
  t: string;
begin
  t := FloatToStr(x.re);
  if x.im >= 0 then
    t := t + '+' + FloatToStr(x.im)
  else  
    t := t + FloatToStr(x.im);
  t := t + 'i';
  ComplexToStr := t;
end;
{-----процедура записи в файл------}
procedure fwrite;
var
 ch:char;
begin
{открываем файл для записи (создаем)}
 rewrite(g);
 writeln('окончание ввода в файл - 0');
 repeat
 {ввод исходных данных c клавиатуры с помощью оператора with}
 with g do begin
 write('Введите действительную часть числа: '); readln(x.re);
 write('Введите мнимую часть числа: '); readln(x.im);
 end;
 {занесение записи в файл}
 write(f,g);
 writeln('Продолжить ввод? (y/n)');
 readln(ch);
 until ch='n';
end;
{-----процедура чтения записей из файла------}
procedure fread;
var
 i:integer;
begin
{открываем файл для чтения}
 reset(g);
{читаем запись из файла}
 i:=0;
 while not eof(g) do begin
 i:=i+1;
{вывод записи с помощью оператора with}
 with g do begin
 writeln(i:0,1);
 end;
 end;
{закрываем файл}
 close(g);
end;
 {-----процедура добавления записей в файл------}
procedure fappend;
var
 ch:char;
begin
{открываем файл для чтения}
 reset(g);
 writeln('окончание ввода в файл - 0');
{ устанавливаем указатель последнею запись в файле}
 seek(g,filesize(g));
 repeat
 {ввод исходных данных c клавиатуры с помощью оператора with}
 with g do begin
 write('Введите действительную часть числа: '); readln(x.re);
 write('Введите мнимую часть числа: '); readln(x.im);
 end;
{занесение записи в файл}
 write(f,g);
 writeln('Продолжить ввод? (y/n)');
 readln(ch);
 until ch='n';
{закрываем файл}
 close(g);
end;
 {-----процедура изменения записи в файле------}
procedure fcorrect;
var
 ch:char;
 n:integer;
begin
{ перед изменением записи - выводим все записи на экран}
 fread;
 reset(f); {открываем файл для чтения}
 writeln('окончание ввода в файл - 0');
 writeln('Введите номер записи для изменения: ');
 readln(n);
 seek(g,n-1);{устанавливаем указатель на требуемую запись в файле}
 repeat
{читаем с клавиатуры новые значения}
 with g do begin
 write('Введите действительную часть числа: '); readln(x.re);
 write('Введите мнимую часть числа: '); readln(x.im);
 end;
{новую запись записываем на место старой записи}
 write(f,g);
 writeln('Продолжить ввод? (y/n)');
 readln(ch);
 until ch='n';
end;
 {-----процедура удаления записи из файла------}
procedure del;
var
 k, n:integer;
 j,i:integer;
 f:file of complex;
begin
{подготовка к удалению записей: переименование исходного
файла и открытие нового файла с тем же именем}
 rename(f,'f.txt'); {переименовываем файл}
 reset(f); {открываем файл для чтения}
 assign(f,'g.dat'); {связываем новый файл с переменной}
 rewrite(f); {открываем новый файл для записи}
 write('Введите номер удаляемой записи n= ');
 readln(n);
 i:=0;
 while not eof(f) do begin
 {читаем запись из файла}
 read(f,x);
 {если запись не подлежит удалению, то записываем ее в новый файл}
 if not eof(f) then write(f,x);
 i:=i+1;
 end;
close(f); {закрываем файлы}
close(f);
reset(f); {открываем новый файл для чтения}
rewrite(f); {открываем старый файл для записи}
 while not eof(f) do begin
 {записываем данные в старый файл}
 read(f,x); write(f,x);
 end;
close(f); {закрываем файлы}
close(f);
erase(f); {удаляем новый файл}
rename(f, 'g.dat'); {переименовываем файл}
end;
begin
Assign(g,'g.dat');
 repeat
 writeln(' МЕНЮ ');
 writeln('1-Запись в файл '); {запись в файл}
 writeln('2-Чтение записей '); {чтение записей из файла}
 writeln('3-Добавление записей '); {добавление записей в файл}
 writeln('4-Изменение записей'); {изменение записи в файле}
 writeln('5-Удаление записей '); {удаление записи из файла}
 writeln('6-Выход '); {выход из меню}
 readln (f);
 case f of
 1: fwrite;
 2: fread;
 3: fappend;
 4: fcorrect;
 5: del;
 6: exit;
 end;
until f=6;
end.
Не могу понять, что не так

Добавлено через 21 час 52 минуты
Ребят, я понимаю, что я бездарность, каких свет не видывал и моей наглости хватит на весь форум, но не мог бы кто-нибудь правильно составить данную программу?
0
16.12.2017, 19:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 19:06
Помогаю со студенческими работами здесь

Создать блок-схему для программы
uses crt; const rz = ;{разделителители слов, можно добавить еще, от файла зависит} var...

Создать файл для результатов работы программы
Для записи результатов работы программы необходимо создать файл. В ходе работы программа будет...

Интерактивно создать меню для программы, и события для каждого пункта
Ну значит дела такие - есть файл со списком слов. Сколько слов не известно. Нужно создать в...

Сделано меню программы через case, как сделать цикл для меню
Сделано меню программы через case ,как сделать цикл для меню чтобы после каждого выбранного пункта...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru