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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(2019秋《数据结构课程设计》——课程设计报告模板.doc)为本站会员(精品文库)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

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

1、1 中国石油大学(北京) 远程教育学院 数据结构课程设计报 告 课程设计题目课程设计题目 学生姓名学生姓名 学号学号 专业班级专业班级 2019 年 月 2 题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩 阵的转置运算。采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的 相加、相减、相乘以及矩阵转速运算。 1 需求分析需求分析 1. 稀疏矩阵是指稀疏因子小于等于 0.5 的矩阵。利用“稀疏”特点进行存储和计算可 以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转

2、置,以及两个 矩阵的加、减、乘的运算。稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列 出。 3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。首先 输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。 4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入 排序,从而进行运算时,不会产生错误。 5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。 6. 运行环境:VC6.0+。 2 概要设计概要设计 稀疏矩阵元素用三元组表示: typedef struct int i;/非零元的行下标 int

3、 j;/非零元的列下标 int e;/矩阵非零元 Triple; 稀疏矩阵采用三元组顺序表存储: #define MSXSIZE 12500/假设非零元个数的最大值为 200 #define MAXRC 10 /假定矩阵的最大行数为 10 typedef struct int mu ; /矩阵的行数 int nu ; /矩阵的列数 int tu ; /矩阵的非零元素个数 Triple dataMAXSIZE+1; /非零元三元组表,data0没有用 int rposMAXRC+1; /各行第一个非零元素的位置表 Tabletype; 系统主要函数及功能如下: Menu( ):主控菜单,接收用户

4、的选项; Input_Matrix( ):输入矩阵; Print_matrix( ):输出矩阵; Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号; TransposeMatrix( ):矩阵转置; 3 Add_Matrix( ):矩阵加法运算; Sub_Matrix( ):矩阵减法运算; Multi_Matrix( ):矩阵乘法运算。 模块的调用关系如图 1 所示。 Multi_Matrix main Add_MatrixSub_MatrixTransposeMatrix Cal_Matrix Input_MatrixPrint_Matrix 图 1 程序调用模块示意图

5、 3 详细设计详细设计 1. 主函数设计主函数设计 /* /* 矩阵运算主函数 * /* 主函数中,实现用户菜单菜单的打印,并根据用户的选项执行相应的功能,主函数力 求简洁、清晰。 void main( ) num=Menu();/打印主菜单 while(num) switch(num) case 1: Multi_Matrix();/矩阵相乘 break; case 2: TransposeMatrix(); /矩阵转置 break; case 3: Add_Matrix();/矩阵加法 4 break; case 4: Sub_Matrix();/矩阵减法 case 0: break; /

6、switch num=Menu(); /while 2. 主菜单设计主菜单设计 主控菜单是用来输出提示信息和处理输入,此函数返回用户的选项,提供给 main 函数 中的 switch 语句。对于不符合要求的选项,提示输入错误并要求用户重新输入。将此函数 与 main 函数合在一起,编译运行程序,即可检查并验证菜单选项是否正确。 主菜单如下: /* /* 打印主控菜单函数 * /* int menu( ) printf(“n 主菜单“); printf(“n*“); printf(“n 1. 矩阵乘法“); printf(“n 2. 矩阵转置“); printf(“n 3. 矩阵加法“); pr

7、intf(“n 4. 矩阵减法“); printf(“n 0. 退出“); printf(“n*“); scanf(“%d“, while(num4)/输入非法,重新输入 scanf(“%d“, return num; 3. 矩阵乘法运算函数矩阵乘法运算函数 /* /* 矩阵乘法运算算法 * /* Status Multi_Matrix() Input_Matrix(/输入矩阵 a Input_Matrix( /输入矩阵 b Cal_matrix(/计算矩阵 a 每行第一个非零元的位序号 Cal_matrix(/计算矩阵 b 每行第一个非零元的位序号 if (a.nu!=b.mu)/不符合矩阵

8、乘法条件,不能相乘 5 return ERROR; c.mu=a.mu; /对矩阵 c 初始化 c.nu=b.nu; c.tu=0; if(a.tu*b.tu!=0) for(arow=1;arownu, t-tu); /获得矩阵行列数、非零元个数 for(i=1;idata i.i, t-data i.j,t-data i.e); return OK; 7. 矩阵输出算法矩阵输出算法 将三元组以矩阵方式输出在屏幕上,算法如下: /* /* 矩阵输出函数 * /* Status Print_matrix(Tabletype m) k=1; for(i=1;idata t.i+; m-rpos 1=1; for(row=2;rowmu ;row+) 9 m-rpos row=m-rpos row-1+numrow-1; 4 程序测试程序测试 在这部分给出程序运行结果的屏幕截图,以及测试分析。 5 感想与体会感想与体会 这部分给出算法设计过程中的问题、程序调试过程的问题与收获。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报