//rect02.cpp
//Date: 02/06/2002
//Authors: Us
////////////////////////////////////////////////////////////
//Problem: define rectangle type and some operations for it
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// includes
////////////////////////////////////////////////////////////
#include <iostream.h>
#include <stdlib.h>
////////////////////////////////////////////////////////////
// type TRectangle definition
////////////////////////////////////////////////////////////
struct TRectangle
{
int length;
int width;
};
////////////////////////////////////////////////////////////
// prototype
////////////////////////////////////////////////////////////
void init(TRectangle &rec, const int a, const int b);
void init(TRectangle &rec, const char ch);
void display(const TRectangle &rec);
bool areEqual(const TRectangle &rec1, const TRectangle &rec2);
bool operator == (const TRectangle &rec1, const TRectangle &rec2);
bool operator != (const TRectangle &rec1, const TRectangle &rec2);
////////////////////////////////////////////////////////////
// main
////////////////////////////////////////////////////////////
void main(void)
{
TRectangle r1;
init(r1, 'r');
display(r1);
TRectangle r2;
init(r2, 'r');
display(r2);
init(r2, 1, 3);
if (areEqual(r1, r2))
cout << "Are Equal\n";
else
cout << "Not Equal\n";
r1 = r2;
cout << "After r1=r2;\n";
display(r1);
display(r2);
if (r1 == r2)
cout << "Are Equal\n";
else
cout << "Not Equal\n";
init(r2, 3, 3);
display(r1);
display(r2);
if (r1 != r2)
cout << "Not Equal\n";
else
cout << "Are Equal\n";
//cout << r1 << endl;
}
////////////////////////////////////////////////////////////
// init
////////////////////////////////////////////////////////////
void init(TRectangle &rec, const int a, const int b)
{
rec.length = a;
rec.width = b;
}
////////////////////////////////////////////////////////////
// init
////////////////////////////////////////////////////////////
void init(TRectangle &rec, const char ch)
{
if (('r' == ch) || ('R' == ch))
{
rec.length = rand()%10;
rec.width = rand()%10;
}
else
{
rec.length = 0;
rec.width = 0;
}
}
////////////////////////////////////////////////////////////
// display
////////////////////////////////////////////////////////////
void display(const TRectangle &rec)
{
cout << rec.length << ' ' << rec.width << endl;
}
////////////////////////////////////////////////////////////
// areEqual
////////////////////////////////////////////////////////////
bool areEqual(const TRectangle &rec1, const TRectangle &rec2)
{
return (rec1.length == rec2.length)
&& (rec1.width == rec2.width);
}
////////////////////////////////////////////////////////////
// operator ==
////////////////////////////////////////////////////////////
bool operator == (const TRectangle &rec1, const TRectangle &rec2)
{
return (rec1.length == rec2.length)
&& (rec1.width == rec2.width);
}
////////////////////////////////////////////////////////////
// operator !=
////////////////////////////////////////////////////////////
bool operator != (const TRectangle &rec1, const TRectangle &rec2)
{
return !(rec1 == rec2);
}
|