数据构造课程设计 特殊矩阵运算.docx





《数据构造课程设计 特殊矩阵运算.docx》由会员分享,可在线阅读,更多相关《数据构造课程设计 特殊矩阵运算.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据构造课程设计特殊矩阵运算特殊矩阵运算1.1程序功能简介对特殊矩阵能够在界面上以人们熟悉的方式显示,能够对特殊矩阵进行加法运算和减法运算,矩阵转置。根据要求使用了多种数据构造来求解问题,详细为二维数组和类似图的数据构造。由于题目要求使用多种数据构造,因而分开写了两段程序,均实现了上述要求的功能,下面将分开讲明。先讲明的是用二维数组实现的程序,后讲明的是用图构造实现的程序。1.2关于输入、输出形式及数据范围1.2.1使用二维数组实现的程序输入、输出范围为:-73786976294838206000到73786976294838206000,足以解决绝大多数的矩阵运算问题。1.2.2输入的格式进
2、入程序后首先展现的是功能选择界面,如下列图:此时可通过输入对应功能的数字来选择功能。在此程序中不同功能输入格式不同:选择功能1.矩阵转置时需要输入要进行转置操作的矩阵,首先输入矩阵的行数和列数,以逗号隔开,之后依次按矩阵形式输入矩阵即可,各数值之间以空格隔开。选择功能2.矩阵数乘时需要输入要进行数乘操作的矩阵,此输入格式同上,之后输入一个实数,即要进行数乘的数即可。功能3.矩阵加法与4.矩阵减法输入格式和5.矩阵乘法一样,按上述操作输入两个矩阵即可,需要注意的是矩阵减法默认顺序为先输入的矩阵减去后输入的矩阵。当根据格式输入时能够实现以上功能,但输入错误数据时,例如进行行列数不同的矩阵相加减时则
3、会返回无法操作,请重新输入的提示。详细情况见下文测试部分。1.3.1使用图构造实现的稀疏矩阵运算器程序输入、输出范围同上。1.3.2输入的格式进入程序后首先展现的是功能选择界面,如下列图:选择功能部分输入同上。在进行矩阵输入时采取三元组的形式,这是由于稀疏矩阵的多零元性质。首先输入矩阵的行数、列数、非零元个数,以空格隔开,输入完毕后确认,开场输入各个非零元。输入非零元时按“所在行下标所在列下标值的形式输入,需要注意的是输入时只能从所在行小的开场按顺序输入,不能先输入行数大的数据再输入行数小的数据。2概要设计2.1用二维数组实现的程序的概要设计由于使用二维数组构造实现上述功能较为简单,故全部运算
4、仅由主函数执行,不单写出各个简单的函数。通过switch实现对各个功能的选择。详细如下:Switch(1):进入矩阵转置功能;Switch(2):进入矩阵数乘功能;Switch(3):进入矩阵加法功能;Switch(4):进入矩阵减法功能;Switch(5):进入矩阵乘法功能;Switch(6):结束本程序;各功能中的矩阵都是以二维数组的形式进行存储与运算的,使用完好的存储方式使矩阵运算在设计上更为便捷,而且面对更多不同运算时也不存在因构造限制而导致的功能缺失。相应的,由于存储了完好矩阵,且运算时都是完好矩阵的每个元素都介入,所以运行相对较慢。2.2用图构造实现的程序的概要设计本模块要求设计函
5、数建立稀疏矩阵并初始化,使用三元组构造。在创立稀疏矩阵时,需要设计三元组创立稀疏矩阵,在输入出现错误时,能够对错误进行判别处理,初始化稀疏矩阵都为空值。在对稀疏矩阵进行初始化时,只输入非零元素的值和它所在的所在行及所在列。在对稀疏矩阵输出时,以矩阵的完好形式输出。本程序存储矩阵的形式是非零元与矩阵形状结合,更适应稀疏矩阵的性质,在存储空间和运算速度上都有较大优势,但在设计各个功能时较为复杂,控制矩阵在运算时的行列变换需要进行复杂的判定和双层for循环来赋零值或进行非零值的运算。整体构造由主函数调用各个功能函数,条理明晰,详细如下:流程从运算器的图形界面输出开场,之后进行功能选择,此部分流程同上
6、。中选择功能1.矩阵加法时先调用矩阵创立函数Creat输入矩阵A,调用输出矩阵函数Print_SMatrix(),再重复以上流程输入矩阵B,此时进行判定两矩阵能否相加,再调用矩阵加法函数AddSMatrix(A,B,C,n)进行矩阵加法运算输出结果矩阵C,结束后调用三次Destory_SMatrix()函数销毁矩阵A、B、C,最后返回流程开场处进行下一项任务。功能2矩阵减法流程同功能1矩阵加法。功能3矩阵转置只需输入矩阵A即可进行下一步调用矩阵转置函数TransposeSMatrix(),再输出转置后的矩阵B,销毁矩阵A、B后返回流程开场处进行下一项任务。功能4用来结束程序,在选择功能4后调用
7、break函数跳出switch结束程序。3具体设计3.1二维数组构造的程序的具体设计算法1:矩阵的转置运算:首先是把将要运算的矩阵存放在数组中,矩阵的转置运算,就是把你将要进行运算的A矩阵的行ar和列ac,把A矩阵的行ar作为B矩阵的bc,A矩阵的列ac作为B矩阵的br,这样得到的新矩阵B的行br和列bc就是矩阵A的转置。算法如下:for(i=0;i下一页当前位置:文档视界数据构造课程设计特殊矩阵运算数据构造课程设计特殊矩阵运算算法4:矩阵的减法运算;首先是把将要运算的矩阵存放在数组中,矩阵的减法运算,就是要实现A矩阵与B矩阵进行减法运算。事实上就是A矩阵的每一行ar与B矩阵的每一行br进行减
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据构造课程设计 特殊矩阵运算 数据 构造 课程设计 特殊 矩阵 运算

限制150内