menu

tomek555

Użytkownik
Dołączył
Kwiecień 24, 2011
Posty
22
Jak napisać ten program we freepascalu :/?

Napisać program który zawiera menu:
1- wpisz do bazy
2- usuń z bazy rekord
3- wyświetl zawartość określonego rekordu
4- wyświetl całą bazę
5- usuń bazę
6* wyszukaj w bazie( podaje się nazwisko ucznia a program zwraca zawartość rekordu zawierającego to nazwisko)









readln;
END.
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Proponuję założyć następującą strukturę pliku bazy:
Kod:
id|imie|nazwisko|jakies dane1|jakies dane2|...

1- wpisz do bazy
Dopisujesz do pliku linijkę z danymi.

2- usuń z bazy rekord
Wczytujesz cały plik, usuwasz rekord i zapisujesz zmodyfikowaną całość do pliku.

3- wyświetl zawartość określonego rekordu
Pobierasz ID rekordu i wyszukujesz takie ID w pliku i wyświetlasz resztę danych (rozdzielając je po znaku |).

4- wyświetl całą bazę
Pobierasz dane z pliku linijka po linijce, dalej rozdzielasz według znaku | i wyświetlasz.

5- usuń bazę
Usuwasz plik bazy.

6* wyszukaj w bazie( podaje się nazwisko ucznia a program zwraca zawartość rekordu zawierającego to nazwisko)
Pobierasz plik linijka po linijce i wyszukujesz w każdej linijce nazwisko ucznia.
 

tomek555

Użytkownik
Dołączył
Kwiecień 24, 2011
Posty
22
Co mozna byłoby zedytować w tym aby było zgodne z tym menu?

Program plik_zdefiniowany;
Uses crt;

type osoba = record
imie:string[20];
nazwisko:string[25];
rok_urodzenia,id:integer;
end;

var
pracownik,wyjscie:eek:soba;
plik: file of osoba;
odp:char;
numer,i,wybor:integer;

BEGIN
clrscr;
writeln('.::*MENU BAZY DANYCH*::.');
writeln('1-wpisz do bazy');
writeln('2-usun z bazy rekord');
writeln('3-wyswietl zawartosc okreslonego rekordu');
writeln('4-wyswietl cala baze');
writeln('5-usun baze');
writeln('6-wyszukaj w bazie');
readln(wybor);
// zastosowac pętle CASE
assign(plik, 'D:\osoby.txt');
rewrite(plik);

numer:=1;
writeln('czy dopisac osobe - t?');
readln(odp);
while odp='t' do
begin
writeln('na ktorej pozycji'); readln(i);
seek(plik,i);
write('podaj imie: '); readln(pracownik.imie);
write('podaj nazwisko: '); readln(pracownik.nazwisko);
write('podaj rok urodzenia: '); readln(pracownik.rok_urodzenia);
pracownik.id:=numer;
numer:=numer+1;
write(plik,pracownik);
writeln('czy dopisac osobe - t?');
readln(odp);
end;
writeln('Moi pracownicy');
seek(plik,0);
for i:=0 to filesize(plik)-1 do
begin
read(plik,wyjscie);
writeln(wyjscie.imie);
writeln(wyjscie.nazwisko);
writeln(wyjscie.rok_urodzenia);
writeln(wyjscie.id);
end;
close(plik);
readln;
END.
 
Do góry Bottom