数据结构课程设计报告---矩阵的运算.pdf





《数据结构课程设计报告---矩阵的运算.pdf》由会员分享,可在线阅读,更多相关《数据结构课程设计报告---矩阵的运算.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-数数据据结结构构-课程设计报告课程设计报告题目:专业:班级:学号:姓名:指导教师:时间:-优质-.-一、课程设计题目及所涉及知识点一、课程设计题目及所涉及知识点设计题目是矩阵的运算;所涉及的知识点主要是:1、 利用数组的形式来储存数据,在 main 函数里面,实现对于数据的输入操作,利用switch 语句进展选择来执行操作, 利用 for 语句与 dowhile 语句来实现功能的循环操作。2、矩阵的加法、减法、乘法、数乘、转置的根本算法方式。3、通过 switch 语句进展选择来执行操作,来实现每个算法的功能。二、课程设计思路及算法描述二、课程设计思路及算法描述设计思路:用程序实现矩阵能够完
2、成矩阵的转置运算;矩阵的数乘运算;矩阵的加法运算;矩阵的减法运算;矩阵的乘法运算;这几种矩阵的简单的运算。用数组把将要运算的矩阵储存起来,然后实现矩阵的这几种运算。在main 函数里面,来实现对于数据的输入操作,利用switch 语句进展选择来执行操作,利用 for 语句来实现功能的循环操作。算法:算法 1:矩阵的转置运算;首先是把将要运算的矩阵存放在数组中,矩阵的转置运算,就是把你将要进展运算的 A矩阵的行 ar 和列 ac, 把 A 矩阵的行 ar 作为 B 矩阵的 bc, A 矩阵的列 ac 作为 B 矩阵的 br,这样得到的新矩阵 B 的行 br 和列 bc 就是矩阵 A 的转置。算法
3、如下:for(i=0;iar;i+)for(j=0;jac;j+)Bji=Aij;算法 2:矩阵的数乘运算;首先是把将要运算的矩阵存放在数组中,矩阵的数乘运算,就是实现用一个实数 k.优选-.-去 A 矩阵。实数 k 去乘矩阵的每一行和每一列,得到的一个新的矩阵 B,这样就解决了矩阵的数乘运算。算法如下:for(i=0;iar;i+)for(j=0;jac;j+)Bij=k*Aij;算法 3:矩阵的加法运算;首先是把将要运算的矩阵存放在数组中,矩阵的加法运算,就是要实现 A 矩阵与 B矩阵进展加法运算。事实上就是 A 矩阵的每一行 ar 与 B 矩阵的每一行 br 进展加法运算,而得到的一个新
4、的矩阵 C 的每一行 cr 就是 A 矩阵的 ar 行与 B 矩阵的 br 行的和;A 矩阵的每一列 ac 与 B 矩阵的每一列 bc 进展加法运算,而得到的一个新的矩阵 C 的每一列 cc就是 A 矩阵的 ac 列与 B 矩阵的 bc 列的和。这样就实现了 A 矩阵与 B 矩阵的加法运算。算法如下:ar=br;ac=bc;for(i=0;iar;i+)for(j=0;jac;j+)Cij=Aij+Bij;算法 4:矩阵的减法运算;首先是把将要运算的矩阵存放在数组中,矩阵的减法运算,就是要实现 A 矩阵与 B矩阵进展减法运算。事实上就是 A 矩阵的每一行 ar 与 B 矩阵的每一行 br 进展
5、减法运算,而得到的一个新的矩阵 C 的每一行 cr 就是 A 矩阵的 ar 行与 B 矩阵的 br 行的差;A 矩阵的每一列 ac 与 B 矩阵的每一列 bc 进展减法运算,而得到的一个新的矩阵 C 的每一列 cc就是 A 矩阵的 ac 列与 B 矩阵的 bc 列的差。这样就实现了 A 矩阵与 B 矩阵的减法运算。算法如下:.优选-.-ar=br;ac=bc;for(i=0;iar;i+)for(j=0;jac;j+)Cij=Aij-Bij;算法 5:矩阵的乘法运算;首先是把将要运算的矩阵存放在数组中,矩阵的乘法运算,就是要实现 A 矩阵与 B矩阵进展乘法运算。只有当进展运算的 A 矩阵的列
6、ac 等于 B 矩阵的行 br 时,两个矩阵才能进展运算,而得到的结果 C 矩阵要等于 A 矩阵的行 ar 和 B 矩阵的列 bc。这样就实现了两个矩阵的乘法运算。算法如下:cr=ar;cc=bc;for(i=0;iar;i+)for(j=0;jbc;j+)for(k=0;kac;k+)Cij+=Aik*Bkj;三、课程设计中遇到的难点及解决方法三、课程设计中遇到的难点及解决方法遇到的难点:如何实现两个矩阵进展乘法运算;解决方法:1 通过分析代码的运行过程,然后和同学一起交流,通过在网上查找的资料,来解决遇到的问题,然后在进展运行。2就是对于矩阵的乘法运算,因为掌握的知识不是很熟练,通过查阅书
7、籍相关的算法,再结合手中的资料,认真的分析,然后进展实现,屡次试验后解决了该问题。四、总结四、总结.优选-.-通过这次的课程设计,发现了自己有很多缺乏的地方,更加深了对数组的存储以及相关的算法的实现,更加认识到要努力自己解决问题,无论是通过书籍还是网络资料,自己动手实践,这样更能加深印象,加强记忆,也能认识到自己的缺乏,促使自己不得不去提高自己的编程水平,每一次的实践都是对自己的能力的检测,都是一次珍贵的经历,这也是学习的一种有效方式。在不断实验中提高了自己独立思考的能力和独立自主的动手能力;还有在不断学习中,让我认识到实践的重要性,教师的精心指导让我学会到了很多,不仅仅是代码,最主要的让我的
8、思维开阔了很多,在这个过程中,通过不断的尝试,不断的修改,最终抑制了困难,完成了自己的任务。我还了解了必须不断地虚心请教与不断地从各个途径学习了解知识,才能不断充实自己,提高自己。五、附录主要源程序代码及运行结果五、附录主要源程序代码及运行结果源代码:*includefloat A2020;float B2020;float C2020;float y=1.0;void main( ) int ar=0,ac=0,br=0,bc=0,cr=0,cc=0 ;int x,i=0,j=0,k=0;do printf(*n);printf(1.表示矩阵转置:n);printf(2.表示数乘矩阵:n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 矩阵 运算

限制150内