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

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

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

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

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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2017, 19:06
Ответы с готовыми решениями:

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

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

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

8
 Аватар для Vadik1993
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 19:30
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  [ТС]
Спасибо) А вставлять его в начало или конец программы?

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

можно еще так
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  [ТС]
Да,я понимаю,что в основную программу.. Только как это сделать не могу понять..
0
 Аватар для Vadik1993
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 20:07
задание выложите. что вообще нужно сделать?
1
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 6
15.12.2017, 20:13  [ТС]
Каждая строка текстового файла представляет собой запись комплексного числа. Разработать программу создания типизированного файла, содержащего комплексные числа, из заданного. Программа должна также позволять
добавлять в файл новые числа и сортировать его. Вместе с подобным меню.
0
 Аватар для Vadik1993
59 / 58 / 39
Регистрация: 16.03.2012
Сообщений: 165
15.12.2017, 20:39
вот вам для образца:
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  [ТС]
Спасибо. Только я не очень понимаю

Добавлено через 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2017, 19:06
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru