program Employee;{$R+}
uses Person, Supervsr;
var staff : array[1..10] of ^Person_ID;
Sup : ^Supervisor;
Prog : ^Programmer;
Sec : ^Secretary;
Index : integer;begin
for Index := 1 to 10 do
staff[Index]^.Init;WriteLn('XYZ Staff assignments.');
WriteLn;new(Sup);
staff[1] := Sup;
Sup^.Init('Big John', 5100, 'President');new(Prog);
staff[2] := Prog;
Prog^.Init('Joe Hacker', 3500, 'Pascal');new(Prog);
staff[3] := Prog;
Prog^.Init('OOP Wizard', 7700, 'OOP Pascal');new(Sec);
staff[4] := Sec;
Sec^.Init('Tillie Typer', 2200, True, 85);new(Sup);
staff[5] := Sup;
Sup^.Init('Tom Talker', 5430,'Sales Manager');new(Prog);
staff[6] := Prog;
Prog^.Init('Dave Debug', 5725, 'Assembly Language');for Index := 1 to 6 do
staff[Index]^.Display;end.
Result of executionXYZ Staff assignments.
Big John is the president and makes $5100 per month.
Joe Hacker specializes in Pascal and makes $3500 per month.
OOP Wizard specializes in OOP Pascal and makes $7700 per month.
Tillie TYper can type 85 words per minute.
Tom Talker is the Sales Manager and makes $5430 per month.
Dave Debug specializes in Assembly Language and makes $5725 per month.*)