WITH Ada.Text_IO; WITH Ada.Float_Text_IO; WITH Ada.Integer_Text_IO; WITH Dates.IO; WITH Currency.IO; PACKAGE BODY Employees.IO IS ------------------------------------------------------------------ --| Body of Child Package for Employee Input/Output --| Author: Michael B. Feldman, The George Washington University --| Last Modified: July 1995 ------------------------------------------------------------------ PACKAGE GenderType_IO IS NEW Ada.Text_IO.Enumeration_IO(Enum => GenderType); PROCEDURE Get (Item: OUT Employee) IS S: String(1..MaxName); Count: Natural; BEGIN -- simple, non-robust Get Ada.Text_IO.Put(Item => "ID > "); Ada.Integer_Text_IO.Get(Item => Item.ID); Ada.Text_IO.Skip_Line; Ada.Text_IO.Put(Item => "Name > "); Ada.Text_IO.Get_Line(Item => S, Last => Count); Item.Name(1..Count) := S(1..Count); Ada.Text_IO.Put(Item => "Gender (Female or Male) > "); GenderType_IO.Get(Item => Item.Gender); Ada.Text_IO.Put(Item => "Number of dependents > "); Ada.Integer_Text_IO.Get(Item => Item.NumDepend); Ada.Text_IO.Put(Item => "Salary > "); Currency.IO.Get(Item => Item.Salary); Ada.Text_IO.Put(Item => "Starting Date, mmm dd yyyy > "); Dates.IO.Get(Item => Item.StartDate); END Get; PROCEDURE Put (Item: IN Employee) IS BEGIN -- simple Put Ada.Integer_Text_IO.Put(Item => Item.ID, Width => 1); Ada.Text_IO.New_Line; Ada.Text_IO.Put(Item => Item.Name); Ada.Text_IO.New_Line; GenderType_IO.Put(Item => Item.Gender); Ada.Text_IO.New_Line; Ada.Integer_Text_IO.Put(Item => Item.NumDepend, Width => 1); Ada.Text_IO.New_Line; Currency.IO.Put(Item => Item.Salary); Ada.Text_IO.New_Line; Dates.IO.Put(Item => Item.StartDate); Ada.Text_IO.New_Line; END Put; END Employees.IO;