C++课程设计报告--矩阵乘法计算

C++课程设计报告--矩阵乘法计算

ID:43323911

大小:44.00 KB

页数:4页

时间:2019-09-30

C++课程设计报告--矩阵乘法计算_第1页
C++课程设计报告--矩阵乘法计算_第2页
C++课程设计报告--矩阵乘法计算_第3页
C++课程设计报告--矩阵乘法计算_第4页
资源描述:

《C++课程设计报告--矩阵乘法计算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C卄课程设计报告•、题目名称:矩阵乘法计算1、难易等级:A级对题目的分析和注释:分析:依次建立两个矩阵空间并按照矩阵乘法规则进行运算。(矩阵的乘法规则:1、矩阵的乘法运算必须符合的矩阵与n*s的矩阵相乘。2、第一个矩阵的第i行的元素依次乘以第二个矩阵的第j列元素后结果相加组成生成矩阵第i行第j列元素。)注释:(1)设计一个矩阵类,将相应的函数和数据封装在类中,简化程序。(2)修改程序结构,使程序可以反复执行,直至按键选择退出为止。(3)本程序用数组表示5*5矩阵,将其改为根据输入矩阵的大小动态分配空间[

2、m][n]来放置数据,其中m,n为用户可输入的任意整数。(4)增加类的构造函数和成员函数,使得矩阵数据既可以用在对象初始化时赋值,也可以通过键盘赋值,还可以通过读取数据文件输入。(5)用模板的形式改写矩阵数据类型,使得矩阵中的数据既可以是整型数据,也可以是浮点型数据,执行程序时,分别定义两个整型矩阵和两个浮点型矩阵进行乘法验证。(6)完成矩阵的乘法运算,在运算之前判断这两个矩阵能否满足乘法运算的条件,若不满足,则给出提示信息。四、所增加功能模块的设计如果要说增加功能的话,自己编的程序里面不多,我只是按照

3、题目要求,设计了一个矩阵类,同时用模板的形式改写矩阵数据类型和运算符的重载。1、模板的使用我使用了大量的模板,以T为模板参数,通过对T的不同类型的选择实现相应的运算处理。其中choosel()函数本是无参函数,为了方便模板化,给其赋以伪参数T,在执行时通过T的取值生成相应的函数模板。templatevoidchoose1(T){}调用时:switch(sjlx)case1:choosel(l);}break;case2:{choosel(O.O);}break;case3:{choose

4、l(le-lO);Jbreak;default:cout«n输入选择错误!!!n«endl;}2、矩阵类的构造按照课本要求采用二级指针动态开辟内存空间,节省内存使用;其中数据结构如下:Mat->Mat[0]>Mat[0][0]Mat[0][l]・Mat[l]••…>Mat[l]⑹Mat[l][l]-••••…Mat[0][j]••…Mat[l]U]•■Mat[i]・>Mat[i][0]Mat[i][l]…实现构造的代码为:templateCMatrix::CMatrix(intro

5、w,intcol){intij;nRow=rovv,nCol=col;Mat=nevvT*[nRow];for(i=0;i

6、算符重载函数模板化。templateCMatrixoperator*(CMatrix&matl,CMatrix&mat2){CMatrixmat3(matl.nRow,mat2.nCol,0);for(inti=();i

7、at[k][j];}returnmat3;}五、设计中遇到的主要问题及解决办法1、无法实现文件输入主要原因是输入之前调用的是默认构造函数,只是简单赋值,并未开辟内存空间,后来调用带参构造函数就可以正常输入数据;2、重载乘法运算的函数无法重载经检查发现,由于重载的是友元函数,函数不存在this指针,因此必须显式地调用两个相乘的矩阵类。六.设计中尚存的不足1、功能还不够强大,只能做简单的矩阵乘法,我所期望的是能够做各种混合运算,具有强大处理功能的实用程序,希望在以后的深入学习中可以改进。2、关于异常处理这方

8、面,我觉得处理功能也不是很行,觉得还是应该建立全面的异常检测与异常处理机制。七、对设计的感想和心得体会经过这几周的上机编程,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己上学期学习到的知识。这些都使我对计算机语言的学习有了更深入的认识。总之,通过这这几周的上机编程,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像矩阵乘法计算问题这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些

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

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

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