szarlotkas

bazaosob

Dec 12th, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.40 KB | None | 0 0
  1. program osoby;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. type bazaosob = record
  9.      Imie  : string[25];
  10.      Nazwisko : string[25];
  11.      end;
  12.  
  13. var osoba : array[1..100] of bazaosob;
  14.     numer : byte;
  15.     iloscwbazie : byte;
  16.     ile : byte;
  17.     Klaw : string[1];
  18.     i, j : byte;
  19.  
  20.     plikosob : file of bazaosob;
  21.     liczbaosob : file of byte;
  22.  
  23. procedure DodajOsobe(var nowaosoba : bazaosob);
  24.   begin
  25.     reset(plikosob);
  26.     seek(plikosob, filesize(plikosob));
  27.       writeln('Prosze podac nastepujace dane');
  28.       write('Imie: ');
  29.       readln(nowaosoba.Imie);
  30.       write('Nazwisko: ');
  31.       readln(nowaosoba.Nazwisko);
  32.     write(plikosob, nowaosoba);
  33.     close(plikosob);
  34.   end;
  35.  
  36. procedure PierwotnaImie;
  37.  var i : byte;
  38.   begin
  39.     reset(plikosob);
  40.       i:=1;
  41.     while not eof(plikosob) do
  42.     begin
  43.     read(plikosob, osoba[i]);
  44.       writeln(i, '. ', osoba[i].Imie,' ',osoba[i].Nazwisko);
  45.       i:=i+1;
  46.     end;
  47.     close(plikosob);
  48.   end;
  49.  
  50. procedure  PierwotnaNazwisko;
  51. var i : byte;
  52.     begin
  53.     reset(plikosob);
  54.       i:=1;
  55.     while not eof(plikosob) do
  56.     begin
  57.     read(plikosob, osoba[i]);
  58.       writeln(i, '. ', osoba[i].Nazwisko,' ', osoba[i].Imie);
  59.       i:=i+1;
  60.     end;
  61.     close(plikosob);
  62.   end;
  63.  
  64. procedure EdytujOsobe;
  65. var numer : byte;
  66.   begin
  67.       reset(plikosob);
  68.       writeln('Wpisz numer osoby, ktora chcesz edytowac');
  69.       readln(numer);
  70.       seek(plikosob, numer);
  71.       read(plikosob, osoba[numer]);
  72.  
  73.       writeln(numer,'. ',osoba[numer].Imie,' ',osoba[numer].Nazwisko);
  74.       writeln('Prosze podac nowe dane dla osoby ',osoba[numer].Imie,' ',osoba[numer].Nazwisko);
  75.       write('Imie: ');
  76.       readln(osoba[numer].Imie);
  77.       write('Nazwisko: ');
  78.       readln(osoba[numer].Nazwisko);
  79.  
  80.       write(plikosob, osoba[numer]);
  81.       close(plikosob);
  82. end;
  83.  
  84. procedure IndeksNazwisko;
  85. var i, j : byte; zamiana : byte;
  86.  
  87.   begin
  88.   reset(plikosob);
  89.       i:=1;
  90.     while not eof(plikosob) do
  91.     begin
  92.     read(plikosob, osoba[i]);
  93.    for i:= 1 to iloscwbazie-1 do
  94.      for j:= iloscwbazie  downto i+1 do
  95.      if osoba[i].nazwisko[j-1] > osoba[i].nazwisko[j] then
  96.        begin
  97.        j-1 := zamiana;
  98.        j := j-1;
  99.        zamiana := j;
  100.        end;
  101.      i:=i+1;
  102.    end;
  103.    close(plikosob);
  104.    end;
  105.  
  106.  
  107. begin
  108.   iloscwbazie:=0;
  109.  
  110.   assign(plikosob, 'bazaosob.txt');
  111.   assign(liczbaosob, 'liczba.txt');
  112.  
  113.   reset(liczbaosob);
  114.   if not eof(liczbaosob) then read(liczbaosob, iloscwbazie);
  115.   close(liczbaosob);
  116.  
  117.   repeat
  118.   WriteLn('* * * * * * * *   MENU    * * * * * * * *');
  119.   writeln('*                                       *');
  120.   writeln('* 1 - Dodaj osoby.                      *');
  121.   writeln('* 2 - Wyswietl liste osob.              *');
  122.   writeln('* 3 - Wyswietl konkretna osobe.         *');
  123.   writeln('* 4 - Edytuj konkretna osobe.           *');
  124.   writeln('* 5 - Sortowanie listy osob.            *');
  125.   writeln('* 6 - Wyjdz z programu.                 *');
  126.   WriteLn('* * * * * * * * * * * * * * * * * * * * *');
  127.   writeln;
  128.   readln(Klaw);
  129.  
  130.   if Klaw = '1' then
  131.     begin
  132.     writeln('Podaj ilosc osob, ktora chcesz dodac (maksymalnie 100)');
  133.     readln(ile);
  134.     iloscwbazie := iloscwbazie + ile;
  135.     for i := 1 to ile do DodajOsobe(osoba[i]);
  136.     WriteLn;
  137.     end;
  138.  
  139.   if Klaw = '2' then
  140.   begin
  141.     WriteLn('1 - W kolejnosci wpisywania do tablicy');
  142.     WriteLN('2 - W kolejnosci nazwisk');
  143.     WriteLn('3 - W kolejnosci imion');
  144.       ReadLn(Klaw);
  145.  
  146.       if Klaw = '1' then
  147.         begin
  148.           Writeln('1 - pierwsze imie');
  149.           WriteLn('2 - pierwsze nazwisko');
  150.           ReadLn(klaw);
  151.             If Klaw = '1' then
  152.               PierwotnaImie
  153.             else
  154.               PierwotnaNazwisko;
  155.         end;
  156.  
  157.       if Klaw = '2' then
  158.         begin
  159.  
  160.         end;
  161.  
  162.       if Klaw = '3' then
  163.         begin
  164.  
  165.         end;
  166.  
  167.  
  168.     WriteLn;
  169.   end;
  170.  
  171.   if Klaw = '3' then
  172.     begin
  173.     writeln('wpisz numer osoby na liscie:');
  174.     readln(numer);
  175.  
  176.       reset(plikosob);
  177.       read(plikosob, osoba[numer]);
  178.         writeln('Ta osoba to: ', osoba[numer].Imie,' ', osoba[numer].Nazwisko);
  179.       close(plikosob);
  180.       WriteLn;
  181.     end;
  182.  
  183.   if Klaw = '4' then
  184.     begin
  185.     EdytujOsobe;
  186.     WriteLn;
  187.     end;
  188.  
  189.   if Klaw = '5' then
  190.     begin
  191.  
  192.     WriteLn;
  193.     end;
  194.  
  195.  
  196.   until Klaw = '6';
  197.  
  198.   reset(liczbaosob);
  199.   write(liczbaosob, iloscwbazie);
  200.   close(liczbaosob);
  201.  
  202. end.
Advertisement
Add Comment
Please, Sign In to add comment