c语言课程设计矩阵运算_第1页
c语言课程设计矩阵运算_第2页
c语言课程设计矩阵运算_第3页
c语言课程设计矩阵运算_第4页
c语言课程设计矩阵运算_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准课程设计文案大全实用标准课程设计任务书一、课程设计题目:矩阵运算二、课程设计工作自 2008年9月 8日起至 2008年 9月 12日止三、课程设计容 :运用所学的 C 语言知识,编制和调试程序,具有如下功能:(1) 两个矩阵加、减、乘等运算(2) 对某一矩阵增加一行或一列(3) 对某一矩阵减少一行或一列(4) 自己再增加一项或两项功能四、课程设计要求:程序质量: 贯彻结构化程序设计思想。 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。 用户界面中的菜单至少应包括“输入数据” 、“算术运算” 、“增行”、“减行”、“退 出” 5项。代码应适当缩进,并给出必要的注释,以增强程

2、序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿) ,其容如下: 封面 课程设计任务书目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料源程序及适当的注释指导教师: 学生签名:成绩:教师评语:文案大全实用标准目录一、需求分析 1二、程序流程图 2三、核心技术的实现说明及相应程序段 8四、个人总结 1. 8五、参考资料 1. 9六、源程序 1. 9文案大全实用标准、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分 为六个模块,其中每一个模块对应一个函数,他们的功能分别是: 加运

3、算函数 (jia) ,减运算函数 (jian),乘运算函数 (cheng),增行函数 (jiahang),减列函数 (jianlie) 以及求最大值函数 (fun)。在这些函数当 中,前五个函数的实现严格按照题目的要求,而最后一个函数为自 行设计的函数。1、增加运算函数主要实现将两矩阵相加的功能;2、减运算函数实现的功能是将两矩阵相减;3、乘运算函数主要实现将两矩阵相乘的功能;4、增行函数实现的是在所选的矩阵中增加一行的功能;5、减列函数实现的是在所选的矩阵中减掉一列的功能;6、求取最大值函数 实现的功能是找到并输出所给矩阵最大值。 程序的一次运行当中可以循环执行所有的功能,并根据需要终 止程

4、序的执行。在这个程序中,将各个功能以子程序模块的形式编 写。这样使所编写的程序简单,明了,逻辑性思维表达明确,具有 很强的可读性。文案大全实用标准、程序流程图1. 程序总体结构图图(一)程序总体结构图2、具体功能框图文案大全实用标准int i.ja1=b1&a2=b2?否 提示 错误 退出1) 加 运算函数 jiai=0ia1? 否是i=0j=0否 ia1? 是ja2?是 ja2? 否j=0cij=aij+bijj+i+否 ja1+1?是否提示 错误 退出m=0mx-1? 否 是n=0na2? 否 是m+cmn=ann;n+Printf( “ please input number you a

5、dd” )j=0ja2? 否 是scanf( “ %d” ),&cx-1j;j+m=aama1? 否 是n=0na2? 否 是m+cmn=am-1n;n+i=0i=a1? 否是 i=a1? 否j=0ja2? 否 是printf( “ n” ) i+printf( “ %4d” ,cij) j+图(五)增加行函数5)减列函数 jianlieint x,i,j;文案大全实用标准图(六)减列函数6)求最大值函数 fun文案大全实用标准j=0jmax否 aijmax 是j+ max=aij;j+printf( “ max=%4dn ” ,max);图(七)求最大值函数三、核心技术的实现说明及相应程序段

6、本程序主要由六个自定义函数和一个主函数组成,其中主函数 以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当 中,加运算函数,减运算函数,乘运算函数,加行函数,减列函数 是程序中较为核心的部分,下面分别进行说明。1、加运算函数在进行矩阵相加前要判断两矩阵是否能够相加,如果能就按照 矩阵的相加方式进行运算并输出结果。若不能则提示错误并返回。 具体的程序段如下 :void jia(int aNN,int bNN,int a1,int a2,int b1,int b2)int i,j;if(a1=b1&a2=b2)文案大全实用标准for(i=0;ia1;i+)for(j=0;ja2;j+)ci

