福州知识产权法庭:矩阵(二)
来源:百度文库 编辑:中财网 时间:2024/05/25 21:19:20
5、 矩阵(二)
编写C++程序完成以下功能:
(1) 假定矩阵大小为4×5(整型);
(2) 矩阵空间采用new动态申请,保存在指针中;
(3) 定义矩阵初始化函数,可以从cin中输入矩阵元素;
(4) 定义矩阵输出函数,将矩阵格式化输出到cout;
(5) 定义矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵中;
(6) 定义矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵中;
(7) 动态申请三个矩阵:A1、A2、A3;
(8) 初始化A1、A2;
(9) 计算并输出A3 = A1加A2,A3 = A1减A2;
(10)释放矩阵空间。
#include
#include
using namespace std;
/*定义一个矩阵类*/
class Matrix
{
private:
int X[4][5];
public:
void SetMatrix(int xx[4][5]=0);
void SetArray(int xx[4][5]);
void putoutMatrix();
friend void matrixplus(Matrix* a,Matrix* b,Matrix* c);
friend void matrixsub(Matrix* a,Matrix* b,Matrix* c);
};
/*矩阵初始化*/
void Matrix::SetMatrix(int xx[4][5])
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
X[i][j]=xx[i][j];
}
}
}
/*二维数组初始化*/
void Matrix::SetArray(int xx[4][5])
{
int i,j;
cout<<"请输入一个4*5矩阵:"<
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
cin>>xx[i][j];
}
getchar();
}
}
void Matrix::putoutMatrix()
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
cout<
}
cout<
}
}
void matrixplus(Matrix* a,Matrix* b,Matrix* c)
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
((*c).X[i][j])=((*a).X[i][j])+((*b).X[i][j]);
}
}
}
void matrixsub(Matrix* a,Matrix* b,Matrix* c)
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
(c->X[i][j])=(a->X[i][j])-(b->X[i][j]);
}
}
}
int main()
{
Matrix *A1,*A2,*A3,*A4;
int xx1[4][5]={0},xx2[4][5]={0};
char z1,z2;
A1=new Matrix;
A2=new Matrix;
A3=new Matrix;
A4=new Matrix;
A3->SetMatrix(xx1);A4->SetMatrix(xx1);
cout<<"采用默认值(y)/手动初始化矩阵A1(n)"<
cin>>z1;
if(z1!='y')
{
A1->SetArray(xx1);
}
A1->SetMatrix(xx1);
cout<<"采用默认值(y)/手动初始化矩阵A2(n)"<
cin>>z2;
if(z2!='y')
{
A2->SetArray(xx2);
}
A2->SetMatrix(xx2);
cout<
A1->putoutMatrix();
cout<
A2->putoutMatrix();
matrixplus(A1,A2,A3);
matrixsub(A1,A2,A4);
cout<
A3->putoutMatrix();
cout<
A4->putoutMatrix();
delete A1;
delete A2;
delete A3;
delete A4;
system("pause");
return 0;