《矩阵类》
程序设计基础课程设计报告
二OO八年七月一日
目录
一.编程目的: ......................... 错误!未定义书签。二.设计要求: ......................... 错误!未定义书签。三.各函数功能说明: ................... 错误!未定义书签。四.流程图: ........................... 错误!未定义书签。五.总结:. (7)
参考书目: (8)
一.编程目的:
编写一个矩阵类,可以实现矩阵的初始化,矩阵的加法,减法,乘法等基本功能,要求对运算符+、-,《、》进行重载。
二.设计要求:
编写一个矩阵类
1.实现矩阵的初始化
2.实现矩阵的加法(将两个矩阵的对应位置的数相加)
3.实现矩阵的减法
4.实现矩阵的乘法
5.对基本运算符的重载(+、-、《《、》》)
6.输出这些信息
三.各函数功能说明:
函数源代码以及函数的功能:
#include
#define M 3
class Matrix // 定义类Matrix
{public:
Matrix(); // 声明构造函数
Matrix operator + (Matrix &); //声明加法重载运算符作为成员函数
Matrix operator - (Matrix &); //声明减法重载运算符作为成员函数
Matrix operator * (Matrix&); //声明乘法重载运算符作为成员函数
Matrix zhuanzhi(Matrix &); //声明矩阵的转值为成员函数
friend istream &operator >> (istream&,Matrix&); //声明输入重载运算符作为友元函数
friend ostream &operator << (ostream&,Matrix&); //声明输出重载运算符作为友元函数
private:
int q[M][M];
};
Matrix::Matrix() //定义构造函数
{
for(int i=0;i for(int j=0;j q[i][j]=0; } Matrix Matrix:: operator + (Matrix &a) //定义加法重载运算符函数 {Matrix m; for(int i=0;i for(int j=0;j m.q[i][j]=q[i][j]+a.q[i][j]; return m; } Matrix Matrix:: operator - (Matrix &a) // 定义减法重载运算符函数 { Matrix m; for(int i=0;i for(int j=0;j m.q[i][j]=q[i][j]-a.q[i][j]; return m; } Matrix Matrix ::operator * (Matrix &a) //定义乘法运算符函数 {Matrix m; for(int i=0;i { for(int j=0;j for(int k=0;k m.q[i][j]+=q[i][k]*a.q[k][j];} return m; } Matrix Matrix::zhuanzhi(Matrix &a) //定义矩阵的转值 { Matrix b,c; b=a; for(int i=0;i for(int j=0;j c.q[i][j]=b.q[j][i]; return c; } istream &operator >> (istream& input,Matrix& a ) //定义输入重载运算符函数 { int i=0,j=0; cout<<"Please enter its date:"< for(i=0;i for(j=0;j input >>a.q[i][j]; return input; } ostream &operator << (ostream& output,Matrix& a) // 定义输出重载运算符函数 { cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @"< cout<<"@@@@@@@@ The new Matrix is: @@@@@@@"< cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @"< for(int i=0;i for(int j=0;j { output< if(j==M-1) cout< } return output; } int main() {Matrix a,b,c,d,f,k; // 定义对象a,b,c,d,f cin>>a; cin>>b; c=a+b; d=a-b; f=a*b;