Assignment No. 5 Semester: Fall 2010 CS201: Introduction to Programming | Total Marks: 20 Due Date: Jan 31st ,2011 | ||
Instructions: Please read the following instructions carefully before submitting your assignment: It should be clear that your assignment will not get any credit if: § The assignment is submitted after due date. § The submitted assignment does not open or file is corrupt. All types of plagiarism are strictly prohibited. Note: You have to upload only .cpp file. Assignment in any other format (extension) will not be accepted. If you will submit code any other file format like .doc or .txt etc. you will get zero marks. Objective The objective of this assignment is to provide hands on experience of using § User defined manipulators § Static member § Copy Constructor Guidelines § Code should be properly aligned and well commented. § Follow C/C++ rules while writing variables names, function names etc. § Use only Dev-C++ IDE for this assignment. | |||
Assignment | |||
Problem Statement:
Sample Output Area of rectangle 1 is 6400 Area of rectangle 2 is 5600 The number of rectangles is 2 After using copy constructor, total number of rectangles is 3 The number of rectangles is 2 Detailed Description: 1. The class should have 4 members: iTop, iRight, iBot, and iLeft, all of type int. 2. Area of both rectangles should be calculated by using iTop, iRight, iBot, and iLeft. 3. It should have a default constructor and a copy constructor. 4. It should have a destructor. 5. It should contain all required getters and setters. 6. It should contain a static member, iRefCount, which keeps track of the number of CRectangle objects. Increment it in the constructor, and decrement it in the destructor. Hint: CRectangle would implement rectangles by using left, right, top and bottom and calculate their areas to compare. GOOD LUCK | |||
Deadline: Your Assignment solution must be submitted on or before Jan 31st, 2011. | |||
---------------------------------------------------------------------------------------------------
Solution
/*YASIR JAVAED MC090200982*/
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
class CRectangle
{
private:
// Rectangle class is CRectangle. it is private nobody can make rectangle without its attributes.
CRectangle()
{
}
public:
// Data members are
int iBot;
int iTop;
int iLeft;
int iRight;
// Static variable to ensure rectangles calculate.
static int rectCount;
// Constructor of the class CRectangle.
CRectangle(int bottom,int top,int left,int right)
{
iBot = bottom;
iTop = top;
iLeft = left;
iRight = right;
CRectangle::rectCount++;
}
// Dynamic Copy constructor of the class.
CRectangle(const CRectangle& lhs)
{
iBot = lhs.iBot;
iTop = lhs.iTop;
iLeft = lhs.iLeft;
iRight = lhs.iRight;
CRectangle::rectCount++;
}
// Destructor of the class.
~CRectangle()
{
CRectangle::rectCount--;
}
// Function to compute and obtain area of a rectangle.
long Area()
{
return(long)( abs(iTop-iBot) * abs(iLeft-iRight) );
}
};
int CRectangle::rectCount=0;
int main ()
{
CRectangle rect1 = CRectangle(0,80,0,80);
CRectangle rect2 = CRectangle(0,70,0,80);
cout<<"Area of rectangle 1 is "<<rect1. Area()<<endl;
cout<<"\nArea of rectangle 2 is "<<rect2. Area()<<endl;
cout<<"\nThe number of rectangles is "<<CRectangle::rectCount<<endl;
{
CRectangle rectCopied = CRectangle(rect1);
cout<<"\nAfter using copy constructor, total number of rectangles is "<<CRectangle::rectCount<<endl;
}
cout<<"\nThe number of rectangles is "<<CRectangle::rectCount<<endl;
getch();
return 0;
}
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
class CRectangle
{
private:
// Rectangle class is CRectangle. it is private nobody can make rectangle without its attributes.
CRectangle()
{
}
public:
// Data members are
int iBot;
int iTop;
int iLeft;
int iRight;
// Static variable to ensure rectangles calculate.
static int rectCount;
// Constructor of the class CRectangle.
CRectangle(int bottom,int top,int left,int right)
{
iBot = bottom;
iTop = top;
iLeft = left;
iRight = right;
CRectangle::rectCount++;
}
// Dynamic Copy constructor of the class.
CRectangle(const CRectangle& lhs)
{
iBot = lhs.iBot;
iTop = lhs.iTop;
iLeft = lhs.iLeft;
iRight = lhs.iRight;
CRectangle::rectCount++;
}
// Destructor of the class.
~CRectangle()
{
CRectangle::rectCount--;
}
// Function to compute and obtain area of a rectangle.
long Area()
{
return(long)( abs(iTop-iBot) * abs(iLeft-iRight) );
}
};
int CRectangle::rectCount=0;
int main ()
{
CRectangle rect1 = CRectangle(0,80,0,80);
CRectangle rect2 = CRectangle(0,70,0,80);
cout<<"Area of rectangle 1 is "<<rect1. Area()<<endl;
cout<<"\nArea of rectangle 2 is "<<rect2. Area()<<endl;
cout<<"\nThe number of rectangles is "<<CRectangle::rectCount<<endl;
{
CRectangle rectCopied = CRectangle(rect1);
cout<<"\nAfter using copy constructor, total number of rectangles is "<<CRectangle::rectCount<<endl;
}
cout<<"\nThe number of rectangles is "<<CRectangle::rectCount<<endl;
getch();
return 0;
}
No comments:
Post a Comment