Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Pascal
Перезагрузить страницу Помогите с программой не правильно работает
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
YRI 75 YRI 75 вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.01.2017
По умолчанию Помогите с программой не правильно работает - 07.01.2017, 11:43

Pascal Код:
Program Biblioteka;


Type Bibl=record {описание типа }
Inv_nomer:integer;
Name_author:string[50];
Naim_knigi:string[20];
God_izd:string[20];
Mesto_izd:string[20];
Naim_izd:string[20];
end;
Var f:file of Bibl;
zn, filename:string;
t,k:integer;
s:string;

Procedure Creatfile; {создание файла}
begin



Writeln('Задайте имя файла');
Readln(filename);
Assign(f,filename); {связь с внешним файлом}
Rewrite(f);{открытие нового файла для записи}
end;

Procedure Addrecord; {добавление записи в файл}
Var
rez:integer; kn:char;
begin
while rez <> 0 do
begin

Writeln(' Задайте имя файла, куда добавить запись');
Readln(filename);
Assign(f,filename); {установка связи}
Reset(f);

If rez <> 1 then
begin
Writeln ('Проверьте правильность имени файла! (Y/N)');
Readln(kn);
If (kn='n') or (kn='N') then halt(0);
end;
end;

end;

Procedure Inputfile; {ввод данных в файл}
Var
st:Bibl;
k:char;
begin


Writeln('Введите данные о новой книге:');

Write('Инвентарный номер книги:');
Readln(st.Inv_nomer);
Write('Имя автора:');
Readln(st.Name_author);
Write('Наименование книги:');
Readln(st.naim_knigi);
Write('Год издания:');
Readln(st.god_izd);
Write('Наименование издательства:');
Readln(st.Naim_izd);
Write('Место издания:');
Readln(st.Mesto_izd);

Write('Ввести данные о новой книге? (Y/N)');
Readln(k);
Writeln;


end;

Procedure Redzap; {редактирование записи}
Var
st:Bibl;
filename:string[20];
st2:integer;
Inv_nomer2:integer;
Name_author2:string[20];
Naim_knigi2:string[20];
God_izd2:string[20];
Naim_izd2:string[20];
Mesto_izd2:string[30];
x:integer;
begin


Writeln('Задайте имя файла');
Readln(filename);
Assign(f,filename);
Reset(f);
With st do
begin

Write('Введите инвентарный номер книги:');
Readln(st2);
x:=0;
While not eof(f) do
begin
Read(f,st);
if st.Inv_nomer=st2 then
begin

Writeln('Введите новые данные о книге:');
Write('Инвентарный номер книги:');
Readln(st.Inv_nomer);
Write('Имя автора:');
Readln(st.Name_author);
Write('Наименование книги:');
Readln(st.Naim_knigi);
Write('Год издания:');
Readln(st.God_izd);
Write('Наименование издательства:');
Readln(st.Naim_izd);
Write('Место издания:');
Readln(st.Mesto_izd);

seek(f,filepos(f)-1);
Write(f,st); x:=1;
end;
end;
Close(f);
end;
if x=0 then
Begin

Writeln('Записи с таким номером нет!');
Readln
end;
end;

Procedure Openfile; {процедура открытия файла}
Var
rez:integer; kn:char;
Begin
While rez<>0 do
begin

Write('Задайте имя файла:');
Readln(filename);
Assign(f,filename);
Reset(f);

end;
end;

Procedure Outputfile; {вывод данных из файла}
Var st:Bibl;
Begin
While not eof(f) do
Begin
Read(f,st);

Writeln('Инвентарный номер книги:',st.Inv_nomer);
Writeln('Имя автора:',st.Name_author);
Writeln('Наименование книги:',st.Naim_knigi);
Writeln('Год издания:',st.God_izd);
Writeln('Наименование издательства:',st.Naim_izd);
Writeln('Место издания:',st.Mesto_izd);
Writeln('Для продолжения нажмите (Enter)');
Readln;
end;
Close(f);
end;

