c++课程设计---两个矩阵的加减法

c++课程设计---两个矩阵的加减法

ID:9376214

大小:69.50 KB

页数:6页

时间:2018-04-29

c++课程设计---两个矩阵的加减法_第1页
c++课程设计---两个矩阵的加减法_第2页
c++课程设计---两个矩阵的加减法_第3页
c++课程设计---两个矩阵的加减法_第4页
c++课程设计---两个矩阵的加减法_第5页
资源描述:

《c++课程设计---两个矩阵的加减法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C++课程设计1.功能描述通过运算符重载的方式定义了矩阵的加法、乘法、以及数乘,使得矩阵的符号运算更加的方便、简捷。2.设计目的熟练掌握程序设计语言的基础知识,进一步的理解面向对象编程的分析设计方法以及运算符重载,为以后进行更加复杂的编程打下坚实的基础。二.系统总体设计1.设计框架出现错误,中断扫描输入矩阵判断矩阵是否有错求值显示出错情况,等待用户修改输出结果,并做记录,等待下次输入由于矩阵的乘法要求前面的一个矩阵列数等于后面一个矩阵的行数,因此构造的矩阵可能会出现错误,使得无法进行运算。三.详细的设计1.类的设计首先在.h头文件中构造一个matrix的类,将矩阵行数、列

2、数以及一个指针设为私有,公有部分则声明相关的函数,采用运算符重载的方式重新定义了矩阵的加法、乘法以及数乘。同时声明构造函数,拷贝构造函数和析构函数。2.算法设计与分析由于两个矩阵的加减法是对应位置矩阵元素的相加减,因此只要通过指针将对应元素的相加减即可。矩阵的数乘的运算法则是将该实数与矩阵中的每一个元素相乘后所得的矩阵。所以通过指针和一个循环使得矩阵中的每一个元素与实数相乘即可。矩阵的乘法的运算法则就显得较特殊。新矩阵中的某个元素(矩阵的第行,第列)是通过前面的一个矩阵的第行每一个元素与后面一个相乘矩阵的对应第列中的每一个元素相乘再相加后所得的结果。3.安全环境的分析由于

3、这里是动态的构造了一个矩阵,对于内存的分配也是动态的,因此很容易造成内存的泄漏。在构造matrix类的时候,采用new的方式动态的分配了内存,同时关键的是在类中同时声明了一个拷贝构造函数,使得在定义矩阵的加减乘的运算时将临时矩阵的值拷贝构造,使运算的值不至于因为临时矩阵的消失而造成结果的不存在而引发内存的泄漏。同时在析构函数里记得写delete,使用完内存后安全的释放。四.源代码展示#include"stdafx.h"#include#includeusingnamespacestd;classMatrix{public:Matrix

4、(intm,intn,double*value=NULL){rows=m;cols=n;p=newdouble[m*n];if(value){for(inti=0;i

5、.p[i*cols+j];}}}friendMatrixoperator+(Matrix&c1,Matrix&c2);friendMatrixoperator*(Matrix&c1,Matrix&c2);friendMatrixoperator*(Matrix&c1,doublea);friendostream&operator<<(ostream&output,Matrix&c2);private:introws;intcols;double*p;};Matrixoperator+(Matrix&c1,Matrix&c2){MatrixK(c1.rows,c2.cols

6、);for(inti=0;i

7、.p[k*c2.cols+j];}K.p[i*K.cols+j]=s;}}returnK;}Matrixoperator*(Matrix&c1,doublea){MatrixK(c1.rows,c1.cols);for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。