Pracownicy cz. 1.pdf

(159 KB) Pobierz
110593902 UNPDF
Defrnicja struktury dhnych wykorzystywanej w programie, nagw-
ki procedur otaz progTam gwny s przedstawione poniej. W progra-
mie gwnym po odczytaniu zawartoci pliku do tablicy w zalenoci od
wartoci podawanej przez funkcj Menu jest wykonylvana odpowiednia
operacja.
Program 13.2
program Baza3rac;
uses crt,Dos; { dolczenie moduu Crt }
ttrce
ident = record
imiepier,
i mi arlrrr
!.Lrf e\l! uY t
nazwisko: string[20]
end;
data = record.
dzien.
miesiac,
rok: integer;
miejsce: string[20]
end;
ulica: string [3 0 ] ;
numer,
mieszkanie,
telefon: inteqer
...--r ---",-sc /
adresprac = record
kod: integer;
mi ai cnar^rn,
110593902.002.png
end;
;ezyki : record
angielski,
r^auicLi
niamionLi
francuski: string [3]
end;
poziomprac : record
r^rrrlrqzl-:lnr
-*--enre,
stanowisko: string i30l ;
obce: jezyki
end;
pracownik : record
nazwi rdent;
urodz: data;
adres: adrespraci
poziom I poziomprac
end;
const
n_max:100;
dane: array[1. ln_max] of pracownik;
baza: file of pracownik;
koniec: boolean;
i n'|-anar.
Procedure CzyLal ( var prac: pracownrk);
{ Procedura wprowadzania informacji o jednym pracowniku }
begin
{ Tre procedury zamieszczono ponizej
}
end;
procedure Wyswietl (prac :pracownik) ;
{ Procedura wywietlania informacji o jednym pracowniku }
begin
{ Treprocedury zamieszczono ponizej }
end;
var
110593902.003.png
procedure Zapisz (n: integer);
i Procedura zapisywania zawartoci tablicy na dysk }
begin
{ Treprocedury zamleszczono ponize1 }
end;
procedure Odczyta; (var n: integer);
{ Procedura odczytywania zawartocipliku do tablicy }
begin
{ Tre procedury zamieszczono ponize1 }
end;
function Menu: integer;
{ Funkcja tworzenia menu systemu }
begin
{ Trefunkcji zamieszczono ponizej
}
procedure Wszyscy;
{ Procedura wywietlania informacji o wszystkich
pracownikach )
begin
{ Tre proced'ury zamieszczono ponize1 }
end;
procedure Zamieszk;
i Procedura znajdowania pracownikw zamieszkavch na
podanej ulicy )
begin
{ Trer. nrnr-eclllrrz -:mi Aq7.7^n nnni ai t
J aur(rfso-vLvLLv
lJvlrf4eJ
I
end;
procedure Wiek;
{ Procedura znajdowania pracownikw urodzonych po roku
1958 )
begin
{ Trec procedury zamj-eszczono ponizej }
end;
Procedure Wyzsze;
{ Procedura znajdowania pracownikow z wyzszym
wyksztaceniem }
end;
110593902.004.png
begin
{ Tre procedury zamieszczono ponizej }
end;
begin { poczatek programu }
FindFirst (' bazadysk', Archive, Tnfo) ;
if DosError <> 18 then {je]i pIik istnieje}
odczytaj (n) ; { odczytanie zawartoci p1iku }
koniec := false;
repeat
case Menu of
1: Wszyscy; { wywietlenie informacji o
wszystkich pracownikach )
2:ifn<nmaxthen
begin
n .- n r 1.
{ wczytanie danych dla pracownika i
CzyLaj (dane [n] )
end;
3: Wiek; { wiek pracownika }
4: Zamieszk; { zamieszkanie pracownika }
5: Wyzsze;
0: begin
i zapisanie zawartoci tablicy do p1iku }
Zapisz (n) ;
koniec : = true
end
{ wyksztatcenie wyzsze }
end
until koniec;
end.
{ ptla nieskoczona }
Moemy tetaz ptzystpi do lszczeglawiania programu poptzez
odpowiednie zaprojektowanie procedur. Najpierw zaprojektujemy
algorytm wykorzystywany w funkcji Menu.
Algorytm 13.1
WyWiet| menu systemU
repeat
zidentyfikuj ostatnio nacinity k|awisz
unt.l ostatnio nacinitym k|awiszem by klawisz 0,1 ,2,3,4,5 |ub Esc
wyznacz Warto przypisan funkcji Menu
110593902.005.png
Tre funkcji Menu jest przedstawiona poniej.
funetion Menu: integer;
{ Funkcja tworzenia menu sysemu }
var znak: char;
begin
CIrscr;
writeln(' Liczba rekordw w bazie ',D)i
writeln;
rpracowniku' ) ;
writeln(' 3 - Znajdowanie wszyskich pracownikw',
I urodzonych po roku 1958 ');
writeln(' 4 - Znajdowanie wszystkich pracownikw',
' zamieszka.ych na danej u1icy');
write1n(' 5 - Znajdowanie wszystkich pracownikw z .,
Iwyksztaceniem wy'szym| ) ;
writeln(' 0 - Wyjciez systemu' ; ;
writeln;
write(' Wprowad l-iczb z o - 5 ');
repeat
znak :: ReadKey;
until znak in ['0' .'5',chr(27\l;
if ord(znak) : 27 then
menu :: 0
else menu :: ord(znak) - ord('0')
end;
Zwtmy uwag na sposb sprawdzenia, czy wczytano odpowiedni
zrlak. W tym celu wykorzystuje si operator in, ktry bada przynalez-
nonacinitego znaku do zbioru znakw od zera do piciu i znaku
Esc.
Jeeli nacinitok]awisz Esc, to funkcja Menu podaje wa.rto 0,
natomiast gdy nacinito klawisz odpowiadajcy liczbie, tn wyznacze-
nie wartoci podawanej ptzez funkcj Menu odbywa si poprzez wyko-
rzystanie funkcji ord(), ktra podaje numer porzdkowy argumentu. (W
writeln(' GWNE MENU PRoGRAMU ,);
writeln;
writeln(' 1 - Wywielanie danych dla wszystkich',
' pracownikw');
writeln(' 2 - Dodawanie informacji o nowltm ',
110593902.001.png
Zgłoś jeśli naruszono regulamin