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. |