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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

稀疏矩阵运算器实习报告Word文档格式.docx

1、AddSMatrix(M,N,&Q); 稀疏矩阵M与N的行数和列数对应相等.求稀疏矩阵的和Q=M+N. SubSMatrix(M,N,&求稀疏矩阵的差Q=M-N. MultSMatrix(M,N,& 稀疏矩阵M的列数等于N的行数. 求稀疏矩阵的乘积Q=M*N.2、 本程序包含四个模块1) 主程序模块Void main() 初始化Do 接受命令; 处理命令;while(命令!=“退出”)2) 模块调用关系图主程序模块创建稀疏矩阵模块运算稀疏矩阵模块三、 详细设计#define MAXSIZE 20#define MAXRC 10#includeusing namespace std;typede

2、f struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int rposMAXRC+1; int mu,nu,tu;/mu是行,nu是列,tu是非零元个数Matrix;void creatematrix(Matrix& M) int m,n,t,e; int numMAXSIZE+1;/每行非零元素个数 do coutm;矩阵列数:n;非零元个数:t; if(m0|n0|tm*n) couterror while(mm*n);/检测输入是否合法 M.mu = m, M.nu = n, M.tu = t;/保存数据

3、int i,j,k,a; int flagMAXSIZEMAXSIZE;/标记数组:此位置是否已经有非零元素 for(i=0;iMAXSIZE;i+) /标记数组的初始化 for(j=0;jj+) flagij=0; for(k=1;k=t;k+) do输入第个非零元(共tije; if(im|jn) cout if(flagij!=0) 重复! flagij=2; if(e=0) while(in|flagij=2|e=0); for(a=1;aM.dataa.i|(i=M.dataa.i&M.dataa.j);a+);/找到此三元组插入的位置 for(int b=k-1;b=a;b-) M

4、.datab+1=M.datab;/行序比它大的三元组依次向后移动 M.dataa.i=i; M.dataa.j=j; M.dataa.e=e; for(i=1;=M.mu;i+) numi=0; for(t=1;=M.tu;t+) numM.datat.i+;/求M中每一行含非零元素个数 M.rpos1=1; for(i=2; M.rposi=M.rposi-1+numi-1;void printmatrix(Matrix M)/输出矩阵 for(int i=1, k=1; for(int j=1;=M.nu; if(M.datak.i=i&M.datak.j=j)M.datak.et k+

5、; else0t cout矩阵共有M.mu行M.nu列M.tu个非零元元素void jiafa(Matrix M,Matrix N,Matrix& Q) if(M.mu!=N.mu|M.nu!=N.nu) Q.mu=M.mu; Q.nu=M.nu; Q.tu=0; int m,n,t; m=n=t=1; for(int row=1;rowrow+) if(M.datam.i=row&N.datan.i=row)/矩阵行数相等 if(M.datam.j=N.datan.j)/矩阵列数相等 int sum=M.datam.e+N.datan.e; if(sum! Q.datat.i=row; Q.

6、datat.j=M.datam.j; Q.datat.e=sum; Q.tu+; +m; +n; +t; else while(M.datam.i=row)/M矩阵剩下的元素 Q.datat.i=row; Q.datat.j=M.datam.j; Q.datat.e=M.datam.e; Q.tu+; +m; +t; while(N.datan.i=row)/N矩阵剩下的元素 Q.datat.j=N.datan.j; Q.datat.e=N.datan.e; +n;矩阵相加结果为: printmatrix(Q);void jianfa(Matrix M,Matrix N,Matrix&=M.n

7、u) int cha=M.datam.e-N.datan.e; if(cha! Q.datat.e=cha; m+; n+; t+; m+; t+; int e1=N.datan.e; e1=0-e1; Q.datat.e=e1; n+;矩阵相减结果为void chengfa(Matrix M,Matrix N,Matrix& int ctempMAXSIZE+1; int tp,t,col,p,q; int arow=1,brow=1; if(M.nu!=N.mu)/稀疏矩阵M的列数和N的行数不相等,不能相乘 Q.nu=N.nu; if(M.tu*N.tu! for(arow=1;arowa

8、row+) for(int i=1;=Q.nu; ctempi=0;/当前行各元素累加器清零 Q.rposarow=Q.tu+1; if(arowM.mu) tp=M.rposarow+1; tp=M.tu+1; for( p=M.rposarow;ptp;p+)/对当前行中的每一个非零元 brow=M.datap.j; /找到对应元在N中的行号 if(browN.mu) t=N.rposbrow+1; t=N.tu+1; for( q=N.rposbrow;qq+) col=N.dataq.j;/乘积元素在Q中列号 ctempcol+=M.datap.e * N.dataq.e; for(c

9、ol=1;colMAXSIZE) cout Q.dataQ.tu.i=arow; Q.dataQ.tu.j=col; Q.dataQ.tu.e=ctempcol;矩阵相乘结果为:int main() int chioce; Matrix M,N,Q; int i;1、输入矩阵1:2、输入矩阵2:3、矩阵相加4、矩阵相减5、矩阵相乘6、结束输入选择功能:chioce; switch(chioce) case 1:creatematrix(M);printmatrix(M);i=1;break; case 2:creatematrix(N);printmatrix(N); case 3:jiafa(M,N,Q); case 4:jianfa(M,N,Q); case 5:chengfa(M,N,Q); case 6:i=0; while(i!=0); return 0;四、 调试分析1、 开始对三元组了解不彻底,致使代码总是出现基本错误2、 对于矩阵相乘的算法参考了书很久,并请教了同学3、 矩阵乘法运算在调试中出现多次错误,反复试验才调试好5、用户手册1.本程序的运行环境为DOS操作系统,执行文件为TestMaze.exe2.进入演示程序后即显示文本方式的用户界面:

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

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