18.10.2014 Views

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

412 Appendix D<br />

package body Class_Emp_Pay is<br />

procedure Set_Hourly_Rate(The:<strong>in</strong> out Emp_Pay; R:<strong>in</strong> Money) is<br />

beg<strong>in</strong><br />

The.Rate := R;<br />

end Set_Hourly_Rate;<br />

procedure Add_Hours_Worked(The:<strong>in</strong> out Emp_Pay; H:<strong>in</strong> Hours) is<br />

beg<strong>in</strong><br />

The.Worked := The.Worked + H;<br />

end Add_Hours_Worked;<br />

function Pay( The:<strong>in</strong> Emp_Pay ) return Money is<br />

beg<strong>in</strong><br />

return The.Rate * The.Worked * Tax;<br />

end Pay;<br />

procedure Reset(The:<strong>in</strong> out Emp_Pay) is<br />

beg<strong>in</strong><br />

The.Rate := 0.0; The.Worked := 0.0;<br />

end Reset;<br />

function Hours_Worked( The:<strong>in</strong> Emp_Pay ) return Hours is<br />

beg<strong>in</strong><br />

return The.Worked;<br />

end Hours_Worked;<br />

function Pay_Rate( The:<strong>in</strong> Emp_Pay ) return Money is<br />

beg<strong>in</strong><br />

return The.Rate;<br />

end Pay_Rate;<br />

end Class_Emp_Pay;<br />

with Pack_Types, Class_Emp_Pay;<br />

use Pack_Types, Class_Emp_Pay;<br />

package Class_Better_Emp_Pay is<br />

type Better_Emp_Pay is new Emp_Pay with private;<br />

procedure Set_Overtime_Pay(The:<strong>in</strong> out Better_Emp_Pay;<br />

R:<strong>in</strong> Money);<br />

procedure Normal_Pay_Hours(The:<strong>in</strong> out Better_Emp_Pay;<br />

H:<strong>in</strong> Hours);<br />

function Pay( The:<strong>in</strong> Better_Emp_Pay ) return Money;<br />

private<br />

type Better_Emp_Pay is new Emp_Pay with record<br />

Normal_Hours : Hours := 0.0; --Normal pay hours<br />

Over_Time_Pay : Money := 0.0; --Overtime rate<br />

end record;<br />

end Class_Better_Emp_Pay;<br />

© M A Smith - May not be reproduced without permission

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!