#include<iostream>
#include<iomanip>
using namespace std;
const int PI=3;
const int P=3;
class exam {
public:
exam();
exam(int a,int b,int c,int d,int e,int f,int g,int h,int i);
void getexam( );
void print();
exam operator+(exam &X);
exam operator-(exam &X);
exam operator/(exam &X);
exam operator*(exam &X);
exam operator++();
private:
int A[PI][P];
};
exam::exam()
{ for(int i=0; i<PI; i++)
for(int j=0;j<P; j++)
A[i][j]=0;
}
exam::exam(int a,int b,int c,int d,int e,int f,int g,int h,int i)
{
A[0][0]=a;
A[0][1]=b;
A[0][2]=c;
A[1][0]=d;
A[1][1]=e;
A[1][2]=f;
A[2][0]=g;
A[2][1]=h;
A[2][2]=i;
}
void exam::getexam( )
{ cout<<"Please input 3*3 data:"<<endl;
for (int i=0; i<PI; i++)
for (int j=0;j<P; j++)
cin>>A[i][j];
}
void exam::print()
{ for (int i=0; i<PI;i++)
{ for (int j=0;j<P;j++ )
cout<<setw(5)<< A[i][j];
cout<<endl;
}
}
exam exam::operator+(exam &X)
{ exam temp;
for (int i=0;i<PI; i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]+X.A[i][j];
return temp;
}
exam exam::operator-(exam &X)
{ exam temp;
for (int i=0; i<PI; i++)
for (int j=0; j<P; j++ )
temp.A[i][j]=A[i][j]-X.A[i][j];
return temp ;
}
exam exam::operator/(exam &X)
{ exam temp;
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]/X.A[i][j];
return temp;
}
exam exam::operator*(exam &X)
{ exam temp;
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]*X.A[i][j];
return temp;
}
exam exam::operator++()
{
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
++A[i][j];
return *this;
}
int main()
{ exam X(1,2,3,4,5,6,7,8,9);
exam Y,Z;
Y.getexam();
cout<<"Print X"<<endl;
X.print();
cout<<"Print Y"<<endl;
Y.print();
Z=X+Y;
cout<<" Print Z=X+Y"<<endl;
Z.print();
Z=X-Y;
cout<<" Print Z=X-Y"<<endl;
Z.print();
cout<<" Print Z=X/Y"<<endl;
Z=X/Y;
Z.print();
cout<<" Print Z=X*Y"<<endl;
Z=X*Y;
Z.print();
cout<<"Print ++X"<<endl;
++X;
X.print() ;
return 0;
}
#include<iomanip>
using namespace std;
const int PI=3;
const int P=3;
class exam {
public:
exam();
exam(int a,int b,int c,int d,int e,int f,int g,int h,int i);
void getexam( );
void print();
exam operator+(exam &X);
exam operator-(exam &X);
exam operator/(exam &X);
exam operator*(exam &X);
exam operator++();
private:
int A[PI][P];
};
exam::exam()
{ for(int i=0; i<PI; i++)
for(int j=0;j<P; j++)
A[i][j]=0;
}
exam::exam(int a,int b,int c,int d,int e,int f,int g,int h,int i)
{
A[0][0]=a;
A[0][1]=b;
A[0][2]=c;
A[1][0]=d;
A[1][1]=e;
A[1][2]=f;
A[2][0]=g;
A[2][1]=h;
A[2][2]=i;
}
void exam::getexam( )
{ cout<<"Please input 3*3 data:"<<endl;
for (int i=0; i<PI; i++)
for (int j=0;j<P; j++)
cin>>A[i][j];
}
void exam::print()
{ for (int i=0; i<PI;i++)
{ for (int j=0;j<P;j++ )
cout<<setw(5)<< A[i][j];
cout<<endl;
}
}
exam exam::operator+(exam &X)
{ exam temp;
for (int i=0;i<PI; i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]+X.A[i][j];
return temp;
}
exam exam::operator-(exam &X)
{ exam temp;
for (int i=0; i<PI; i++)
for (int j=0; j<P; j++ )
temp.A[i][j]=A[i][j]-X.A[i][j];
return temp ;
}
exam exam::operator/(exam &X)
{ exam temp;
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]/X.A[i][j];
return temp;
}
exam exam::operator*(exam &X)
{ exam temp;
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
temp.A[i][j]=A[i][j]*X.A[i][j];
return temp;
}
exam exam::operator++()
{
for(int i=0;i<PI;i++)
for(int j=0;j<P;j++)
++A[i][j];
return *this;
}
int main()
{ exam X(1,2,3,4,5,6,7,8,9);
exam Y,Z;
Y.getexam();
cout<<"Print X"<<endl;
X.print();
cout<<"Print Y"<<endl;
Y.print();
Z=X+Y;
cout<<" Print Z=X+Y"<<endl;
Z.print();
Z=X-Y;
cout<<" Print Z=X-Y"<<endl;
Z.print();
cout<<" Print Z=X/Y"<<endl;
Z=X/Y;
Z.print();
cout<<" Print Z=X*Y"<<endl;
Z=X*Y;
Z.print();
cout<<"Print ++X"<<endl;
++X;
X.print() ;
return 0;
}
本文介绍了一个简单的C++程序,用于实现3x3矩阵的基本运算,包括加法、减法、乘法和除法,并提供了自增操作。通过定义一个名为exam的类来封装这些操作,展示了如何输入和打印矩阵。
1845

被折叠的 条评论
为什么被折叠?



