矩阵运算综合系统分析解析文档格式.docx

上传人:b****6 文档编号:21397086 上传时间:2023-01-30 格式:DOCX 页数:14 大小:145.25KB
下载 相关 举报
矩阵运算综合系统分析解析文档格式.docx_第1页
第1页 / 共14页
矩阵运算综合系统分析解析文档格式.docx_第2页
第2页 / 共14页
矩阵运算综合系统分析解析文档格式.docx_第3页
第3页 / 共14页
矩阵运算综合系统分析解析文档格式.docx_第4页
第4页 / 共14页
矩阵运算综合系统分析解析文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

矩阵运算综合系统分析解析文档格式.docx

《矩阵运算综合系统分析解析文档格式.docx》由会员分享,可在线阅读,更多相关《矩阵运算综合系统分析解析文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

矩阵运算综合系统分析解析文档格式.docx

1、编写源程序的要求:

(1)能够实现任务书中的功能;

(2)尽可能使界面友好、直观、易操作

(3)源程序要有适当的注释,使程序容易阅读。

2、撰写“课程设计报告”,要求如下:

(1)封面:

统一采用《常州大学课程设计说明书》封面格式

(2)任务书

(3)目录

(4)“课程设计报告”正文

3、课程设计验收要求:

(1)运行所设计的系统;

(2)回答有关问题;

(3)提交课程设计报告;

(4)提交源程序。

四、进度安排

1、系统分析、设计准备阶段:

6学时

2、编程调试阶段:

28学时

3、总结和书写课程设计报告阶段:

4学时

4、考核阶段:

2学时

指导教师:

年月日

教研室主任:

年月日

系主任:

一.意义和主要功能:

通过分析、设计、编码、调试和测试此软件的开发过程,独立完成了矩阵运算综合系统。

本系统主要具有以下功能:

1、具有矩阵加法运算功能;

2、具有矩阵乘法运算功能;

3、具有求螺旋矩阵功能;

4、具有矩阵转置功能。

二.功能结构图:

三.使用说明书:

(1)打开程序界面,有加法、乘法、螺旋、转置和退出五个选项,分别由1-5表示。

(2)输入5是退出,程序关闭。

(3)输入1是矩阵加法运算。

(4)输入2是矩阵乘法运算。

(5)输入3是矩阵螺旋运算。

(6)输入4是求矩阵转置运算。

四.源程序代码:

#include"

stdio.h"

#include<

conio.h>

#include<

stdlib.h>

#defineM20

#defineN20

floatA[M][N];

//定义了含有400个浮点型数组元素的二维数组

floatB[M][N];

floatC[M][N];

inti,j,m,n,p,q,k,x;

voidinput()

{

printf("

请输入矩阵A的行数和列数(用逗号隔开):

"

);

scanf("

%d,%d"

&

i,&

j);

printf("

请输入矩阵B的行数和列数(用逗号隔开):

);

m,&

n);

while(i!

=m||j!

=n)//判断是否满足加法运算条件:

既两个矩阵的行、列数是否相等

{

printf("

***对不起,您输入的两个矩阵不能相加,两个矩阵的行列数必须相等,请重新输入.***\n\n"

scanf("

}

请输入矩阵A:

\n"

//输入矩阵A的元素

for(p=0;

p<

i;

p++)

for(q=0;

q<

j;

q++)

scanf("

%f"

A[p][q]);

输出矩阵A:

//输出矩阵A

for(p=0;

for(q=0;

{

printf("

%10.2f"

A[p][q]);

if((q+1)%j==0)

printf("

}

printf("

请输入矩阵B:

//输入矩阵B的元素

for(p=0;

for(q=0;

scanf("

B[p][q]);

输出矩阵B:

//输出矩阵B

for(p=0;

for(q=0;

{

printf("

B[p][q]);

if((q+1)%j==0)

printf("

}

矩阵A+矩阵B为:

//进行两个矩阵相加计算

for(p=0;

for(q=0;

C[p][q]=A[p][q]+B[p][q];

for(p=0;

for(q=0;

{

printf("

C[p][q]);

if((q+1)%j==0)

printf("

}

getchar();

}

voiddel()

while(j!

=m)//判定两个矩阵能否相乘:

A的列数必须等于B的行数

{

***对不起,您输入的两个矩阵不能相乘,B矩阵的行数必须和A矩阵的列数相等,请重试.***\n"

请重新输入矩阵B的行数和列数(用逗号隔开):

//输出矩阵A

//输入矩阵B的元素

矩阵A*矩阵B为:

//计算两个矩阵相乘

n;

q++)

{

C[p][q]=0;

for(k=0;

k<

j;

k++)

C[p][q]+=A[p][k]*B[k][q];

}

if((q+1)%n==0)

voidfind()

intarry[N][N]={0};

inti,j,a,b;

intn=1;

intL;

L=(N+1)/2;

for(i=0;

i<

L;

i++)

{

b=i;

for(a=i;

a<

N-i;

a++)

arry[a][b]=n++;

}

a--;

for(b=i+1;

b<

b++)

b--;

for(a=N-i-2;

a>

=i;

a--)

a++;

for(b=N-i-2;

b>

b--)

for(a=0;

N;

{

for(b=0;

printf("

%5d"

arry[a][b]);

\n\n"

getchar();

voidarrange()

//输入矩阵A的元素

输出矩阵A\n"

p++)//进行转置

B[q][p]=A[p][q];

输出矩阵A的转置矩阵:

if((q+1)%i==0)

getchar();

voidfind();

voidinput();

voiddel();

voidarrange();

voidmain()

{charc;

inti;

do

system("

cls"

for(i=0;

80;

printf("

*"

\t1:

矩阵加法运算\n"

\t2:

矩阵乘法运算\n"

\t3:

矩阵螺旋运算\n"

\t4:

矩阵转置运算\n"

\t5:

退出\n"

\t请选择输入选项[1\\2\\3\\4\\5]:

do

{

c=getchar();

}while(c!

='

1'

&

c!

2'

3'

4'

5'

getchar();

switch(c)

{case'

:

input();

break;

case'

del();

find();

arrange();

exit(0);

}

按任意键返回主菜单:

}while

(1);

五.实习日志:

6.24

题目要求中的菜单的代码不能加载

6.25

不清楚有数组参数的子函数要怎么声明

6.26

文件指针不能和变量赋值报错

6.27

从网上看到了类似的代码,

重新定义了函数之后引用了

六.心得体会:

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。

要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。

只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

七.参考文献:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1