C语言课程设计矩阵问题.doc_第1页
C语言课程设计矩阵问题.doc_第2页
C语言课程设计矩阵问题.doc_第3页
C语言课程设计矩阵问题.doc_第4页
C语言课程设计矩阵问题.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

课程设计(论文)题 目 名 称 矩形问题 课 程 名 称 C语言程序课程设计 学 生 姓 名 龙正彬 学 号 1441303035 系 、专 业 信息工程系、通信工程 指 导 教 师 刘远军 目 录1 前言22 需求分析22.1 课程设计目的22.2 课程设计任务22.3 设计环境22.4 开发语言23 分析和设计33.1 模块设计33.2 系统流程图33.3 主要模块的流程图44 具体代码实现55 课程设计总结65.1 程序运行结果 / 预期运行结果75.2 课程设计体会8参考文献9致 谢71 前言C语言作为一门最通用的语言,在过去很流行,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外地要学习它。记得大学里,很多学校都把谭浩强教授的C语言设计作为入门教材,这是绝佳的选择。然而,要更进一步,更全面而深入地学习呢?显然有点力不从心。本书正是为了弥补这个缺憾而写的,希望能对想比较全面而深入学习C语言程序设计的人有所帮助。从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2 课程设计任务已知一个55矩阵,用函数实现:(1)找出该矩阵中的鞍点,“鞍点”指的是一个位置,该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。(2)将矩阵中最大的元素放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放)。2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C+或TC集成开发环境2.4 开发语言C语言3 分析和设计3.1 模块设计(1)定义一个二维数组a55存放一个矩阵,用for循环输入25个数据到a55。(2)定义一个f()函数用来查找矩阵中的鞍点,存放到aNM数组中,应用flag标识变量,并用maxj存放某行中最大数组元素的列下标,若有鞍点则输出鞍点的位置和值,否则输出没有鞍点。(3)定义一个fun()用来查找矩阵中的最大数和4个最小数,存放到b5数组中,b0存放最大值放到5*5列表的最中间,即a22,b1存放第一小数放到左上角,b2存放第二小数放到右上角,b3存放第三小数放到左下角,b4存放第四小数,放到右下角。 3.2 系统流程图开始调用f()函数求鞍点调用fun()函数求最大最小数结束图3.1 系统流程图3.3 主要模块的流程图i=0iNmax=ai0i=0jMmax=aijj+min=maxk=0 kNbreakk+flag=1k=Ni+flag!=1输出没有鞍点 图 3.3 f()函数流程图2i=0;max=a00;k=l=0imax max=aij ;k=i ;l=jj+i+交换akl与a22j5? 图3.4 fun()函数流程图1 i=0i5j=0jaijj+i+min=aij ; k=i ; l=j交换akl与a22 图3.5 fun()函数流程图2 i5min=aij k=i l=ji=0j=0jaij(i=0)&(j=0)j+i+交换akl与a22图3.6 fun()函数流程图3i5min=aij; k=i ; l=ji=0j=0jaij(i=0)&(j=0)j+i+交换akl与a22(i=0)&(j=4)continue图3.7 fun()函数流程图4i5min=aij k=i l=ji=0j=0jaij(i=0)&(j=0)j+i+交换akl与a22(i=0)&(j=4)continue(i=0)&(j=4)continue结束图3.8 fun函数流程图54 具体代码实现#includestdio.h#includemath.h#includestring.h#includestdlib.h#define N 5#define M 5void f(int aNM);void fun(int a55);void main() int i,j,a55; printf(请输入矩阵:n); for(i=0;i5;i+) for(j=0;j5;j+) scanf(%d,&aij); f(a); /调用f函数求鞍点 fun(a); /调用fun函数求最大最小值 for(i=0;i5;i+) for(j=0;j5;j+) printf(%5d,aij); printf(n); /以上花括号配对完毕。void f(int aNM) int i,j,k; /循环变量 int flag; /标识变量,表示整个矩阵是否有鞍点 int max,min; int maxj; /存当前行中最大数组元素的列下标 flag=0; for(i=0;iN;i+) max=ai0; for(j=0;jM;j+) /寻找第i行中的最大值的列下标 if(maxaij) max=aij; maxj=j; min=max; for(k=0; kakmaxj) break; if(k=N) flag=1; /有鞍点,输出鞍点位置和值 printf(na%d%d=%dn,i,maxj,aimaxj); if(flag!=1) printf(没有鞍点n);void fun(int a55)int i,j,k,l,b5,t,max,min;max=a00; /先假定其为最大值k=0;l=0;for(i=0;i5;i+) for(j=0;jmax) /用i,j存储最大数的列下标max=aij;k=i;l=j;b0=akl;/将最大数放到最中间即a22akl=a22;a22=b0;min=a00;k=l=0;for(i=0;i5;i+)for(j=0;jaij)min=aij;k=i;l=j;b1=akl; /将最小数放到a00akl=a00;a00=b1;min=a01;k=0;l=1;/排除a00,寻找第二小数for(i=0;i5;i+)for(j=0;j5;j+)if(i=0)&(j=0)continue;elseif(aijmin)min=aij;k=i;l=j; /以上花括号配对完毕。b2=akl; /将找到第二小数放到右上角,即a04akl=a04;a04=b2;min=a01;k=0;l=1;for(i=0;i5;i+) /从a01点开始寻找第三小数for(j=0;j5;j+)if(i=0)&(j=0)continue;else if(i=0)&(j=4)/排除a04来寻找continue;elseif(aijmin)min=aij;k=i;l=j; /以上花括号配对完毕。b3=akl; /将第三小数放到左下角,即a40akl=a40;a40=b3;min=a01;k=0;l=1; /从a01开始寻找第四小的数for(i=0;i5;i+)for(j=0;j5;j+)if(i=0)&(j=0)continue;else if(i=0)&(j=4)|(i=4)&(j=0) /排除已找到的最小数a04与a40的干扰continue;elseif(aijmin)min=aij;k=i;l=j; /以上花括号配对完毕。b4=akl;/将第四小的数放到右下角,即位置a44akl=a44;a44=b4; /花括号全局完。5 课程设计总结5.1 程序运行结果/预期运行结果 图5.1 录入的矩阵输入如图中的矩阵,输出其鞍点,其最大数为65,放到矩阵最中间,最小的数为41,42,43,44,45分别放到左上角,右上角,左下角和右下角。 图 5.2 程序运行结果5.2 课程设计体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题。 炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。经过一个学期的学习,我对 C 语言有了一定的了解。C 语言是学习计算机科学的基础,作为一名计算机专业学生,掌握 C 语言更是毋庸置疑。在上课之前,就经常听同学说,C 语言 很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后, 前面的疑团都迎刃而解,这让我对 C 语言的学习更有信心。并且我们学习的不仅是科 学的方法, 还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身 得到充分的发挥,用细心严谨的态度去认识事物,且希望通过这次的实践操作可以让 我更好地学习 vb 程序设计。参考文献1黄同成,周红波程序设计基础教程(C语言)M湖南人民出版社,20112黄同成,黄磊程序设计实践教程(C语言)M湖南人民出版社,20113谭浩强C程序设计(第三版)M北京:清华大学出版社,2005 致谢本课程设计报告是在刘远军老师

温馨提示

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

评论

0/150

提交评论