C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

ボックスを作成し、ボリュームを計算し、未満の演算子を使用してチェックするC++プログラム


条件の少ないボックスクラスを定義する必要があるとします。これらは次のとおりです-

  • 長さ、幅、高さにはそれぞれ3つの属性l、b、hがあります(これらはプライベート変数です)

  • l、b、hを0に設定するためのパラメーター化されていないコンストラクターを1つ定義し、最初に値を設定するためにパラメーター化されたコンストラクターを1つ定義します。

  • 属性ごとにゲッターメソッドを定義する

  • 関数calculateVolume()を定義してボックスの体積を取得します

  • 現在のボックスが別のボックスよりも小さいかどうかをチェックするための演算子(<)未満のオーバーロード。

  • 作成されたボックスの数をカウントできる変数を作成します。

したがって、3つのボックス(0、0、0)(5、8、3)、(6、3、8)を入力して各ボックスのデータを表示し、3番目のボックスが2番目よりも小さいかどうかを確認すると、小さい箱の体積を見つけ、count変数で箱の数を印刷します。

次に、出力は次のようになります

Box 1: (length = 0, breadth = 0, width = 0)
Box 2: (length = 5, breadth = 8, width = 3)
Box 3: (length = 6, breadth = 3, width = 8)
Box 3 is smaller, its volume: 120
There are total 3 box(es)

これを解決するには、次の手順に従います-

  • 体積を計算するには、l * b * h

    を返す必要があります。
  • より小さい(<)演算子をオーバーロードするには、チェックする必要があります

  • 現在のオブジェクトのlが、指定された別のオブジェクトのlと同じでない場合、

    • 現在のオブジェクトのlが別のオブジェクトのlよりも小さい場合はtrueを返します

  • それ以外の場合、現在のオブジェクトのbが特定の別のオブジェクトのbと同じでない場合、

    • 現在のオブジェクトのbが別のオブジェクトのbよりも小さい場合はtrueを返します

  • それ以外の場合、現在のオブジェクトのhが別のオブジェクトのhと同じでない場合は、

    • 現在のオブジェクトのhが別のオブジェクトのhよりも小さい場合はtrueを返します

理解を深めるために、次の実装を見てみましょう-

#include <iostream>
using namespace std;
class Box {
    int l, b, h;
public:
    static int count;
    Box() : l(0), b(0), h(0) { count++; }
    Box(int length, int breadth, int height) : l(length), b(breadth), h(height) { count++; }
    int getLength() const {return l;}
    int getBreadth() const {return b;}
    int getHeight() const {return h;}
    long long CalculateVolume() const {
        return 1LL * l * b * h;
    }
    bool operator<(const Box& another) const {
        if (l != another.l) {
            return l < another.l;
        }
        if (b != another.b) {
            return b < another.b;
        }
        return h < another.h;
    }
};
int Box::count = 0;
int main(){
    Box b1;
    Box b2(5,8,3);
    Box b3(6,3,8);
    printf("Box 1: (length = %d, breadth = %d, width = %d)\n",b1.getLength(), b1.getBreadth(), b1.getHeight());
    printf("Box 2: (length = %d, breadth = %d, width = %d)\n",b2.getLength(), b2.getBreadth(), b2.getHeight());
    printf("Box 3: (length = %d, breadth = %d, width = %d)\n",b3.getLength(), b3.getBreadth(), b3.getHeight());
    if(b3 < b2){
        cout << "Box 3 is smaller, its volume: " << b3.CalculateVolume() << endl;
    }else{
        cout << "Box 3 is smaller, its volume: " << b2.CalculateVolume() << endl;
    }
    cout << "There are total " << Box::count << " box(es)";
}

入力

b1; b2(5,8,3); b3(6,3,8);

出力

Box 1: (length = 0, breadth = 0, width = 0)
Box 2: (length = 5, breadth = 8, width = 3)
Box 3: (length = 6, breadth = 3, width = 8)
Box 3 is smaller, its volume: 120
There are total 3 box(es)

  1. C++で対角行列とスカラー行列をチェックするプログラム

    行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列が対角であるかどうかを確認する必要があります およびスカラー 対角の場合、行列かどうか およびスカラー マトリックスを作成し、結果にyesを出力します。 対角行列 正方行列m[][]は、主対角を除く要素がゼロの場合にのみ対角行列になります。 下の図のように- ここで、赤の要素は主対角線であり、主対角線がゼロであることを除いてゼロ以外の残りの要素であり、対角行列になっています。 。 例 Input: m[3][3] = { {7, 0, 0},  

  2. C++での立方体の体積と表面積のプログラム

    キューブとは何ですか? 立方体は、正方形の6つの面を持つ3次元オブジェクトです。つまり、同じ長さと幅の辺があります。立方体は、次のプロパティを持つ唯一の正六面体です- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 側面を考えると、タスクは立方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 立方体の表面積と体積を計算するには、次の式があります- 表面積=6*側面*側面 ボリューム=サイド*サイド*サイド 例 Input-: side=3 Output-: volume of c