矩阵相乘7.docx
- 文档编号:8765495
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:11
- 大小:60.69KB
矩阵相乘7.docx
《矩阵相乘7.docx》由会员分享,可在线阅读,更多相关《矩阵相乘7.docx(11页珍藏版)》请在冰点文库上搜索。
矩阵相乘7
沈阳航空工业学院
课程设计
学号
班级
姓名
指导教师
沈阳航空工业学院
课程设计任务书
1课程设计题目:
矩阵相乘
2课程设计内容:
3用c语言编写完成以下任务:
如果两个矩阵满足相乘条件,则实现成运算。
相乘的两个矩阵及其相乘结果应保存到磁盘文件中。
4课程设计要求:
●程序质量:
贯彻结构化程序设计思想
用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括“输入”“开始运算”“退出”3项。
代码应适当缩进,并给出必要的注释,以增强程序的可读性。
●课程设计任务书
●需求分析(分析题目要求)
●程序流程图(整体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当注释
5课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
学生签名:
_________________
指导教师:
__________________
五、说明书成绩
六、教师评语
目录
一、需求分析1
二、程序流程图1
三、核心技术的实现说明及相应程序段3
四、个人总结4
五、参考文献5
六、源程序6
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为二个模块,其中每一个模块对应一个函数,他们的功能分别是:
输入数据,乘法运算。
1、输入数据函数主要实现程序最初运行时矩阵相关数据的录入。
2、乘法运算函数实现的功能是矩阵的乘运算。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
程序的一开始定义了两个全局变量的多维数组,可以使的在一定的程度上进行矩阵处理,将输入的矩阵的行、列数定义为全局变量使的各个子函数都可以使用。
二、程序流程图
1、程序总体结构图
ABdefaultC
图1程序总体结构图
2、具体功能框图
(1)乘法运算函数
三、核心技术的实现说明及相应程序段
本程序主要由一个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,乘法运算函数、是程序中较为核心的部分,下面分别进行说明。
1、矩阵的乘法使用三层嵌套的循环实现。
具体程序段如下:
if(m==q&&n==p)
for(i=0;i for(j=0;j {ji[i][j]=0;k=0; while(k {t=jz1[i][k]*jz2[k][j]; ji[i][j]+=t;k++;}} 四、个人总结 计算机在现在社会已经是一个比较通用的应用软件了,作为一个大学生,我对它的了解只能说是肤浅的水平,只会表面的一些东西,而c语言这门课程给了我进一步学习的机会,特别是课程设计,这种理论联系实践的课程给人一种全新的感觉,它让我更直接的接触了计算机,接触了我们以后长用的这个软件,使我开拓了见识。 编程是一项需要缜密思维的工作,不能有丝毫马虎,在编写程序的过程中,我出现了很多的错误,经反复修改 研究,还是有许多不明白的地方,直到请教老师后,才发现错误之所在,我想通过本次课设,不仅仅提高了我的 编程水平,还使我养成了做事严谨的好习惯,为我以后的 发展奠定了基础。 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 六、源程序 #include #include #defineM20 #defineN20 intjz1[M][N]; intjz2[M][N]; intm,n,p,q; voidinsertdate() {inti,j; printf("输入第一个矩阵行数\n"); scanf("%d",&m); printf("输入第一个矩阵列数\n"); scanf("%d",&n); printf("输入第一个矩阵\n"); for(i=0;i for(j=0;j scanf("%d",&jz1[i][j]); printf("输入第二个矩阵行数\n"); scanf("%d",&p); printf("输入第二个矩阵列数\n"); scanf("%d",&q); printf("输入第二个矩阵\n"); for(i=0;i for(j=0;j scanf("%d",&jz2[i][j]); } voidyunsuan() {inti,j,k,t; intji[M][N]; printf("矩阵1为: \n"); for(i=0;i {for(j=0;j printf("%3d",jz1[i][j]); printf("\n");} printf("矩阵2为: \n"); for(i=0;i {for(j=0;j printf("%3d",jz2[i][j]); printf("\n");} if(m==q&&n==p) {printf("两个矩阵的积为: \n"); for(i=0;i for(j=0;j {ji[i][j]=0;k=0; while(k {t=jz1[i][k]*jz2[k][j]; ji[i][j]+=t;k++;}} for(i=0;i {for(j=0;j printf("%3d",ji[i][j]); printf("\n");}} elseprintf("不能求积\n");} voidmain() {chari; while (1) {printf("*-************菜单*************-*\n"); printf("*--------A—输入数据---------*\n"); printf("*--------B—乘法运算------------*\n"); printf("*--------C----退出--------------*\n"); printf("*-*******************************\n"); printf("请选择\n"); scanf("%c",&i); switch(i) {case'A': insertdate();break; case'B': yunsuan();break; case'C': exit(0);break; default: printf("! ! ");} continue;} }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩阵 相乘
![提示](https://static.bingdoc.com/images/bang_tan.gif)