<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
注:类视图使用 StarUML 生成。
一、概述
1.设计原因
由于数值计算课的上机作业要求,为了减少创建成本,所以设计了一个基于标准 C++ 的 MATRIX 类。
2.设计目的
利用动态分配内存,运算符重载等机制,利用已经学会的内容,尽可能简化矩阵的创建、运算等过程。
3.主要功能
- 定义矩阵的方式:
-
MATRIX A;//创建空矩阵
MATRIX A(n);//创建一维矩阵,初始值为 n;
MATRIX A(MATRIX & B);//完全复制 B 矩阵创建 A
MATRIX A(MatrixType,Dimension,value1,(value2));//创建特殊矩阵(单位矩阵,对角矩阵,顺序矩阵,上三角矩阵,下三角矩阵)
MATRIX A(MatrixType,Dimension,band);//利用 band 字符串创建带状矩阵
- 计算矩阵属性,包括:
-
- 行列式的值
- 矩阵的特征值
- 矩阵的迹
- 矩阵的逆
- 矩阵的转置
- 矩阵运算,包括:
-
- 加法
- 减法
- 乘法
- 针对实数,将实数分配到矩阵的每一个元素上,所以可以进行 矩阵/实数 的运算
4.储存方式
由于目前处理的矩阵一般不超过 500 阶(约占用 1.9 MB 内存空间),所以暂时使用连续内存保存内容。
Δ返回顶部二、类设计图
![](http://hi.csdn.net/attachment/201110/21/0_1319172640ofG6.gif)
项目 | 名称 | 备注 |
私有成员 | double *Body;//the content of the matrix |
|
int row;//the row of the matrix |
||
int col;//the column of the matrix |
||
char type;//matrix type:I,D,P,B,U,L,E,Z,N,R |
||
构造函数 | MATRIX();//default constructor |
|
MATRIX(int m,int n);//constructor |
||
MATRIX(const MATRIX & A);//copy constructor |
||
MATRIX(char t,int n,double val,int pRow=0);//I,D,U,L,P |
||
MATRIX(char t,int n,string & band);//B |
||
MATRIX(char t,int n,const char * band);//B |
||
MATRIX(double k);//k is a real number |
||
MATRIX(int k);//k is a real number |
||
MATRIX(int m,int n,const double * array)//use const array construct |
||
析构函数 | ~MATRIX();//destructor |
|
运算符重载 | MATRIX & operator +=(const MATRIX & A); |
|
MATRIX & operator -=(const MATRIX & A);< |