Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions Task 1/Box it HackerRank/HR_Box_it.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#include<bits/stdc++.h>

using namespace std;
//Implement the class Box
//l,b,h are integers representing the dimensions of the box
class Box{
int l,b,h;
public:
Box(){
l=b=h=0;
}
Box(int len,int breadth,int height){
l=len,b=breadth,h=height;
}
int getLength(){return l;}
int getBreadth(){return b;}
int getHeight(){return h;}
Box(Box &obj){
l=obj.l;b=obj.b;h=obj.h;
}
long long CalculateVolume(){
return (long long)l*b*h;
}
bool operator < (Box &obj){
if(l<obj.l){return true;}
else if(b<obj.b && l==obj.l){return true;}
else if(h<obj.h && b<obj.b && l<obj.l){return true;}
else{return false;}
}
};

ostream &operator <<(ostream &out,Box &b){
cout<<b.getLength()<<" "<<b.getBreadth()<<" "<<b.getHeight();
return out;
}

// The class should have the following functions :
// Constructors:
// Box();
// Box(int,int,int);
// Box(Box);


// int getLength(); // Return box's length
// int getBreadth (); // Return box's breadth
// int getHeight (); //Return box's height
// long long CalculateVolume(); // Return the volume of the box

//Overload operator < as specified
//bool operator<(Box& b)

//Overload operator << as specified
//ostream& operator<<(ostream& out, Box& B)


void check2()
{
int n;
cin>>n;
Box temp;
for(int i=0;i<n;i++)
{
int type;
cin>>type;
if(type ==1)
{
cout<<temp<<endl;
}
if(type == 2)
{
int l,b,h;
cin>>l>>b>>h;
Box NewBox(l,b,h);
temp=NewBox;
cout<<temp<<endl;
}
if(type==3)
{
int l,b,h;
cin>>l>>b>>h;
Box NewBox(l,b,h);
if(NewBox<temp)
{
cout<<"Lesser\n";
}
else
{
cout<<"Greater\n";
}
}
if(type==4)
{
cout<<temp.CalculateVolume()<<endl;
}
if(type==5)
{
Box NewBox(temp);
cout<<NewBox<<endl;
}

}
}

int main()
{
check2();
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do add a newline here

44 changes: 44 additions & 0 deletions Task 1/Box it HackerRank/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Design a class named Box whose dimensions are integers and private to the class. The dimensions are labelled: length , breadth , and height .

The default constructor of the class should initialize , , and to .

The parameterized constructor Box(int length, int breadth, int height) should initialize Box's and to length, breadth and height.

The copy constructor BoxBox ) should set and to 's and , respectively.

Apart from the above, the class should have functions:
<li>int getLength() - Return box's length</li>
<li>int getBreadth() - Return box's breadth </li>
<li>int getHeight() - Return box's height </li>
<li>long long CalculateVolume() - Return the volume of the box </li>
Comment on lines +10 to +13
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we replace this with markdown lists?


Overload the operator < for the class Box. Box **A <** Box **B** if:
<ol>
<li> A.l < B.l</li>
<li> A.b < B.b and A.l == B.l</li>
<li>A.h < B.h and A.b==B.h and A.l==B.l</li>
</ol>

Comment on lines +16 to +21
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here as well

Overload operator **<<** for the class Box().

If **B** is an object of class Box:

**cout << B** should print **B.l,B.h** on a single line separated by spaces.

For example,

Box b1; // Should set b1.l = b1.b = b1.h = 0;
Box b2(2, 3, 4); // Should set b1.l = 2, b1.b = 3, b1.h = 4;
b2.getLength(); // Should return 2
b2.getBreadth(); // Should return 3
b2.getheight(); // Should return 4
b2.CalculateVolume(); // Should return 24
bool x = (b1 < b2); // Should return true based on the conditions given
cout<<b2; // Should print 2 3 4 in order.

**Constraints**

**0<=l,b,h<=10<sup>5</sup>**

Two boxes being compared using the < operator will not have all three dimensions equal.