當前位置:編程學習大全網 - 編程語言 - 編程實現壹個3行3列的方陣類:!!!!求答案!!!!!

編程實現壹個3行3列的方陣類:!!!!求答案!!!!!

Matrix33.h:

#ifndef _MATRIX33_

#define _MATRIX33_

#include <iostream>

using namespace std;

#define N 3

class Matrix

{

private:

int a[N][N];

public:

Matrix();

Matrix(int array[N][N]);

Matrix operator +(Matrix matrix);

Matrix operator -(Matrix matrix);

Matrix operator *(int k);

friend Matrix operator *(int k,Matrix matrix);

Matrix operator *(Matrix matrix);

Matrix MatReverse();

friend ostream& operator <<(ostream &stream,Matrix matrix)

{

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

stream<<matrix.a[i][j]<<"\t";

}

stream<<endl;

}

stream<<endl;

return stream;

}

};

#endif

Matrix33.cpp:

#include "Matrix33.h"

Matrix::Matrix()

{

int i,j;

for(i=0; i<N; i++)

for(j=0; j<N; j++)

a[i][j]=0;

}

Matrix::Matrix(int array[N][N])

{

int i,j;

for(i=0; i<N; i++)

for(j=0; j<N; j++)

a[i][j]=array[i][j];

}

Matrix Matrix::operator +(Matrix matrix)

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

temp.a[i][j]=a[i][j]+matrix.a[i][j];

}

}

return temp;

}

Matrix Matrix::operator -(Matrix matrix)

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

temp.a[i][j]=a[i][j]-matrix.a[i][j];

}

}

return temp;

}

Matrix Matrix::operator *(int k)

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

temp.a[i][j]=k*a[i][j];

}

}

return temp;

}

Matrix operator *(int k,Matrix matrix)

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

temp.a[i][j]=k*matrix.a[i][j];

}

}

return temp;

}

Matrix Matrix::operator *(Matrix matrix)

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

for(int k=0; k<N; k++)

{

temp.a[i][j]+=a[i][k]*matrix.a[k][j];

}

}

}

return temp;

}

Matrix Matrix::MatReverse()

{

Matrix temp;

int i,j;

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

{

temp.a[i][j]=a[j][i];

}

}

return temp;

}

Test.cpp:

#include "Matrix33.h"

int main()

{

int a[3][3]={1,2,3,4,5,6,2,5,8};

int b[3][3]={1,4,6,8,5,7,2,3,8};

Matrix m1(a);

Matrix m2(b);

cout<<"m1:"<<endl<<m1;

cout<<"m2:"<<endl<<m2;

Matrix m;

m=m1+m2;

cout<<"m1+m2:"<<endl<<m;

m=m1-m2;

cout<<"m1-m2:"<<endl<<m;

m=3*m1;

cout<<"3*m1:"<<endl<<m;

m=m2*3;

cout<<"m2*3:"<<endl<<m;

m=m1*m2;

cout<<"m1*m2:"<<endl<<m;

m=m1.MatReverse();

cout<<"m1 Reverse:"<<endl<<m;

return 0;

}

  • 上一篇:為什麽it行業那麽多培訓機構
  • 下一篇:哪些動詞加ing可以直接變成名詞?
  • copyright 2024編程學習大全網