建立一個矩陣類Array,存儲一個4×4矩陣並能完成矩陣順時針旋轉 90°的運算

建立一個矩陣類Array,存儲一個4×4矩陣並能完成矩陣順時針旋轉 90°的運算。

題目要求

建立一個矩陣類Array,存儲一個4×4矩陣並能完成矩陣順時針旋轉 90°的運算

(1) 私有數據成員

 		int *x;指向存儲一個 4*4 矩陣值的內存區域(二維數組作爲一維數組來存放)。       

(2) 公有成員函數

	    void print():按行輸出矩陣的值。       
	    void change():順時針旋轉 900的運算。
	    Array(int(*p)[4])	初始化私有的數據成員。   
	    ~Arrray()		釋放對象存儲矩陣時所用內存空間。

(3)編寫一個程序測試類,說明(聲明)Array對象A,將一個矩陣存入對象A中,並輸出矩陣的值,順時針旋轉 90° 對象A中的矩陣並輸出。使用以下測試數據
輸入

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

輸出

   1   2   3   4
   5   6   7   8
   9  10  11  12
  13  14  15  16

  13   9   5   1
  14  10   6   2
  15  11   7   3
  16  12   8   4

   1   2   3   4
   5   6   7   8
   9  10  11  12
  13  14  15  16

代碼展示.

#include<iostream>
#include <iomanip>

using namespace std;

class Array             //創建Array類
{
private:
    int b[4][4];        //新創建一個數組裝傳入的數據
public:
    Array(int(*p)[4]);
    friend void operator +(Array& b); //定義順時針翻轉
    friend void operator -(Array& b);   //定義逆時針翻轉
    void print();
      ~Arrray()
    {
        delete[] {};
    }
};

Array::Array(int(*p)[4])        //通過遍歷給Array內的b[][]賦值
{
    int i, j;

    for (i = 0; i < 4; i++)         
    {
        for (j = 0; j < 4; j++)
        {
            b[i][j] = p[i][j];
        }
        cout << endl;
    }
}

void  operator +(Array& b)
{
    int i, j, t;
    int c[4][4];
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
        {
            c[i][j] = b.b[i][j];
        }
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
        {
           b. b[i][j] =c[3-j][i];
        }
}
void operator -(Array& b)
{
    int i, j, t;
    int c[4][4];
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
        {
            c[i][j] = b.b[i][j];
        }
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
        {
            b.b[i][j] = c[j][3-i];
        }
}

void  Array::print()
{
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            cout << setw(4) << right << b[i][j];
        }
        cout << endl;
    }
}



int main()
{
    int a[4][4];
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
            cin >> a[i][j];
        cout << "next" << endl;
    }

    Array  f(a);
    f.print();
    operator+(f);
     f.print();
     operator -(f);
     f.print();

    return 0;
}










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章