c语言课程设计矩阵运算

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

课程设计任务书

一、课程设计题目:矩阵运算

二、课程设计工作自2008年9月8日起至2008年9月12日止

三、课程设计容:

运用所学的C语言知识,编制和调试程序,具有如下功能:

(1) 两个矩阵加、减、乘等运算

(2) 对某一矩阵增加一行或一列

(3)对某一矩阵减少一行或一列

(4)自己再增加一项或两项功能

四、课程设计要求:

程序质量:

●贯彻结构化程序设计思想。

●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

●用户界面中的菜单至少应包括“输入数据”、“算术运算”、“增行”、“减行”、“退

出”5项。

●代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

课程结束后,上交课程设计说明书(打印稿和电子稿),其容如下:

●封面

●课程设计任务书

●目录

●需求分析(分析题目的要求)

●程序流程图(总体流程图和主要功能模块流程图)

●核心技术的实现说明及相应程序段

●个人总结

●参考资料

●源程序及适当的注释

指导教师:____________________学生签名:____________________

成绩:教师评语:

目录

一、需求分析 (1)

二、程序流程图 (2)

三、核心技术的实现说明及相应程序段 (8)

四、个人总结 (18)

五、参考资料 (19)

六、源程序 (19)

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:加运算函数(jia),减运算函数(jian),乘运算函数(cheng),增行函数(jiahang),减列函数(jianlie)以及求最大值函数(fun)。在这些函数当中,前五个函数的实现严格按照题目的要求,而最后一个函数为自行设计的函数。

1、增加运算函数主要实现将两矩阵相加的功能;

2、减运算函数实现的功能是将两矩阵相减;

3、乘运算函数主要实现将两矩阵相乘的功能;

4、增行函数实现的是在所选的矩阵中增加一行的功能;

5、减列函数实现的是在所选的矩阵中减掉一列的功能;

6、求取最大值函数实现的功能是找到并输出所给矩阵最大值。

程序的一次运行当中可以循环执行所有的功能,并根据需要终止程序的执行。在这个程序中,将各个功能以子程序模块的形式编写。这样使所编写的程序简单,明了,逻辑性思维表达明确,具有很强的可读性。

二、程序流程图

1.程序总体结构图

图(一)程序总体结构图2、具体功能框图

(1)加运算函数jia

图(二)加运算函数(2)减运算函数jian

图(三)减运算函数(3)乘运算函数cheng

图(四)乘运算函数(4)增加行函数jiahang

图(五)增加行函数(5)减列函数jianlie

图(六)减列函数(6)求最大值函数fun

图(七)求最大值函数

三、核心技术的实现说明及相应程序段

本程序主要由六个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,加运算函数,减运算函数,乘运算函数,加行函数,减列函数是程序中较为核心的部分,下面分别进行说明。

1、加运算函数

在进行矩阵相加前要判断两矩阵是否能够相加,如果能就按照矩阵的相加方式进行运算并输出结果。若不能则提示错误并返回。具体的程序段如下:

void jia(int a[N][N],int b[N][N],int a1,int a2,int b1,int b2)

{

int i,j;

if(a1==b1&&a2==b2)

{for(i=0;i

for(j=0;j

{

c[i][j]=a[i][j]+b[i][j];

}

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

}

else

{

printf("两矩阵不能相加\n");

}

}

运行图有如下:

2、减运算函数

在进行矩阵相减运算前要判断两矩阵是否能够相减,如果能就按照矩阵的相减方式进行运算并输出结果。若不能则提示错误并返回。具体的程序段如下:

void jian(int a[N][N],int b[N][N],int a1,int a2,int b1,int b2) {

int i,j;

if(a1==b1&&a2==b2)

{ for(i=0;i

for(j=0;j

{

c[i][j]=a[i][j]-b[i][j];

}

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

}

else

{

printf("两矩阵不能相减\n");

}

}

运行图有如下:

相关文档
最新文档