资源描述:
《数据结构课程设计-稀疏矩阵运算器.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、成绩评定教师签名嘉应学院计算机学院实验报告课程名称:数据结构课程设计开课学期:2017-2018学年第2学期班级:指导老师:实验题目:稀疏矩阵运算器学号:姓名:上机时间:【实验目的】深入研究数组的存储表示和实现技术,熟悉广义表存储结构的特性。【需要分析】稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。要求以带“行逻辑链接信息”的三元组顺序表存储稀疏矩阵,实现两矩阵的相加、相减、相乘等运算。输入以三元组表示,输出以通常的阵列形式列出。【软件平台】Windows2000
2、,VisualC++6.0或WINTC【概要设计】ADTArray{数据对象:D={aij
3、0≤i≤b1-1,0≤j≤b2-1}数据关系:R={ROW,COL}ROW={
4、0≤i≤b1-2,0≤j≤b2-1}COL={
5、0≤i≤b1-1,0≤j≤b2-2}基本操作:CreateSMatrix(&M);//操作结果:创建稀疏矩阵M.PrintSMatrix(M);//初始化条件:稀疏矩阵M存在.//操作结果:输出稀疏矩阵M.AddSMatrix(M,N,&Q);//初始化条件:稀疏矩阵M与N的行数和列数对应相
6、等.//操作结果:求稀疏矩阵的和Q=M+N.SubSMatrix(M,N,&Q);//初始化条件:稀疏矩阵M与N的行数和列数对应相等.//操作结果:求稀疏矩阵的差Q=M-N.MultSMatrix(M,N,&Q);//初始化条件:稀疏矩阵M的列数等于N的行数.//操作结果:求稀疏矩阵的乘积Q=M*N.}ADTArray【主程序模块】:voidmain(){初始化;do{接受命令;处理命令;}while(命令!=“退出”);}【功能模块调用关系图】主程序模块创建稀疏矩阵模块运算稀疏矩阵模块打印稀疏矩阵模块【详细设计】稀疏矩阵运算器矩阵相乘矩阵相加矩阵相减退出本
7、系统输入矩阵1输入矩阵1输入矩阵1输入矩阵2输入矩阵2输入矩阵2计算结果计算结果计算结果typedefstruct{introw;//行数intcol;//列数intv;//非零元素值}triplenode;typedefstruct{triplenodedata[maxsize+1];//非零元三元组introwtab[maxrow+1];//各行第一个非零元的位置表intmu,nu,tu;//矩阵的行数、列数和非零元个数}rtripletable;voidcreat(rtripletable&A)//创建稀疏矩阵voidprint(rtripletabl
8、eA)//输出稀疏矩阵intaddsmatrix(rtripletableM,rtripletableN)//矩阵相加intsubsmatrix(rtripletableM,rtripletableN)//稀疏矩阵相减voidmultsmatrix(rtripletableM,rtripletableN,rtripletable&Q)//稀疏矩阵相乘【调试分析】1、由于开始对顺序存储的知识还不熟识,在三元组的存储和运用会导致算法低效。2、做到存储的时候,开始时不知道怎样存储三元组,和不知如何去运用它的行数,列数,非零元素。3、在使用选择和循环时,有时因为自己
9、的粗心,把循环的条件弄错了。4、做本程序用到了数组的知识,有时一有不懂的东西又只能打开书来看。5、开始时没有把矩阵的加法和减法的情况考虑全面,导致输出的时候会出现简单的错误。【用户手册】1、本程序的运行环境为Windowsme下的MicrosofeVC++6.0,执行文件为:xishujuzhen.cpp。2、进入演示程序后即显示文本方式的用户界面:-------------------------------------------------------------------------------------------------------
10、**
11、********稀疏矩阵运算器**********
12、=============================================================
13、============================================================
14、
15、A、输入矩阵1
16、
17、B、输入矩阵2
18、
19、C、矩阵相加
20、
21、D、矩阵相减
22、
23、E、矩阵相乘
24、
25、F、退出本系统
26、----------------------------------------------------------------------------------
27、---------------------请选择所需