main.adb
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
with Ada.Float_Text_IO;
use Ada.Float_Text_IO;
with per;
use per;
with Mn;
use Mn;
procedure main is
-- Creating object of type Men
men1 : Men;
len: Natural;
Begin
-- Taking input ID
Put_Line("Enter ID : ");
Get_Line(men1.ID, len);
-- Taking input Name
Put_Line("Enter Name : ");
Get_Line(men1.Name, len);
-- Taking input Gender
Put_Line("Enter Gender : ");
Get_Line(men1.Gender, len);
-- Taking input Height
Put_Line("Enter Height : ");
Get(men1.Height);
-- Taking input Age
Put_Line("Enter Age : ");
Get(men1.Age);
new_line(2);
-- Print Function calling
print(men1);
new_line(3);
end main;
per.ads
package Per is
type Person is tagged
record
Name: String(1..30):= " ";
Age: Integer :=0;
Gender: String(1..10) := " ";
end record;
procedure print(Self : in out Person);
end Per;
main.adb
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
with Ada.Float_Text_IO;
use Ada.Float_Text_IO;
package body Per is
procedure print(Self : in out Person) is
begin
Put_Line("Name is " & Self.Name);
Put_Line("Age is " & Integer'Image (Self.Age));
Put_Line("Gender is " & Self.Gender);
end print;
end Per;
mn.ads
with per;
use per;
package Mn is
type Men is new Person with
record
Height: Float := 0.0;
ID: String(1..15) := " ";
end record;
overriding procedure print(Self : in out Men);
end Mn;
mn.adb
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
with Ada.Float_Text_IO;
use Ada.Float_Text_IO;
with per;
use per;
package body Mn is
procedure print(Self : in out Men) is
begin
Put_Line("ID is " & Self.ID);
Put_Line("Name is " & Self.Name);
Put_Line("Age is " & Integer'Image (Self.Age));
Put_Line("Gender is " & Self.Gender);
Put_Line("Height is " & Float'Image (Self.Height));
end print;
end Mn;