iT邦幫忙

0

<<Box It!>> _HakerRank_C++_Classes

  • 分享至 

  • xImage
  •  
#include<bits/stdc++.h>

using namespace std;

////////////////////////////////////////////////////////////////////
//Implement the class Box  
class Box
{
    private:
//l,b,h are integers representing the dimensions of the box
    int l,b,h ;
    
// The class should have the following functions :     
    public:
// Constructors:Box();
    Box():l(0),b(0),h(0) {} ;
// Constructors:Box(int,int,int);
    Box(int a, int b, int c):l(a),b(b),h(c) {} ;
// Constructors:Box(Box);
    Box(Box &Bb)
    {
        l = Bb.getLength();
        b = Bb.getBreadth();
        h = Bb.getHeight();
    }    
// int getLength(); Return box's length
    int getLength()
    {
        return l;
    }
// int getBreadth(); Return box's breadth
    int getBreadth()
    {
        return b;
    }
// int getHeight();  Return box's height
    int getHeight()
    {
        return h;
    }
// long long CalculateVolume(); Return the volume of the box
    long long CalculateVolume()
    {
        return (long long)l * (long long)b * (long long)h;
    }
//Overload operator < as specified
//bool operator<(Box& b)
   bool operator<( Box &Bb)
   {
       if(l < Bb.l) return true;
       if(b < Bb.b && l == Bb.l) return true;
       if(h < Bb.h && b == Bb.b && l == Bb.l) return true;      
       return false;
   }
};

//Overload operator << as specified
//ostream& operator<<(ostream& out, Box& B)
ostream& operator<<(ostream& out, Box& Bb)
{
    out << Bb.getLength() <<" "<< Bb.getBreadth() <<" "<<Bb.getHeight();
    return out;
}
////////////////////////////////////////////////////////////////////
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();
}

Design a class named Box whose dimensions are integers and private to the class. The dimensions are labelled: length l, breadth b, and height h.

The default constructor of the class should initialize l, b, and h to 0.

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

The copy constructor Box(Box B) should set l, b and h to B's l, b and h, respectively.

Apart from the above, the class should have 4 functions:

  • 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 the operator < for the class Box. Box A < Box B if:

  1. A.l < B.l
  2. A.b < B.b and A.l == B.l
  3. A.h < B.h and A.b == B.b and A.l == B.l

Overload operator << for the class Box().
If B is an object of class Box:
cout << B should print B.l, B.b and 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⁵
Two boxes being compared using the operator will not have all three dimensions equal.


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言