欢迎来到天天文库
浏览记录
ID:56247020
大小:309.00 KB
页数:13页
时间:2020-03-24
《数据结构课程设计(矩阵的运算).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.数据结构课程设计报告题目:专业:班级:学号:姓名:指导老师:时间:.页脚.一、课程设计题目及所涉及知识点设计题目是“矩阵的运算”,所涉及的知识点主要是:1、数据结构中的对于结构体的定义,用typedefstruct来实现,根据所设计的问题在结构体里面定义数据类型及其变量,用define定义数组的大小,然后利用typedef来实现对于变量的未知类型确定正确的类型。2、利用数组的形式来储存数据,在实现不同操作过程中,有的用一维结构体数组(三元组顺序表)来存储,有的用二维数组来储存。3、转置的过程中利用的是快速转置的方法,附设了nu
2、m和cpot两个辅助变量。4、矩阵的加法、减法、乘法、逆运算的基本算法方式。5、通过调用每个函数,来实现每个算法的功能。二、课程设计思路及算法描述设计思路:1、首先是对于转置的考虑,要运用快速转置的方法实现,必须用三元组顺序表来储存数据,所以在第一个结构体中存在int类型的行数(mu)列数(nu)以及非零元素的个数(tu);然后第二个结构体中分别有非零元素的行下标(i)、列下标(j)和元素数值(e),最后在第一个结构体中实现对第二个结构体成为数组结构体类型。2、对于其余加法、减法、乘法和逆运算则是运用另一个结构体来实现,里面只有
3、矩阵的行数、列数和一个二维数组(用float来定义类型)。3、在main函数里面,来实现对于数据的输入操作,利用if语句进行选择来执行操作,利用do……while语句来实现功能的循环操作。4、分五个函数调用分别来实现转置、加法、乘法、和逆运算,每个里面都有最终输出结果的方式。算法1:矩阵的转置输入:mu中存放矩阵的行数,tu存放矩阵的列数,i接收行下标的数值,j接收列下标的数值,e来存储数据。输出:转置后的新矩阵。输入两行两列数据,在第二行第一列中有个数据为12,其余都为0,则输出的结果为第一行第二列数据为12,其余为0。算法2
4、:矩阵的加法运算.页脚.输入:i中存放矩阵的行数,j中存放矩阵的列数,二维数组b中存放每个数据。输出:矩阵加完后的另一个新矩阵。输入两个两行三列的矩阵,在第一个矩阵里面第一行第一列有个数据20,其余为0,在第二个矩阵里面第一行第二列中有个数据30,其余为0,则输出的结果为一个两行三列的矩阵,其中第一行第一列数据为20,第一行第二列数据为30,其余为0。算法3:矩阵的减法运算输入:i中存放矩阵的行数,j中存放矩阵的列数,二维数组b中存放每个数据。输出:矩阵相减后的另一个新矩阵。输入两个两行三列的矩阵,在第一个矩阵里面第一行第一列有
5、个数据20,其余为0,在第二个矩阵里面第一行第一列中有个数据30,其余为0,则输出的结果为一个两行三列的矩阵,其中第一行第一列数据为-10,其余为0。算法4:矩阵的乘法运算输入:i中存放矩阵的行数,j中存放矩阵的列数,二维数组b中存放每个数据。输出:矩阵加完后的另一个新矩阵。输入两行两列的矩阵,第一个矩阵里面第一行第一列有个数据2第二列有个数据3,其余为0,在第二个矩阵里面第一行第一列有个数据2第二列中有个数据3,其余为0,则输出的结果为一个两行两列的矩阵,其中第一行第一列数据为4,第二列为6,第一行第二列数据为30,其余为0。
6、算法五:矩阵的逆运算输入:i中存放矩阵的行数,j中存放矩阵的列数,二维数组b中存放每个数据。输出:矩阵进行逆运算完后的另一个新矩阵。输入三行三列的矩阵,第一个矩阵里面第一行第一列有个数据3个数据分别为1,2,3;第二行的数据分别为2,2,1;第三行的暑假分别为3,4,3;则输出的结果为三行三列矩阵,其中第一行的数据为1,3,-2;第二行的数据分别为-1.5,-3,2.5;第三行的数据分别为1,1,-1。三、课程设计中遇到的难点及解决办法1、在转置的过程中,要求把转置后的矩阵输出出来,因为用的是三元组顺序表的存储形式,所以不知道怎
7、么去实现,然后通过进一步思考,运用先把一个矩阵存入零元素,然后在对其进行更改,最后完成了此项的工作。.页脚.2、就是对于矩阵的乘法运算和逆运算,掌握的不够熟练,先是通过书籍对于矩阵的乘法和逆运算得到更深的了解,然后通过一步步写程序最后实现了矩阵的乘法运算和逆运算。四、总结通过此次课程设计,让我对于编程有了更深的认识,老师的精心指导让我学会到了很多,不仅仅是代码,最主要的让我的思维开阔了很多,在这个过程中,通过不断的尝试,不断的修改,最终克服了困难,完成了自己的任务,心里有种无比的喜悦,但同时又感觉到了自己的知识面的狭隘,还有好多
8、知识的海洋还没有畅游,等待自己将是一回更大的考验。对于现在的自己,对学习程序还是有很大的兴趣,它让我体验到了很多的快乐,我要进步跟进现在的课程,努力去发展自己,按照老师说的最主要的是具有了编程的思想,则具有了编程的能力,我想我可以成功完成自己的目标。五、附录—主
此文档下载收益归作者所有