-- File: person-positions.ads -- person.positions package interface with EMPLOYEE subclasses -- -- Prepared by Prof. Spiegel -- Copyright © 1988-1998 Coronado Enterprises - Last update, February 1, 1998 -- Gordon Dodrill - dodrill@swcp.com with Ada.Text_IO, Ada.Integer_Text_IO; use Ada.Text_IO, Ada.Integer_Text_IO; package Person.Positions is -- The SUPERVISOR type has a title. type SUPERVISOR is new EMPLOYEE with private; procedure Init_Data(In_Person : in out SUPERVISOR; In_Name : STRING; In_Salary : INTEGER; In_Title : STRING); procedure Display(In_Person : SUPERVISOR); -- The PROGRAMMER type has a language preference. type PROGRAMMER is new EMPLOYEE with private; procedure Init_Data(In_Person : in out PROGRAMMER; In_Name : STRING; In_Salary : INTEGER; In_Title : STRING; In_Language : STRING); procedure Display(In_Person : PROGRAMMER); -- The SECRETARY type has a typing speed. type SECRETARY is new EMPLOYEE with private; procedure Init_Data(In_Person : in out SECRETARY; In_Name : STRING; In_Salary : INTEGER; In_ShortHand : BOOLEAN; In_Speed : INTEGER); procedure Display(In_Person : SECRETARY); private type SUPERVISOR is new EMPLOYEE with record Title : STRING(1..25); Title_Length : INTEGER; end record; type PROGRAMMER is new EMPLOYEE with record Title : STRING(1..25); Title_Length : INTEGER; Language : STRING(1..25); Language_Length : INTEGER; end record; type SECRETARY is new EMPLOYEE with record Shorthand : BOOLEAN; Typing_Speed : INTEGER; end record; end Person.Positions;