资源描述:
《大数据结构----稀疏矩阵运算器课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、科技大学数据结构课程设计说明书题目:稀疏矩阵运算器设计学生:学号:专业:计算机科学与技术班级:计09-1班指导教师:月峰2011年6月24日稀疏矩阵运算器设计摘要摘要:设计一稀疏矩阵运算器。实现转置,相加,相乘的功能。用“带行逻辑信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相转置、相加和相乘的运算,采用分级的设计方法,分别设计出转置、加、乘运算器的子程序,相加运算时只要依次扫描两矩阵的行号和列号,若相等则相加后存入结果矩阵,不等时则存入较小的。相减运算与相加运算相同,同样比较两矩阵的行号和列号,只是不等时,若第一个小,则存入第一个的元素,若第二个小,则存入其相反数。相乘运算要先判断两矩
2、阵能否相乘。通过给顶的行号和列号找出原矩阵对应的元素值。当在三元组表示中找到时返回其元素值,找不到时,说明该位置为0,因此返回0。然后利用该函数计算出C的行号i和列号j处的元素值,若该值不为0,则存入矩阵,否则不存入。通过实验表明本程序能够进行稀疏矩阵的相加,相减,相乘运算。具备矩阵的加、减、乘功能。关键词:转置运算器;相加运算器;相乘运算器目录稀疏矩阵运算器设计I摘要II第一章需求分析1第二章概要设计2第三章设计步骤63.1函数说明63.2设计步骤7第四章设计理论分析方法204.1算法一:矩阵转置204.2算法二:矩阵加法204.3算法三:矩阵乘法21第五章程序调试23第六章心得体会2
3、5参考文献26第一章需求分析1.稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。2.以“带行逻辑信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,求逆,实现两个矩阵相加、相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。3.演示程序以用户和计算机的对话方式执行,数组的建立方式为边输入边建立。4.由题目要求可知:首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数对于所要求作的运算是否相匹配。5.程序可以对三元组的输入顺序不加以限制;根据对矩阵的行列,
4、三元组作直接插入排序,从而进行运算时,不会产生错误。6.在用三元组表示稀疏矩阵时,相加、乘积和相减所得结果矩阵应该另生成;矩阵求逆时,为了算法方便,使用二维数组存放。7.程序在VC6.0环境下设计。程序执行的命令为:1.稀疏矩阵转置;2.稀疏矩阵加法;;3.稀疏矩阵乘法;4.退出的工作。第二章概要设计1.抽象数据类型稀疏矩阵的定义如下:ADTSparseMatrix{数据对象:D={aij
5、i=1,2,…,m;j=1,2,…,n;aij∈ElemSet,m和n分别为矩阵的行数和列数}数据关系:R={Row,Col}Row={﹤ai,j,ai,j+1﹥
6、1≤i≤m,1≤j≤n-1}Col=
7、{﹤ai,j,ai+1,j﹥
8、1≤i≤m-1,1≤j≤n}基本操作:create(TSMatrix&TM)操作结果:创建稀疏矩阵矩阵TMLocateELem(TSMatrixM,inti,intj,inte)初始条件:稀疏矩阵M存在操作结果:稀疏矩阵中是否存在非零元素A[i][j],若存在返回edisp(TSMatrixTM)初始条件:稀疏矩阵TM存在操作结果:通常形式输出稀疏矩阵InsertSortMatrix(TSMatrix&TM)初始条件:稀疏矩阵TM存在操作结果:根据对矩阵的行列,三元组TM作直接插入排序TransposeSMatrix(TSMatrixM,TSMatrix&T
9、)初始条件:稀疏矩阵M和T存在操作结果:求稀疏矩阵M转置的稀疏矩阵TAddTSM(TSMatrixA,TSMatrixB,TSMatrix&C)初始条件:稀疏矩阵A,B和C存在操作结果:稀疏矩阵的加法运算:C=A+BSubTSM(TSMatrixA,TSMatrixB,TSMatrix&C)初始条件:稀疏矩阵A,B和C存在操作结果:稀疏矩阵的减法运算:C=A-BMultSMatrix(TSMatrixA,TSMatrixB,TSMatrix&C)初始条件:稀疏矩阵A,B和C存在操作结果:稀疏矩阵的乘法运算:C=A×BNiMatrix(TSMatrix&TM)初始条件:稀疏矩阵TM存在操作
10、结果:稀疏矩阵求逆}ADTSparseMatrix;2.主程序:voidmain(){初始化;do{接受命令;选择处理命令;}while(命令!=“退出”)}3.本程序有四个模块,调用关系如下:主程序模块矩阵输入模块矩阵运算模块矩阵输出模块图2.14本程序的流程图开始选择要执行的操作作选择4,退出程序选择2,进行矩阵加法运算选择1,进行矩阵转置运算选择3,进行矩阵乘法运算输入n个矩阵A的行数、列数、非零元个数输出结果结束图2.2第三