课程设计矩阵运算系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]); }