矩阵系统源代码.docVIP

  • 71
  • 0
  • 约3.73千字
  • 约 7页
  • 2017-12-22 发布于河南
  • 举报
矩阵系统源代码

矩阵系统源代码 #include iostream #include stdio.h using namespace std; class Vector { private : int Hang; //矩阵的行数 int Lie; //矩阵的列数 double **ptr; //用于动态分配矩阵空间所定义的指针 public: Vector(int H=2, int L=2); //构造函数,动态分配内存存储矩阵元素 void InPut(); //输入矩阵元素 void Show()const; //显示矩阵内容 Vector operator+(const Vector JZ)const; //重载操作符 + 实现两个矩阵相加 Vector operator*(const Vector JZ)const; //重载操作符 * 实现两个矩阵相加 void convert(); //矩阵转置函数 }; Vector::Vector(int H, int L) { Hang = H; Lie = L; ptr = new double*[Hang]; //分配Hang个int*空间 if(ptr == NULL) //判断空间分配是否成功 { cout分配空间失败!endl; exit(-1); } for(int i=0; iHang; i++) { ptr[i] = new double[Lie];//让每一行的指针指向一个Lie大小的空间 if(ptr[i] == NULL) { cout分配空间失败!endl; exit(-1); } } for(int m=0; mHang; m++) //将矩阵元素默认值设置为-1 for(int j=0; jLie; j++) ptr[m][j] = -1; } void Vector::InPut() { cout这是一个 Hang 行 Lie 列的矩阵.endl; cout请输入:endl; char s[8]; for(int i=0; iHang; i++) for(int j=0; jLie; j++) { cout第i行j列元素[i][j]:; cins; ptr[i][j]=atof(s); if(s[0]==0) { ptr[i][j]=atof(s); } else if(ptr[i][j]==0) { cout您的输入不合法。endl; j=j-1; } } return; } void Vector::Show() const { for(int i=0; iHang; i++) { for(int j=0; jLie; j++) coutptr[i][j] ; coutendl; } } Vector Vector::operator +(const Vector JZ) const { if(Hang != JZ.Hang || Lie != JZ.Lie) { cout两个矩阵大小不一致,加法操作失败endl; return Vector(); } Vector temp(Hang,Lie); //创建临时对象存储两矩阵的和 for(int i=0; iHang; i++) for(int j=0; jLie; j++) temp.ptr[i][j] = ptr[i][j] + JZ.ptr[i][j]; return temp; } Vector Vector::operator *(const Vector JZ) const { if(Lie != JZ.Hang) { cout两个矩阵行列不匹配,乘法操作失败endl; return Vector(); } Vector temp(Hang,JZ

文档评论(0)

1亿VIP精品文档

相关文档