SOISK - SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Tomasz Puchała

Baza Danych – Pascal (Gotowiec)

Baza Danych – Pascal (Gotowiec)

Program Baza Danych w Pascalu – Kryteria Programu:

  • Wprowadzanie danych do pliku
  • Wczytywanie danych z pliku
  • Edycja danych
  • Dopisywanie danych do pliku istniejącego
  • Wyszukiwanie danych według różnych kryteriów (Jeśli wyszukiwanie nie spełnia kryteriów zostanie wyświetlony odpowiedni komunikat)
  • Menu wyboru:

1. Podac dane do dziennika.
2. Wypisac dane z dziennika.
3. Dopisac osoby do dziennika.
4. Wyszukac osobe w dzienniku.
5. Edytowac osobe w dzienniku.
6. Wyczyscic ekran.
7. Zakonczyc program.

 

 

program Dziennik;
uses crt;
type Osoba= record
nr:string;
imie:string[20];
nazwisko:string[20];
ozp:string[20];
ozh:string[20];
ozm:string[20];
ozf:string[20];
ozb:string[20];
zach:string[20];
end;

var f:file of Osoba;
o,y: array [1..30] of Osoba;
s:Osoba;
a:byte;

procedure z;  {procedura wprowadzania danych} var i,a:byte;
begin

begin
clrscr;
write('Podaj ilosc  osob ktore chcesz wpisac do dziennika:  ');    readln(a);
assign(f,'dziennik.dat');
rewrite(f);          {otwieram plik po raz 1 }
for i:=1 to a do       {a okresla ile ma zostac wprowadzonych osob}
begin
clrscr;
writeln;
write('Nr: ');      readln(o[i].nr);
write('Imie: ');      readln(o[i].imie);
write('Nazwisko: ');      readln(o[i].nazwisko);
write('Oena z Jezyka Polskiego: ');      readln(o[i].ozp);
write('Ocena z Historii: ');         readln(o[i].ozh);
write('Ocena z Matematyki: '); readln(o[i].ozm);
write('Ocena z Fizyki: '); readln(o[i].ozf);
write('Ocena z Biologi: '); readln(o[i].ozb);
write('ZACHOWANIE: '); readln(o[i].zach);
write(f,o[i]);{zpisanie w zmiennej "f" zawartosci tablicy "o[i]"}
clrscr;
end;

close(f); {zamkniecie pliku}
end;
end;

procedure w; {wczytywanie danych z pliku}
var i,a:byte;

begin
assign(f,'dziennik.dat');
reset(f);
while not eof(f) do  {dopóki nie jest koniec pliku wykonuj}
begin
read(f,o[i]); {do "f" wczytaj zawartosc "o[i]"}
with o[i] do   {z tablica "o[i]" wykonaj, u nas wczytaj z niej dana zawartosc}
begin
writeln;
write('Nr: '); writeln(o[i].nr);
write('Imie: ');    writeln(o[i].imie);
write('Nazwisko: ');writeln(o[i].nazwisko);
write('Oena z Jezyka Polskiego: ');     writeln(o[i].ozp);
write('Ocena z Historii: ');         writeln(o[i].ozh);
write('Ocena z Matematyki: '); writeln(o[i].ozm);
write('Ocena z Fizyki: '); writeln(o[i].ozf);
write('Ocena z Biologi: '); writeln(o[i].ozb);
write('ZACHOWANIE: '); writeln(o[i].zach);
end;
end;
end;

procedure dop; {dopisywanie danch od juz istniejacego pliku}
var i,a:byte;

begin
clrscr;
assign(f,'dziennik.dat');
reset(f);
write('Podaj liczbe osob do dopisania:  ');readln(a);
for i:=1 to a do
begin
clrscr;
Seek(f, FileSize(f)); {otwiera plik i ustawia sie w ostatniej linijce }
{tam zaczyna sie dopisywanie, od ostatniej lini zapisanego pliku}
writeln;writeln;
write('Nr: ');readln(o[i].nr);
write('Imie: ');readln(o[i].imie);
write('Nazwisko: '); readln(o[i].nazwisko);
write('Oena z Jezyka Polskiego: ');      readln(o[i].ozp);
write('Ocena z Historii: ');         readln(o[i].ozh);
write('Ocena z Matematyki: '); readln(o[i].ozm);
write('Ocena z Fizyki: '); readln(o[i].ozf);
write('Ocena z Biologi: '); readln(o[i].ozb);
write('Zachowanie: ');readln(o[i].zach);
write(f,o[i]);  {zapisujemy w pliku podane wczesniej dane}
clrscr;
end;
close(f);         {zamykamy plik}
end;
PROCEDURE szukI;
var i,pom:byte;
t:string[20];
begin
pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
assign(f,'dziennik.dat');
reset(f);            {otwieram plik, nie po raz pierwszy}

write('Podaj szukane imie: ');
read(t);   {podaje Imie które mam wyszukac}
while not eof(f) do
begin
read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
with o[i] do   { wykonuje z tabl "o[i]"}
if t=(o[i].imie) then    {jezeli wczesniej podane "t"= Imienu wczytuje wszyskie dane szukanej osoby}
begin
pom:=1;
write('Nr: '); writeln(o[i].nr);
write('Imie: '); writeln(o[i].imie);
write('Nazwisko:   ');  writeln(o[i].nazwisko);
write('Oena z Jezyka Polskiego: ');     writeln(o[i].ozp);
write('Ocena z Historii: ');         writeln(o[i].ozh);
write('Ocena z Matematyki: '); writeln(o[i].ozm);
write('Ocena z Fizyki: '); writeln(o[i].ozf);
write('Ocena z Biologi: '); writeln(o[i].ozb);
write('ZACHOWANIE:  '); writeln(zach);
end;
end;
if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
end;

