База данных в Pascal...

Узнай цену своей работы

Формулировка задачи:

Просто Paskal я напроч забыл, я работаю с другими языками программирования, а это задание очень важно для меня На свое усмотрение создать меню для выбора основных действий работы с программой, таких как: 1) загрузка имеющейся базы данных: а) добавление новой записи; б) удаление записи; в) сохранение данных; г) вывод данных на экран; д) корректировка записи; е) фильтрация данных; ж) поиск данных по некоторому критерию; з) справка; и) выход. 2)создание новой базы данных. При создании меню использовать модули Crt и Graph. Каждое действие меню реализовать с помощью функции или процедуры (на выбор). ЗАДАНИЕ: Предметная область ИС: Городской транспорт Минимальный список характеристик: Вид транспорта, номер маршрута, дата введения маршрута, начальная остановка, конечная остановка, время в пути, примечание.

Решение задачи: «База данных в Pascal...»

textual
Листинг программы
Program baza;
Uses crt;
label 10;
type spisok=record
     vt:string;
     nm:string;
     dvm:string;
     no:string;
     ko:string;
     vvp:string;
     p:string;
     end;
FT= file of spisok;
Var a:ft;
    i,z:integer;
    s:real;
Procedure Sozd (var a:ft);
Var i,j:integer;
    zk:spisok;
begin
rewrite (a);
j:=1;
 while j<>80 do
          begin
          write ('vid transporta: ');
          readln (zk.vt);
          write ('nomer marshryta: ');
          readln (zk.nm);
          write ('data v-v marshryta: ');
          Readln (zk.dvm);
          write ('na4alna9 ostanovka: ');
          readln (zk.no);
          write ('kone4na9 ostanovka: ');
          readln (zk.ko);
          write ('vrem9 v pyti: ');
          readln (zk.vvp);
          write ('prime4anie: ');
          readln (zk.p);
          write (a,zk);
          writeln ('Esli konec zapisi to nazhmite 80 ');
          readln (j);
          end;
close (a);
end;
Procedure vyvod (var a:ft);
Var i:integer;
    zk:spisok;
begin
reset (a);
 writeln ('=================================');
 writeln ('| vid transporta| nomer transporta| data v-v marshryta| n. ostanovka| k. ost| vrem9 v pyti| prime4anie|');
 writeln ('=================================');
  while not eof(a) do
   begin
    read (a,zk);
    write ('|',zk.vt:6,'|');
    write ('|',zk.nm:9,'|');
    write ('|',zk.dvm:6,'|');
    write ('|',zk.no:9,'|');
    write ('|',zk.ko:6,'|');
    write ('|',zk.vvp:9,'|');
    write ('|',zk.p,'|');
    writeln;
    writeln ('-------------------------------');
   end;
close (a);
end;
procedure delete (var a:ft);
Var n,m:longint;
      i:byte;
      mas:array [1..20] of spisok;
begin
 i:=1;
 reset(a);
 writeln ('vvedite nomer zapisi dlja udalenija ');
 readln(n);
 m:=filesize(a)-n;
 seek (a,n);
 while not eof(a) do
           begin
            read (a,mas[i]);
            i:=i+1;
           end;
 close (a);
 reset (a);
 seek (a,n-1);
 truncate (a);
 close (a);
 reset (a);
 seek (a,n-1);
  for i:=1 to m do
   write (a,mas[i]);
end;
Procedure poisk (var a:ft);
var i:integer;
    zk:spisok;
    name:string;
begin
reset (a);
 writeln ('Vvedite imja dlja poiska ');
 readln (name);
 writeln ('spisok s zadannym imenem ');
 writeln ('=======================================================================================================');
 writeln ('| vid transporta| nomer transporta| data v-v marshryta| n. ostanovka| k. ost| vrem9 v pyti| prime4anie|');
 writeln ('=======================================================================================================');
 while not eof(a) do
 begin
  read (a,zk);
  if zk.vt=name then
  begin
    write ('|',zk.vt:6,'|');
    write ('|',zk.nm:9,'|');
    write ('|',zk.dvm:6,'|');
    write ('|',zk.no:9,'|');
    write ('|',zk.ko:6,'|');
    write ('|',zk.vvp:9,'|');
    write ('|',zk.p,'|');
    writeln;
    writeln ('--------------------------------------------------------------------------------------------------------');
  end;
 end;
close(a);
end;
begin
clrscr;
10:
assign (a,'fff');
writeln ('       MEHIO      ');
writeln ('1:cozdanie ');
writeln ('2:vyvod ');
writeln ('3:delete ');
writeln ('4:poisk ');
writeln ('5:vyxod ');
readln (z);
 case z of
  1:sozd(a);
  2:vyvod (a);
  3:delete(a);
  4:poisk (a);
  5:exit;
  end; goto 10;
readln
end.

Объяснение кода листинга программы

Этот код представляет собой программу на языке Pascal, которая использует базу данных в формате файла. Программа содержит три процедуры: Sozd, Vyvod и Poisk. Процедура Sozd открывает файл базы данных, записывает в него информацию о транспорте и затем закрывает файл. В процессе записи в файл выводятся запрошенные данные. Процедура Vyvod открывает файл базы данных, считывает из него информацию о транспорте и выводит ее на экран. Процедура Poisk открывает файл базы данных, считывает из него информацию о транспорте с заданным именем и выводит эту информацию на экран. Также в коде присутствует процедура Delete, которая удаляет из базы данных определенный транспорт. Программа также содержит процедуру Exit, которая завершает работу программы. В конце программы приводится приглашение для ввода номера действия и цикл, который продолжается до тех пор, пока введенный номер действия не будет равен 5.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы