• Pascal - Задача: Создать базу данных по теме : Книжная библиотека ( название учебника, фамилия учебника, издательство учебника, год учебника, город учебника ).
    Выполнить:
    1) Составить программу с процедурой и функцией по таблице :
    1.Create;
    2. VIew;
    3.Insert;
    4.Delete
    5.Edit
    6.Update
    2) Составить поиск по библиотеке книг

    По желанию: Начертить любой график для задачи и вставить в задачу с библиотекой ( так же выполнить с процедурой

Ответы 2

  • По сути, тут говорится о полноценной мини-СУБД с интерфейсом. Это точно курсовик.
  • Как один из примитивных вариантовtype  LibBook = record    Book:string[50];    Author:string[50];    Publisher:string[30];    PubYear:integer;    City:string[30];    Deleted:boolean    end;var  gf:file of LibBook;function Create(pName:string):file of LibBook;// Создает или обнуляет существующий файл библиотеки// с полным именем pName (в имени можно указать и путь)begin  var f:file of LibBook;  Rewrite(f,pName);  Result:=f;  f.Closeend;procedure Insert(pLib:LibBook);// Добавляет книгу в базуbegin  var n:=FileSize(gf);  Seek(gf,n);  Write(gf,pLib);end;procedure BookWrite(pn:integer;pLib:LibBook);// вывод книги номер pnbegin  Writeln('*** Книга №',pn,' ***');  if pLib.Deleted=False then begin    Writeln('Название: ',pLib.Book);    Writeln('Автор: ',pLib.Author);    Writeln('Издатель: ',pLib.Publisher);    Writeln('Год выпуска: ',pLib.PubYear);    Writeln('Город: ',pLib.City);    end  else Writeln('=== У Д А Л Е Н А ===');  Writelnend;procedure View(pKol:integer:=0);// Отображает содержимое библиотеки.// Можно вывести не все, а только pKol первых записейbegin  var nB:=FileSize(gf);  if nb=0 then Writeln('Библиотека пустая')  else begin    Seek(gf,0);    Writeln('Книг в библиотеке: ',nB,NewLine);    if pKol<>0 then nB:=min(pKol,nb);    var Lib:LibBook;    for var i:=1 to nB do begin      Read(gf,Lib);      BookWrite(i,Lib)      end    endend;function Delete(pNom:integer):boolean;// Удаляет книгу с номером pNom и возвращает true.// Возвращает false, если такой книги нетbegin  var nB:=FileSize(gf);  var Lib:LibBook;  if pNom-1>nB then begin    Writeln('Книга №',pNom,' не найдена');    Result:=False    end  else begin    Seek(gf,pNom-1);    Read(gf,Lib);    Lib.Deleted:=True;    Seek(gf,pNom-1);    Write(gf,Lib);    Writeln('Книга №',pNom,' удалена');    Result:=True    end;end;procedure Find(ps:string);// поиск книги по параметрам, заданным строкой// Формат <код> пробел <значение>begin  var n:=Ord(ps[1])-Ord('0');  Delete(ps,1,2);  var par:=ps;  var Lib:LibBook;  case n of  0:begin // по номеру книги      var nb:=FileSize(gf);      var fn:=par.ToInteger;      if fn-1>nb then Writeln('Книги с таким номером нет')      else begin        Seek(gf,fn-1);        Read(gf,Lib);        BookWrite(fn,Lib)        end    end;  1:begin // по названию книги      var nl:=par.Length; // для контекстного поиска      Seek(gf,0);      var i:=1;      while not Eof(gf) do begin        Read(gf,Lib);        if Copy(Lib.Book,1,nl)=par then begin          BookWrite(i,Lib); Exit          end        else Inc(i)        end;        Writeln('Поиск по названию книги ',par,' неуспешен')    end;  2:begin // по автору книги      var nl:=par.Length; // для контекстного поиска      Seek(gf,0);      var i:=1;      while not Eof(gf) do begin        Read(gf,Lib);        if Copy(Lib.Author,1,nl)=par then begin          BookWrite(i,Lib); Exit          end        else Inc(i)        end;        Writeln('Поиск по автору книги ',par,' неуспешен')    end;  3:begin // по издательству      var nl:=par.Length; // для контекстного поиска      Seek(gf,0);      var i:=1;      while not Eof(gf) do begin        Read(gf,Lib);        if Copy(Lib.Publisher,1,nl)=par then begin          BookWrite(i,Lib); Exit          end        else Inc(i)        end;        Writeln('Поиск по издательству книги ',par,' неуспешен')    end;  4:begin // по году выпуска      Seek(gf,0);      var i:=1;      var ipar:=par.ToInteger;      while not Eof(gf) do begin        Read(gf,Lib);        if Lib.PubYear=ipar then begin          BookWrite(i,Lib); Exit          end        else Inc(i)        end;        Writeln('Поиск по году издания ',par,' неуспешен')    end;  5:begin // по городу      var nl:=par.Length; // для контекстного поиска      Seek(gf,0);      var i:=1;      while not Eof(gf) do begin        Read(gf,Lib);        if Copy(Lib.City,1,nl)=par then begin          BookWrite(i,Lib); Exit          end        else Inc(i)        end;        Writeln('Поиск по городу ',par,' неуспешен')    end;  else Writeln('Неверная строка поиска')  endend;const LibName='MyLib.lib';begin  var MyBook:LibBook;  gf:=Create(LibName);  Reset(gf,LibName);  With MyBook do begin    Book:='Первый учебник';    Author:='Первый автор';    Publisher:='Издательство 1';    PubYear:=2010;;    City:='Город 1'    end;  Insert(MyBook);  With MyBook do begin    Book:='Второй учебник';    Author:='Второй автор';    Publisher:='Издательство 2';    PubYear:=2012;;    City:='Город 2'    end;  Insert(MyBook);  With MyBook do begin    Book:='Третий учебник';    Author:='Третий автор';    Publisher:='Издательство 3';    PubYear:=2006;;    City:='Город 3'    end;  Insert(MyBook);  View;  Delete(2);  View;  Find('0 3');  Find('1 Перв');  Find('2 Тре');  Find('3 Издательство 2');  Find('4 2006');  gf.Closeend.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years