搜档网
当前位置:搜档网 › C++ 矩阵的加减乘除

C++ 矩阵的加减乘除

C++ 矩阵的加减乘除
C++ 矩阵的加减乘除

《矩阵类》

程序设计基础课程设计报告

二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;

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

return 0;

}

四、流程图:

五.总结:

在做程序设计前就已经感觉到我设计的《矩阵类》比较复杂,不仅要写出实现各种功能的函数还要保证函数之间的连接,怎样通过函数之间的关系能很好的把函数连接起来,还要保证程序能够很好的而且有效的运行。还有可能遇到一些以前没有用到的知识,像怎样在输入有误的情况下进行异常处理,这些都要通过函数的功能来实现,这些对我来说都是新的知识,而且觉得很有难度。

在做程序设计前还必须把书本上的基本知识搞懂,程序设计会用到书中的类做,对类的理解也不是很到位,一些概念的知识还没有很好的理解,所以还需要借助书中的知识来加深对类的理解。

在编程的过程中也遇到了很多的困难,但是通过同学的帮助渐渐对于程序有更深一步的理解,而且他们也帮我编一个对异常处理的函数,这样在异常处理的过程中就能很好的处理因为在输入有误的情况的错误。

工程完成日期:2008-7-1

张勇

07电信

参考书目:

[1]谭浩强《C++程序设计》清华大学出版社,《《线性代数》》高等教育出版社,2007年.

相关主题