7、j=aij+bij;for(i=0;ia1;i+)for(j=0;ja2;j+)printf(%4d,cij);printf(n);elseprintf( 两矩阵不能相加 n);运行图有如下:文案大全实用标准2、减运算函数在进行矩阵相减运算前要判断两矩阵是否能够相减,如果能就按照矩阵的相减方式进行运算并输出结果。若不能则提示错误并返 回。具体的程序段如下void jian(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j; if(a1=b1&a2=b2) for(i=0;ia1;i+) for(j=0;ja2;j+)文案大全实用标准cij

8、=aij-bij;for(i=0;ia1;i+)for(j=0;ja2;j+)printf(%4d,cij);printf(n);elseprintf( 两矩阵不能相减 n); 运行图有如下:文案大全实用标准3、乘运算函数该段程序的核心问题是矩阵的乘法运算的逻辑性的编写,在 进行矩阵相乘时要合理,正确的编写出矩阵相乘的逻辑方式。首先 要判断两矩阵是否能够相乘,如果能就按照矩阵的相乘方式进行运 算并输出结果。若不能则提示错误并返回。具体的程序段如下 void cheng(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j,k;if(a2=b1

9、)文案大全实用标准for(i=0;ia1;i+)for(j=0;jb2;j+)cij=0;for(i=0;ia1;i+)for(j=0;jb2;j+) for(k=0;ka2;k+)cij+=aik*bkj;printf(运算结果为 :n);for(i=0;ia1;i+)for(j=0;ja1+1)printf( 不能加入到此行 n);return; for(m=0;mx-1;m+)for(n=0;na2;n+)cmn=amn;printf( 请输入要加的数 );for(j=0;ja2;j+) scanf(%d,&cx-1j);for(m=x;m=a1;m+)for(n=0;na2;n+)cm

10、n=am-1n;for(i=0;i=a1;i+)for(j=0;ja1)printf( 不能减去此列 n);for(j=0;jx-1;j+)for(i=0;ia1;i+)cij=aij;for(j=x;ja2;j+)for(i=0;ia1;i+)cij-1=aij;for(i=0;ia1;i+)for(j=0;ja2-1;j+)printf(%4d,cij);printf(n);文案大全实用标准四、个人总结在这次 C语言课程设计过程, 我更好的掌握了 C语言课程中的 基础知识,同时也对所学知识的掌握有所加深。通过这次自己动手 编制、调试程序,让我学到了很多理论课上无法体会到的知识,特 别的知道

11、了一些关于“ stdlib.h”头文件的使用,而且我也遇到并解 决了很多编程中常出现的错误。自己独立的编写出了各个子程序, 如加运算函数、减运算函数、乘运算函数、加行函数、减行列函数 等。通过编程让我深深的体会到 C 语言的方便性和可用性。自身觉 得不足的是在使用增行、减列运算函数时还要输入不必要的另一数文案大全实用标准组,但它不可少,有它可以在此程序源中增加新的运算函数。五、参考文献20081 谭浩强 C 程序设计教程 :清华大学 20082 成等 C 语言程序设计实验指导与习题集:中国铁道六、源程序#include#include#define N 50int cNN;void jia(i

12、nt aNN,int bNN,int a1,int a2,int b1,int b2)int i,j;if(a1=b1&a2=b2)for(i=0;ia1;i+)for(j=0;ja2;j+)文案大全实用标准cij=aij+bij;for(i=0;ia1;i+) for(j=0;ja2;j+)printf(%4d,cij);printf(n);elseprintf( 两矩阵不能相加 n);void jian(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j;if(a1=b1&a2=b2) for(i=0;ia1;i+)文案大全实用标准fo

13、r(j=0;ja2;j+)cij=aij-bij;for(i=0;ia1;i+)for(j=0;ja2;j+)printf(%4d,cij);printf(n);elseprintf( 两矩阵不能相减 n);void cheng(int aNN,int bNN,int a1,int a2,int b1,int b2)int i,j,k;文案大全实用标准if(a2=b1)for(i=0;ia1;i+)for(j=0;jb2;j+)cij=0;for(i=0;ia1;i+)for(j=0;jb2;j+)for(k=0;ka2;k+)cij+=aik*bkj;printf( 运算结果为 :n);fo

14、r(i=0;ia1;i+)for(j=0;ja1+1)printf( 不能加入此行 n);return;for(m=0;mx-1;m+)for(n=0;na2;n+)cmn=amn;printf( 请输入要加的数 :);for(j=0;ja2;j+)文案大全实用标准scanf(%d,&cx-1j);for(m=x;m=a1;m+)for(n=0;na2;n+)cmn=am-1n;for(i=0;i=a1;i+)for(j=0;ja1)printf( 不能减去此列 n);for(j=0;jx-1;j+)for(i=0;ia1;i+)cij=aij;for(j=x;ja2;j+)for(i=0;i

15、a1;i+)cij-1=aij;for(i=0;ia1;i+)for(j=0;ja2-1;j+)printf(%4d,cij);printf(n);void fun(int aNN,int a1,int a2)文案大全实用标准int i,j;int max;max=a00;for(i=0;ia1;i+)for(j=0;jmax)max=aij; printf(max=%4dn,max);main()int aNN,bNN,i,j,m,n,p,q,flag;printf( 请输入矩阵 a 的行数和列数 :n); scanf(%d %d,&m,&n);printf( 请输入矩阵 a:n); for

16、(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&aij);文案大全实用标准printf(a 矩阵为 :n);for(i=0;im;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);printf( 请输入矩阵 b 的行数和列数 :n); scanf(%d%d,&p,&q);printf( 请输入 b 矩阵 :n);for(i=0;ip;i+)for(j=0;jq;j+)scanf(%d,&bij);printf(b 矩阵为 :n);for(i=0;ip;i+)for(j=0;jq;j+)printf(%4d,bij);printf(n);文案大全实用标准while(1)printf( 请选择:n 1: 矩阵相加 n 2: 矩阵相减 n 3: 矩阵相 乘 n 4: 矩阵加一行 n 5: 矩阵减一列 n 6: 求最大值 n);scanf(%d,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论