欢迎来到天天文库
浏览记录
ID:11055143
大小:145.50 KB
页数:12页
时间:2018-07-09
《数据结构课程设计--基本稀疏矩阵运算的运算器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计五班级:06计本(1)姓名:魏建平学号:20060724035题目:严蔚敏习题实习4第1个:实现一个能进行基本稀疏矩阵运算的运算器一、需求分析1、本程序实现一个基本稀疏矩阵的简单运算,包括加、减、乘。2、执行操作前应先创造要进行运算的两个矩阵,然后再选择进行相应的操作。3、以三元组顺序表表示稀疏矩阵,实现二个矩阵相加,相减,相乘的运算;稀疏矩阵的输入形式为三元组表示,运算结果则为通常的阵列形式列出!4、首先输入矩阵的行数和列数,并判别给出的两个矩阵和行、列数对于所要求作的运算是否相匹配。可设矩阵的
2、行数和列数均不超过20;5、程序先给出了菜单项,用户只需按照菜单提示进行相应的操作就行了。6、测试数据:二、概要设计1、抽象数据类型三元组的定义如下:ADTTriple{数据对象:D={ai
3、ai(-ElemSet,i=1,2,...,n,n>=0};数据关系:R1={
4、ai-1,ai(-D,i=2,...,n}基本操作:略}2、基于三元组顺序表表示的矩阵操作:(1)创建三元组顺序表表示的矩阵:voidcreateMatrix(TSMatrix&A)(2)初始化矩阵:voidinitMatrix
5、(TSMatrix&A)(3)相加:voidadd(TSMatrixA,TSMatrixB,TSMatrix&C)(4)相减:voidsub(TSMatrixA,TSMatrix&B,TSMatrix&C)(5)找m行n列元素在A中顺序表中的位置:intsearch(TSMatrixA,intm,intn)(6)相乘;voidmult(TSMatrixA,TSMatrixB,TSMatrix&C)(7)输入以阵列形式表示的矩阵:voidprint(TSMatrixA)3、主程序Voidmain(){While(t
6、rue){调用相应函数执行相应操作;输出操作结果;}}4、本程序只有两个模块,调用关系简单:一、详细设计1、三元组结构描述:#defineMAXSIZE20usingnamespacestd;typedefstruct{introw;intcol;inte;}Triple;typedefstruct{Tripledate[MAXSIZE];intm,n,len;}TSMatrix;voidinitMatrix(TSMatrix&A){A.len=0;A.m=0;A.n=0;for(inti=0;i7、;i++){A.date[i].col=0;A.date[i].e=0;A.date[i].row=0;}}1、各种操作函数源代码:voidcreateMatrix(TSMatrix&A){initMatrix(A);cout<<"创建矩阵:";cout<<"请输入矩阵的行列值及非0元素个数";cin>>A.m>>A.n>>A.len;for(inti=0;i>A.date[i].row;cin>>A.date8、[i].col;cin>>A.date[i].e;}}voidadd(TSMatrixA,TSMatrixB,TSMatrix&C)//相加{if(A.m==B.m&&A.n==B.n){inti=0,j=0;intk=0;C.m=A.m;C.n=A.n;while(i9、10、j11、en++;j++;}elseif(iB.date[j].row){C.date[k].col=B.date[j].col;C.date[k].row=B.date[j].row;C.date[k++].e=B.date[j].e;C.len++;j12、++;}elseif(A.date[i].row
7、;i++){A.date[i].col=0;A.date[i].e=0;A.date[i].row=0;}}1、各种操作函数源代码:voidcreateMatrix(TSMatrix&A){initMatrix(A);cout<<"创建矩阵:";cout<<"请输入矩阵的行列值及非0元素个数";cin>>A.m>>A.n>>A.len;for(inti=0;i>A.date[i].row;cin>>A.date
8、[i].col;cin>>A.date[i].e;}}voidadd(TSMatrixA,TSMatrixB,TSMatrix&C)//相加{if(A.m==B.m&&A.n==B.n){inti=0,j=0;intk=0;C.m=A.m;C.n=A.n;while(i9、10、j11、en++;j++;}elseif(iB.date[j].row){C.date[k].col=B.date[j].col;C.date[k].row=B.date[j].row;C.date[k++].e=B.date[j].e;C.len++;j12、++;}elseif(A.date[i].row
9、
10、j11、en++;j++;}elseif(iB.date[j].row){C.date[k].col=B.date[j].col;C.date[k].row=B.date[j].row;C.date[k++].e=B.date[j].e;C.len++;j12、++;}elseif(A.date[i].row
11、en++;j++;}elseif(iB.date[j].row){C.date[k].col=B.date[j].col;C.date[k].row=B.date[j].row;C.date[k++].e=B.date[j].e;C.len++;j
12、++;}elseif(A.date[i].row
此文档下载收益归作者所有