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