procedure szukN;
var i,pom:byte;
t:string[20];
begin
pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
assign(f,'dziennik.dat');
reset(f);            {otwieram plik, nie po raz pierwszy}

write('Podaj szukane nazwisko: ');
read(t);   {podaje Imie ktore mam wyszukac}
while not eof(f) do
begin
read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
with o[i] do   { wykonuje z tabl "o[i]"}
if t=(o[i].nazwisko) then
begin
pom:=1;
write('Nr: '); writeln(nr);
write('Imie: '); writeln(imie);
write('Nazwisko:   ');  writeln(nazwisko);
write('Oena z Jezyka Polskiego: ');     writeln(o[i].ozp);
write('Ocena z Historii: ');         writeln(o[i].ozh);
write('Ocena z Matematyki: '); writeln(o[i].ozm);
write('Ocena z Fizyki: '); writeln(o[i].ozf);
write('Ocena z Biologi: '); writeln(o[i].ozb);
write('ZACHOWANIE:  '); writeln(zach);
end;
end;
if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
end;

procedure szukZ;
var i,pom:byte;
t:string[20];
begin
pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
assign(f,'dziennik.dat');
reset(f);            {otwieram plik, nie po raz pierwszy}

write('Podaj szukane zachowanie: ');
read(t);   {podaje Imie ktore mam wyszukac}
while not eof(f) do
begin
read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
with o[i] do   { wykonuje z tabl "o[i]"}
if t=(o[i].zach) then    {jezeli wczesniej podane "t"= Imienu wczytuje wszystkie dane szukanej osoby}
begin
pom:=1;
write('Nr: '); writeln(nr);
write('Imie: '); writeln(imie);
write('Nazwisko:   ');  writeln(nazwisko);
write('Oena z Jezyka Polskiego: ');     writeln(o[i].ozp);
write('Ocena z Historii: ');         writeln(o[i].ozh);
write('Ocena z Matematyki: '); writeln(o[i].ozm);
write('Ocena z Fizyki: '); writeln(o[i].ozf);
write('Ocena z Biologi: '); writeln(o[i].ozb);
write('ZACHOWANIE:  '); writeln(zach);
end;
end;
if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
end;

procedure szuk;  {szukaj}
var t:byte;

begin
clrscr;
textcolor(4);
writeln('Witaj ponownie, wedlug czego zamierzasz szukac?');
writeln('1. Wedlug Imienia.');
writeln('2. Wedlug Nazwiska.');
writeln('3. Wedlug Zachowania.');
textcolor(15);
readln(t);
if t=1 then
begin
clrscr;
szukI;
end else

if t=2 then
begin
clrscr;
szukN;
end else

if t=3 then
begin
clrscr;
szukZ;
end;

end;

procedure edyt;  {edytuj }
var i,pom:byte;
t:string[20];
begin
pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
clrscr;
assign(f,'dziennik.dat');
reset(f);
write('Podaj nr osoby ktora chcesz edytowac: ');
readln(t);

begin
for i:=1 to 3 do
read(f,o[i]);  {wczytuje do f o[i]}
with o[i] do
if t=(o[i].nr) then      {patrz procedura powyzej}
begin
pom:=1;
write('Imie:  '); readln(o[i].imie);
write('Nazwisko:   ');  readln(o[i].nazwisko);
write('Oena z Jezyka Polskiego: ');      readln(o[i].ozp);
write('Ocena z Historii: ');         readln(o[i].ozh);
write('Ocena z Matematyki: '); readln(o[i].ozm);
write('Ocena z Fizyki: '); readln(o[i].ozf);
write('Ocena z Biologi: '); readln(o[i].ozb);
write('ZACHOWANIE:  '); readln(zach);
write(f,o[i]); {zapisuje dane}
end;
end;
if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
end;

procedure cys;   {procedura czysci ekran}
begin
clrscr;
end;

procedure menu;
var q:byte;
begin
textcolor(4);
writeln(' Witaj co zamierzasz robic?');
writeln('1. Podac dane do dziennika.');
writeln('2. Wypisac dane z dziennika.');
writeln('3. Dopisac osoby do dziennika.');
writeln('4. Wyszukac osobe w dzienniku.');
writeln('5. Edytowac osobe w dzienniku.');
writeln('6. Wyczyscic ekran.');
textcolor(4+128); {4 czyli kolor czerwony + 128 oznacza migotanie (red+blink)}
writeln('7. Zakonczyc program.');
textcolor(15);
readln(q);
begin  {cialo wyboru poszczegulnych opcji}
if q=1 then
begin
z;
menu;
end else
if q=2 then
begin
w;
menu;
end else
if q=3 then
begin
dop;
menu;
end else
if q=6 then
begin
cys;
menu;
end else
if q=4 then
begin
szuk;
menu;
end else
if q=5 then
begin
edyt;
menu;
end else
if q=7 then
begin
end;
end;
end;
begin
clrscr;menu;
end.



http://www.admin.exploracje.com/baza-danych-pascal-gotowiec/
 
Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę internetową?
Darmowa rejestracja