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.

410 Appendix D<br />

with <strong>Ada</strong>.Text_Io, <strong>Ada</strong>.Float_Text_Io, Class_Performance, Class_Tui;<br />

use <strong>Ada</strong>.Text_Io, <strong>Ada</strong>.Float_Text_Io, Class_Performance, Class_Tui;<br />

procedure Ma<strong>in</strong> is<br />

procedure Process(Per:<strong>in</strong> out Performance; Name:<strong>in</strong> Str<strong>in</strong>g) is<br />

function Money_Image( M:<strong>in</strong> Money ) return Str<strong>in</strong>g is<br />

Res : Str<strong>in</strong>g( 1 .. 10 ); --Str<strong>in</strong>g of 10 characters<br />

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

Put( Res, M, Aft=>2, Exp=>0 ); --2 digits - NO exp<br />

return Res;<br />

end Money_Image;<br />

Screen : Tui; --The TUI screen<br />

Tickets : Integer; --Tickets be<strong>in</strong>g processed<br />

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

loop<br />

Message( Screen, "Performance is " & Name );<br />

Menu( Screen, "Book", "Cancel", "Seats free", "Sales" );<br />

case Event( Screen ) is<br />

when M_1 =><br />

--Book<br />

Dialog(Screen, "Number of seats to book", Tickets);<br />

if Tickets>0 and then Tickets<br />

--Cancel<br />

Dialog(Screen, "Number of seats to return", Tickets);<br />

if Tickets > 0 then<br />

Cancel( Per, Tickets );<br />

else<br />

Message( Screen, "Not a valid number of tickets" );<br />

end if;<br />

when M_3 =><br />

--Free<br />

Message( Screen, "Number of seats free is" &<br />

Integer'Image( Seats_Free(Per) ) );<br />

when M_4 =><br />

--Value<br />

Message( Screen, "Value of seats sold is £" &<br />

Money_Image( Sales(Per) ) );<br />

when M_Quit =><br />

--Exit<br />

exit;<br />

end case;<br />

end loop;<br />

end Process;<br />

Afternoon, Early_Even<strong>in</strong>g, Even<strong>in</strong>g : Performance;<br />

Ma<strong>in</strong>_Menu : Tui;<br />

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

loop<br />

Menu(Ma<strong>in</strong>_Menu, "Afternoon", "Early Even<strong>in</strong>g", "Even<strong>in</strong>g", "");<br />

case Event( Ma<strong>in</strong>_Menu ) is<br />

when M_1 => Process( Afternoon, "Afternoon" );<br />

when M_2 => Process( Early_Even<strong>in</strong>g, "Early even<strong>in</strong>g" );<br />

when M_3 => Process( Even<strong>in</strong>g, "Even<strong>in</strong>g" );<br />

when M_Quit => exit;<br />

when others => Message( Ma<strong>in</strong>_Menu, "Try aga<strong>in</strong>");<br />

end case;<br />

end loop;<br />

end Ma<strong>in</strong>;<br />

From chapter 6<br />

A fragment of code show<strong>in</strong>g a data structure that represents a computer system.<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!