课程设计矩阵运算系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

wen

滨江学院

windows 程序设计综合实验

课程设计

题目矩阵综合运算系统

学生姓名晏文涛

学号***********

院系电子工程系

专业信息工程

指导教师方忠进

二O一二年12 月16 日

设计了一个矩阵运算系统,该矩阵运算系统具有普通矩阵相加、相减、相乘及稀疏矩阵转置等功能。本运算系统以Microsoft Visual C++ 6.0 作为系统开发工具,采用算数表达式处理算法来实现了矩阵的加、减、乘等混合运算和稀疏矩阵的转置矩阵运算。系统操作简单,界面清晰,便于用户使用。

关键词:普通矩阵; 运算; VC6.0

1 课题描述 (1)

2 设计过程 (1)

3 程序编码 (3)

4 测试 (10)

总结 (12)

参考文献 (13)

1 课题描述

矩阵运算系统是一个非常重要的运算,很多软件开发公司都开发了这个运算系统。现在我们用C 语言编出这个运算系统。它的原理是对于输入的矩阵,进行相加、相乘以及相减。另外一个是稀疏矩阵的转置运算系统,按提示输入数值即可得到所要求的稀疏矩阵的转置矩阵。

运行环境:Visual C++ 6.0

2 设计过程

经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个模块对应一

个函数,他们的功能分别是:1)矩阵相加运算函数(ADD),主要实现将两矩阵相加的功能;2)矩阵相乘运算函数(MUL),主要实现将两矩阵相乘的功能;3)矩阵相减函数(SNB);实现的功能是矩阵之间的减法4)稀疏矩阵矩阵转置函数(TRANPOSE) 实现的功能是将稀疏矩阵进行转置。在这些函数当中,第1、2、4个函数的实现严格按照题目的要求,而第3个函数为自行设计的函数。程序的一次运行当中可以循环执行所有的功能,并根据需要终止程序的执行。在这个程序中,将各个功能以子程序模块的形式编写。这样使所编写的程序简单明了,逻辑性思维表达明确,具有很强的可读性。流程图如下:

1)矩阵相乘流程图如图2.1所示:

图2.1

2)矩阵相加流程图如图2.2所示

图2.2

3)矩阵相减流程图如图2.3所示

图2.3

4)矩阵相减、相加、相乘MAIN函数如图2.4所示

图2.4

5)稀疏矩阵的转置流程图如图2.5所示

图2.5

3 程序编码

/*矩阵相加、相减以及相乘*/

#include "stdio.h"

#include "stdlib.h"

#define M 3

#define N 3

//指针数组

int a[M][N];

int b[M][N];

int c[M][N];

void matrixMul(int b[][M],int c[][N]);

void matrixAdd(int b[][N],int c[][N]);

void matrixSub(int b[][N],int c[][N]);

int main()

{

int i,j,temp=0;

printf("Please input int matrix b[%d][%d]\n",M,N);

for(i=0;i

for(j=0;j

{

scanf("%d",&temp);

b[i][j]=temp;

}

printf("Please input int matrix c[%d][%d]\n",M,N);

for(i=0;i

{

for(j=0;j

{

scanf("%d",&temp);

c[i][j]=temp;

}

}

//输出原矩阵

printf("Now print resource matrix b[%d][%d]=",M,N);

for(i=0;i

printf("\n");

for(j=0;j

printf("%d ",b[i][j]);

}

printf("\n");

printf("Now print resource matrix c[%d][%d]=",M,N);

for(i=0;i

printf("\n");

for(j=0;j

printf("%d ",c[i][j]);

}

if (M == N)

{

matrixMul(b,c); //调用矩阵相乘

//输出矩阵相乘结果

printf("\n");

printf("Now printm matrixMul results matrix a[%d][%d]=B*C:",M,N);

for(i=0;i

{

printf("\n");

for(j=0;j

printf("%d ",a[i][j]);

}

}

else

{

printf("matrix Error,check and try again ");

}

//输出矩阵相加结果

matrixAdd(b,c);

printf("\n");

printf("Now printm matrixAdd results matrix a[%d][%d]=B+C:",M,N);

for(i=0;i

{

printf("\n");

for(j=0;j

printf("%d ",a[i][j]);

}

相关文档
最新文档