电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

2019秋《数据结构课程设计》——课程设计报告模板

  • 资源ID:101957720       资源大小:63KB        全文页数:9页
  • 资源格式: DOC        下载积分:5金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要5金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

2019秋《数据结构课程设计》——课程设计报告模板

中国石油大学(北京)远程教育学院数据结构课程设计报告课程设计题目学生姓名学号专业班级2019 年 月题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩阵的转置运算。采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的相加、相减、相乘以及矩阵转速运算。1需求分析1. 稀疏矩阵是指稀疏因子小于等于0.5的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,以及两个矩阵的加、减、乘的运算。稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列出。3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。首先输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入排序,从而进行运算时,不会产生错误。5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。6. 运行环境:VC6.0+。2概要设计稀疏矩阵元素用三元组表示:typedef structint i;/非零元的行下标int j;/非零元的列下标int e;/矩阵非零元Triple;稀疏矩阵采用三元组顺序表存储:#define MSXSIZE 12500/假设非零元个数的最大值为200#define MAXRC 10 /假定矩阵的最大行数为10typedef struct int mu ; /矩阵的行数 int nu ; /矩阵的列数 int tu ; /矩阵的非零元素个数 Triple dataMAXSIZE+1; /非零元三元组表,data0没有用int rposMAXRC+1; /各行第一个非零元素的位置表Tabletype;系统主要函数及功能如下:Menu( ):主控菜单,接收用户的选项;Input_Matrix( ):输入矩阵;Print_matrix( ):输出矩阵;Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号;TransposeMatrix( ):矩阵转置;Add_Matrix( ):矩阵加法运算;Sub_Matrix( ):矩阵减法运算;Multi_Matrix( ):矩阵乘法运算。模块的调用关系如图1所示。Multi_MatrixmainAdd_MatrixSub_MatrixTransposeMatrixCal_MatrixInput_MatrixPrint_Matrix图1 程序调用模块示意图3详细设计1. 主函数设计/*/* 矩阵运算主函数 */*主函数中,实现用户菜单菜单的打印,并根据用户的选项执行相应的功能,主函数力求简洁、清晰。void main( ) num=Menu();/打印主菜单while(num)switch(num)case 1:Multi_Matrix();/矩阵相乘break;case 2:TransposeMatrix();/矩阵转置break;case 3:Add_Matrix();/矩阵加法break;case 4:Sub_Matrix();/矩阵减法case 0:break;/switchnum=Menu();/while2. 主菜单设计主控菜单是用来输出提示信息和处理输入,此函数返回用户的选项,提供给main函数中的switch语句。对于不符合要求的选项,提示输入错误并要求用户重新输入。将此函数与main函数合在一起,编译运行程序,即可检查并验证菜单选项是否正确。主菜单如下:/*/* 打印主控菜单函数 */*int menu( )printf("n 主菜单");printf("n*");printf("n1. 矩阵乘法");printf("n2. 矩阵转置");printf("n3. 矩阵加法");printf("n4. 矩阵减法");printf("n0. 退出");printf("n*");scanf("%d",&num);while(num<0|num>4)/输入非法,重新输入scanf("%d",&num);return num;3. 矩阵乘法运算函数/*/* 矩阵乘法运算算法 */*Status Multi_Matrix() Input_Matrix(&a);/输入矩阵a Input_Matrix(&b); /输入矩阵b Cal_matrix(&a);/计算矩阵a每行第一个非零元的位序号 Cal_matrix(&b);/计算矩阵b每行第一个非零元的位序号 if (a.nu!=b.mu)/不符合矩阵乘法条件,不能相乘 return ERROR; c.mu=a.mu; /对矩阵c初始化 c.nu=b.nu; c.tu=0; if(a.tu*b.tu!=0) for(arow=1;arow<=a.mu;arow+) /*处理矩阵a的每一行*/ for (p=1;p< MAXRC+1;p+) /*当前行各元素累加器清零*/ ctempp=0; c.rposarow=c.tu+1; if(arow<a.mu ) tp=a.rpos arow+1; else tp=a.tu +1; for(p=a.rposarow; p<tp;p+) /求得c中第crow行的非零元 brow=a.datap.j; if(brow<b.nu) t=b.rposbrow+1; else t=b.tu+1; for (q=b.rposbrow;q<t;q+) ccol=b.dataq.j; /*乘积元素在矩阵c中的列号*/ ctempccol+=a.datap.e*b.dataq.e; /*for q*/ /for p for(ccol=1;ccol<=c.nu;ccol+) if(ctempccol)/*压缩存储该行非零元*/ if(c.tu)>MAXSIZE) exit(1); c.tu+; c.datac.tu.i=arow; c.datac.tu.j=ccol; c.datac.tu.e=ctempccol; /*end if*/ /*for arrow*/ /*if*/ Print_matrix(a); Print_matrix(b); Print_matrix(c);4. 矩阵转置算法/*/* 矩阵转置算法 */*void TransposeMatrix()Input_Matrix(&a);/输入矩阵ab.mu=a.nu;b.nu=a.mu;b.tu=a.tu;if(b.tu) q=1; /*b.data的下标*/ for(col=1;col<=a.nu;col+) /对a的每一列 for(p=1;p<=a.tu;p+) /*p为a的下标*/ if( a.datap.j=col) /寻找矩阵a中列为col的非零元 b.dataq.i=a.datap.j; b.dataq.j=a.datap.i; b.dataq.e=a.datap.e; q+; /if(p)/if(b.tu)Print_matrix(b); /输出a的转置矩阵5. 矩阵加法算法/*/* 矩阵加法运算函数 */* c=a+b */*Status Add_Matrix()Input_Matrix(&a); /输入矩阵aInput_Matrix(&b); /输入矩阵bif(a.mu !=b.mu |a.nu !=b.nu ) /不满足矩阵加法条件return ERROR;c.mu =a.mu ;c.nu =a.nu ;ta=1;tb=1;tc=1;if(a.tu *b.tu !=0)while(ta<=a.tu) && (tb<=b.tu)if(a.datata.i=b.datatb.i)if(a.datata.j=b.datatb.j)temp=a.dat

注意事项

本文(2019秋《数据结构课程设计》——课程设计报告模板)为本站会员(fe****s)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.