1 ///////////////////////////////////////////////////////////
2 // Softwarebauelemente I, Aufgabe M6.1
3 //
4 // author: Stephan Brumme
5 // last changes: November 23, 2000
6
7
8 // import cout to display some data
9 #include <iostream>
10 #include "MRoom.h"
11
12 // open std namespace
13 using namespace std;
14
15
16
17 // define the namespace Room
18
19 // Initializes the TRoom structure
20 void MRoom::Init(TRoom &roo, Ordinal nor, Ordinal ar)
21 {
22 roo.NumberOfRooms = nor;
23 roo.Area = ar;
24 }
25
26
27 // Compares two exemplars
28 // returns "true" if attributes of both are equal; "false" otherwise
29 Boolean MRoom::EqualValue(TRoom roo1, TRoom roo2)
30 {
31 return ((roo1.Area == roo2.Area) &&
32 (roo1.NumberOfRooms = roo2.NumberOfRooms));
33 }
34
35
36 // Copies the attributes of roo2
37 // returns "true" if successful, "false" if no memory allocated
38 Boolean MRoom::Copy(TRoom* roo1, TRoom roo2)
39 {
40 if ((roo1 == NULL) ||
41 (EqualValue(*roo1, roo2)))
42 return false;
43
44 roo1->Area = roo2.Area;
45 roo1->NumberOfRooms = roo2.NumberOfRooms;
46 return true;
47 }
48
49
50 // Returns the NumberOfRooms attribute
51 Ordinal MRoom::GetNumberOfRooms(TRoom roo)
52 {
53 return roo.NumberOfRooms;
54 }
55
56
57 // Sets the NumberOfRooms attribute
58 void MRoom::SetNumberOfRooms(TRoom &roo, Ordinal nor)
59 {
60 roo.NumberOfRooms = nor;
61 }
62
63
64 // Returns the Area attribute
65 Ordinal MRoom::GetArea(TRoom roo)
66 {
67 return roo.Area;
68 }
69
70
71 // Displays the attributes
72 void MRoom::Show(TRoom roo)
73 {
74 cout<<"Es sind "<<roo.NumberOfRooms<<" Raeume mit einer Flaeche von "<<roo.Area
<<"."<<endl;
75 }
76
77 // end of namespace Room
78
79