Procedure Clearfile; {удаление записи из файла}
Var st:Bibl;
I_N:integer;
fo:file of Bibl;
begin

Writeln('Задайте имя файла, из которого удаляются элементы');
Readln(filename);
Assign(f,filename);
Reset(f);
Assign(fo,'newfile.dat');
Rewrite(fo);

Writeln('Введите номер книги, запись о которой удаляется');
Readln(I_N);
While not eof(f) do
begin
read(f,st);
if st.Inv_nomer<>I_N then
Write(fo,st);
end;
Close(f);
Close(fo);
Erase(f);
Rename(fo,filename);
end;
{Основная часть программы}
Procedure P_Nom; {поиск по номеру}
var PNo:integer; st:Bibl;
begin

write ('Введите инвентарный номер книги: ');
readln(PNo);

begin
read(f,st);
if PNo=st.Inv_nomer then begin
Writeln('Инвентарный номер книги:',st.Inv_nomer);
Writeln('Имя автора:',st.Name_author);
Writeln('Наименование книги:',st.Naim_knigi);
Writeln('Год издания:',st.God_izd);
Writeln('Наименование издательства:',st.Naim_izd);
Writeln('Место издания:',st.Mesto_izd);end;
if PNo<> st.Inv_nomer then
Writeln('Книг с таким номером нет!');
Writeln('Нажмите <Enter> для выхода ');
readln; end;
close(f);
end;
Procedure P_Name; {поиск по имени автора}
var PN:string[15]; st:Bibl;
begin

writeln('Введите полное имя автора: ');
readln(PN);



if PN=st.Name_author then begin
Writeln('Инвентарный номер:',st.Inv_nomer);
Writeln('Имя автора:',st.Name_author);
Writeln('Наименование книги:',st.Naim_knigi);
Writeln('Год издания:',st.God_izd);
Writeln('Наименование издательства:',st.Naim_izd);
Writeln('Место издания:',st.Mesto_izd);
end;
if PN<> st.Name_author then
writeln('Авторов с таким именем нет!');
writeln('Нажмите <Enter> для выхода ');
readln;
end;

Begin

Writeln( ' Меню:');

Writeln('1:Создание файла');
Writeln('2:Добавление записи в файл');
Writeln('3:Редактирование записи в файле');
Writeln('4:Просмотр файла ');
Writeln('5:Удаление записи из файла');
Writeln('6:Поиск по инвентарному номеру книги');
Writeln('7:Поиск по имени автора');
Writeln('8:Выход из программы');
Readln(k);
Case k of
1: begin Creatfile; Inputfile end;
2:begin Addrecord; Inputfile end;
3: redzap;
4:begin Openfile; Outputfile end;
5:Clearfile;
6:begin Openfile; P_Nom end;
7:begin Openfile; P_Name end;
{8:Exit}
end;
End.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите(не правильно работает программа) mukanov001 Delphi 0 04.12.2015 21:13
Правильно ли работает оперативка Алтор Память 2 10.06.2012 13:15
Не правильно работает прога на С# morihey Вопросы начинающих программистов 4 15.09.2011 23:04
Не правильно работает программа.. Почему??? arthurfok Visual C++ 3 10.09.2011 01:18
Как правильно работает Sandra Andriy1 Вопросы начинающих программистов 1 25.05.2011 17:53
Как правильно работать с графической программой A n d r e y С/С++ 2 05.05.2011 19:24
Кто работает с программой Autodesk DWF Viewer x_tazy Вопросы начинающих программистов 5 23.06.2008 01:04
На клавиатуре не правильно работает символика. Nikelback Любые вопросы от новичков 4 02.06.2008 12:06
Как правильно работать с программой jv16 power tools? svetiks Любые вопросы от новичков 3 26.03.2008 17:13
Кто работает с программой Autodesk DWF Viewer? PVV.61 Офтопик 0 28.04.2007 12:08
Как правильно работает MaskBlt Lyova Visual C++ 0 01.09.2006 16:00
Как правильно работать с программой Oracle Kelt Oracle 3 23.12.2004 10:21



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов