ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:19.84KB ,
资源ID:18234771      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18234771.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++课程设计矩阵乘法计算文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++课程设计矩阵乘法计算文档格式.docx

1、 VoidShow(); /输出 VoidInputFromFile(); /从文件中输入矩阵 friend CMatrixoperator *(CMatrix &mat1,CMatrixmat2);/重载乘法;2、依照模板,在模板外依次定义相关的函数模板,再通过实例化建立相应的成员函数,同样方便快捷,避免了代码的冗长,程序层次清晰;templateCMatrix:CMatrix(int row,int col) /两个参数的构造函数 3、建立选择函数choose,实现程序的多态性,同时也简化了主函数的内容,主函数只需简单调用choose函数就能执行整个程序的相关功能;void choose(

2、) /数据类型选择函数 cout时间:2009年9月26日nendl作者:setw(32) 整型2 浮点型3 双精度型请选择数据类型:n; int sjlx; cinsjlx; switch(sjlx) case 1: choose1(1); break; case 2: choose1(0.0); case 3: choose1(1e-10); default:coutMat0 -Mat00 Mat01 Mat0j Mat1 -Mat10 Mat11 Mat1j : Mati -Mati0 Mati1 Matij实现构造的代码为: template int i,j; nRow=row,nCo

3、l=col; Mat=new T*nRow; for(i=0;inRow;i+) Mati=new TnCol;请输入数据: for(j=0;jnCol;j+) cout第i+1j+1Matij; 3、运算符的重载要实现矩阵间的乘法运算,有必要对其运算符进行重载。而乘法运算符又要针对不同数据类型进行运算,因此,对运算符重载函数模板化也是很有必要的。 operator* (CMatrixmat2) /矩阵乘法运算符重载 CMatrix mat3(mat1.nRow,mat2.nCol,0); for(int i=0;mat1.nRow; for(int j=0;mat2.nCol; mat3.M

4、atij=0; for(int k=0;kmat1.nCol;k+) mat3.Matij+=mat1.Matik*mat2.Matkj; return mat3;无论何种数据类型的矩阵,其乘法算法都是一致的,详见以上代码。4、数据的输入输出 本程序数据可以初始赋值也可以通过键盘输入,还可以从外部文件输入。键盘输入:文件输入:void CMatrixInputFromFile() /矩阵文件输入函数 ifstream infile; infile.open(daijp.txt,ios:nocreate); if(!infile) cout infile.close();矩阵的输出:Show()

5、 /矩阵输出函数Matijsetw(6);5、程序的菜单设计和异常处理 本程序主要是使用switch开关语句进行菜单设计,通过读取键入不同的值进入不同的子句执行入口,进而实现不同的功能。通过比较输入的两矩阵的行和列判断能否进行乘法运算,防止乱输入出现的异常。同时,本程序只是在主函数中使用了少量goto语句,并非滥用,非但没有使程序流程无规律,反倒使程序代码更加简洁,层次结构更加清晰。void main() /主函数loop: *n *n *nnn*您好,欢迎使用矩阵乘法计算程序!*n *n *nn choose();loop1:想继续执行吗?1.继续2.退出 int a;a; switch(a

6、) case 1:goto loop; break; case 2: cout非常感谢您的使用!欢迎不嗇赐教!联系方式:电话: 151QQ: 12345678按任意键退出 cin.get(); /去除缓冲区的回车符 exit(1); default: goto loop1;五、程序设计中遇到的主要问题及解决办法1、无法实现文件输入主要原因是输入之前调用的是默认构造函数,只是简单赋值,并未开辟内存空间,后来调用带参构造函数就可以正常输入数据;2、重载乘法运算的函数无法重载 经检查发现,由于重载的是友元函数,函数不存在this指针,因此必须显式地调用两个相乘的矩阵类。六、设计中尚存的不足1、功能还

7、不够强大,只能做简单的矩阵乘法,我所期望的是能够做各种混合运算,具有强大处理功能的实用程序,无奈所学知识有限,时间仓促;2、矩阵的输出还有一个问题,当矩阵的行数超过了窗口一行所能显示的数时,这时又该怎么来输出矩阵呢?3、关于异常处理这,我觉得处理功能也不是很行,觉得还是应该建立全面的异常检测与异常处理机制;七、设计的感想和心得体会1、本程序解皆系本人自主开发,开发过程自然十分艰辛,使我深深地懂得了软件版权保护的重要性;2、此次程序设计使我透彻地领悟到面向对象的程序设计的优点和强大生命力,特别是类和模板的使用,使程序的兼容性和扩展能力都大大加强,比如我们想要再做一个处理其他类型数据的矩阵的乘法计

8、算,只需要添加一个相应的类型声明就可以利用模板迅速构造出来;3、对凡事都应当有毅力,不要中途放弃。在开发过程中,好几次遇到困难我都想再换一个别的程序或找同学拷一个程序,但我最终还是坚持下来了。永不言弃,你就一定会成功的;4、磨刀不误砍柴工。在刚拿到任务时,书上的关键代码我也是看的一头雾水,后来我将上学期的课本认真研读一遍之后,感觉收获真的不少,接着编起程来就顺手好多了;5、通过这次程序设计,我相信我十月份的等级考试已经没多大问题了,哈哈修改后的程序(矩阵乘法计算)#includefstream.hiomanip.hstdlib.h /构造函数,从键盘输入矩阵 void Show(); /输出

9、void InputFromFile(); /重载乘法CMatrix() /缺省构造函数 nRow=100,nCol=100; Mat=new T*100;100; Mati=new T100;CMatrix(int row,int col,int k)/三个参数的构造函数 初始化赋值 键盘输入 文件输入 int srfs;请选择数据输入方式:srfs; switch(srfs) /用于选择不同的输入方式 CMatrixb; mata(a,b);请输入第二个矩阵的行数和列数:cd; if(b!=c) cout错误!两矩阵不能相乘! break; matb(c,d); matc(a,d,0); mata.Show(); matb.Show(); matc=mata*matb; cout CMatrix mata(a,b,0); if(b! matb(c,d,0); mata.InputFromFile(); matb.InputFromFile();欢迎不吝赐教!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1