J陑yk polski Historia WOS Sztuka (plastyka i muzyka) J陑yki obce Religia i etyka
Matematyka Fizyka i astronomia Chemia Biologia Przyroda Geografia Technika Informatyka
Przedmioty zawodowe WF ie縦i edukacyjne Wychowanie przedszkolne Nauczanie zintegrowane Wi阠ej
Start arrow Bazy danych
Bazy danych
Baza danych Drukuj Email
Wpisa艂: Robert Stasiak   
28.11.2007.
program baza_danych;

uses crt;
type
osoba = record
imie : string[15];
nazwisko : string[20];
plec : char;
zarobki : integer;
telefon : string;
end;

var
x, y, ile, i : integer;
znak : char;
dane : array[1..10] of osoba;

procedure wpis;

var
rekord : osoba;

begin
ClrScr;
with rekord do
begin
gotoxy(27, 6);
write('Podaj imie : ');

readln(Imie);
gotoxy(27, 7);
write('Podaj nazwisko : ');
readln(Nazwisko);

gotoxy(27, 8);
write('Podaj plec (K/M) : ');
repeat
plec := readkey;
until upcase(plec) in['M', 'K'];
writeln(plec);
gotoxy(27, 9);
write('Podaj zarobki : ');
readln(zarobki);
gotoxy(27, 10);
write('Podaj telefon : ');
readln(telefon);
end;
Inc(ile);
dane[ile] := rekord;
end;

procedure zobacz;
begin
if ile > 0 then
begin
x := 1;
repeat
clrscr;
gotoxy(10, 5);
writeln('<-: poprzedni wpis, ->: nastpny wpis Esc: koniec');
gotoxy(27, 7);
writeln('Wpis nr ', x);
gotoxy(27, 8);
writeln(dane[x].imie, ' ', dane[x].nazwisko, ' Plec ', dane[x].plec);
gotoxy(27, 9);
writeln('Zarabia ', dane[x].zarobki, ' nr tel ', dane[x].telefon);
writeln;
znak := readkey;
case znak of
#75 : x := x - 1;
#77 : x := x + 1;
end;
if x = 0 then x := ile;
if x = ile + 1 then x := 1;
until znak = #27;
end
else
begin
clrscr;
gotoxy(25, 8);
writeln('Nie ma jeszcze zadnych wpisow');
readln;
end;
end;

procedure usun;

var
plik : file of osoba;

begin
if ile > 0 then
begin
x := 1;
repeat
clrscr;
gotoxy(7, 5);
writeln('<-: poprzedni wpis, ->: nastpny wpis, enter: usun wpis, Esc: koniec');
gotoxy(27, 7);
writeln('Wpis nr ', x);
gotoxy(27, 8);
writeln(dane[x].imie, ' ', dane[x].nazwisko, ' Plec ', dane[x].plec);
gotoxy(27, 9);
writeln('Zarabia ', dane[x].zarobki, ' nr tel ', dane[x].telefon);
writeln;
znak := readkey;
case znak of
#75 : x := x - 1;
#77 : x := x + 1;
end;
if x = 0 then x := ile;
if x = ile + 1 then x := 1;
until (znak = #27) or (znak =#13);

if znak =#13 then
begin
dane[x] := dane[x + 1];
ile := ile - 1;
clrscr;
gotoxy(25, 8);
writeln('Wpis nr ', x, ' zostal usuniety');
readln;
end;
end
else
begin
clrscr;
gotoxy(25, 8);
writeln('Nie ma jeszcze zadnych wpisow');
readln;
end;
end;

procedure zapisz;

var
plik : file of osoba;

begin
clrscr;
if ile > 0 then
begin
assign(plik, 'c:\baza.txt');
rewrite(plik);
for i := 1 to ile do
write(plik, dane[i]);
close(plik);
gotoxy(25, 8);
writeln('Twoje dane zostaly zapisane');
end
else
begin
gotoxy(15, 8);
writeln('Twoje dane nie zostaly zapisane poziewaz nie ma wpisow');
end;
readln;
end;

procedure wczytaj;

var
i, w : integer;
plik : file of osoba;

begin
clrscr;
assign(plik, 'c:\baza.txt');
reset(plik);
i := 1;
while not eof(plik) do
begin
read(plik, dane[i + ile]);
Inc(i);
end;
close(plik);
w := ile;
ile := i - 1 + w;
gotoxy(25, 8);
writeln('Twoje dane zostaly wczytane');
readln;
end;

procedure menu;

var
tab : array[1..6] of string;

begin
tab[1]:='Nowy';
tab[2]:='Zobacz';
tab[3]:='Usun';
tab[4]:='Zapisz';
tab[5]:='Wczytaj';
tab[6]:='Koniec';
y := 1;
repeat
textcolor(white);
for x := 1 to 6 do
begin
gotoxy(33, 7 + x);
writeln(tab[x]);
end;
gotoxy(33, 7 + y);
textcolor(red);
writeln(tab[y]);
znak := readkey;
case znak of
#72 : y := y - 1;
#80 : y := y + 1;
end;
if y = 0 then y := 6;
if y = 7 then y := 1;
until znak = #13;
end;

begin
repeat
clrscr;
menu;
textcolor(green);
case y of
1 : wpis;
2 : zobacz;
3 : usun;
4 : zapisz;
5 : wczytaj;
end;
until y = 6;
end.
Zmieniony ( 02.12.2007. )