(完整版)C语言毕业课程设计10通一

上传人:MM****y 文档编号:73777254 上传时间:2022-04-12 格式:DOC 页数:24 大小:133KB
返回 下载 相关 举报
(完整版)C语言毕业课程设计10通一_第1页
第1页 / 共24页
(完整版)C语言毕业课程设计10通一_第2页
第2页 / 共24页
(完整版)C语言毕业课程设计10通一_第3页
第3页 / 共24页
点击查看更多>>
资源描述
1 前言从 C 语言产生到现在,它已经成为最重要和最流行的编程语言之一。例如在一个 5*5 的矩阵中找出鞍点(“鞍点”指的是一个位置,该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点),并且还要在该矩阵中找出最大值放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放),将该任务用函数实现。2 需求分析2.1课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2课程设计任务已知一个 5*5 的矩阵,用函数实现:( 1)找出该矩阵中的鞍点,“鞍点”指的是一个位置,该位置的元素在该行上最大,该列上最小,也可以没有鞍点。( 2)将矩阵中最大的元素放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放)。2.3设计环境(1)WINDOWS XP7Vista系统(2)Visual C+或 TC 集成开发 环境2.4开发语言C 语言3 分析和设计3.1模块设计定义一个二维数组aNNcunfang N*N的矩阵的 N=5。定义一个函数input(int aNN)用来输入矩阵,由于N等于 5,所以要依次输入25 个数。定义一个函数output(int aNN)用来输出矩阵。定义一个函数 andian(intarrayNN用来找出 N*N矩阵 a 中找鞍点,先定义 i,j来表示行和列,通过for (i = 0; i = 4; i+)进行行的循环和定义 sign = 1,确定行后再利用for(j = 0; j =4;j+)循环列来求出每行的最大值,再用函数for(j = 0; j =4;j+)进行行循环来比较行最大是否是列最小,如果行最大不是列最小则输出sign = 0,判断 sign 是等于 0 还是等于 1,如果等于 1,则这确定该数为鞍点并输出,再运行一次函数 number+,如果等于 0,就判断 number 是否等于 0,如果等于 0 则输出没有鞍点 。定义一个函数max_min(int xNN)用来求出最大值和值,先那二维数组转化为一维数组,在一维数组中找出最大子和的并按从小到大的顺序排列,再把最大值与中间的数替换,然后把4 个在最小4 个最小4 个最小值按从左到右,从上到下依次从小到大存放。3.2系统流程图3.3主要模块的流程图(1)输入矩阵函数流程图( 2)输出矩阵函数流程图i=0Ni5Yj=0Nj5Y输出 aijj+printf(n);i+number=0,i = 0i = 4m = ij = 0j =4(arraymn arrayij)n = jj+j = 0j arrayjnsign = 0j+sign = 1printf(鞍点是n,arraymni+number = 04 具体代码实现#includestdio.(int aNN);* 在 N*N 矩阵 a 中找鞍点 *void max_min(int aNN);* 在 N*N 矩阵 a 中找最大最小元素 *主函数 *void main()int xNN;input(x);output(x);andian(x);max_min(x);output(x);void input(int aNN)int i,j;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij) ;printf( 数组是 :n);void output(int aNN)* 输出 N*N 矩阵 a* int i,j;for(i=0;i5;i+)for(j=0;j5;j+)printf(%4d,aij);printf(n);void andian(int arrayNN)* 在 N*N 矩阵 a 中找鞍点 * int i,number=0,sign,j,m,n;for (i = 0; i = 4; i+)m = i;n = 0;sign = 1;for(j = 0; j =4;j+)if (arraymn arrayij)n = j;for(j = 0; j arrayjn)sign = 0;if (sign = 1)printf( 鞍点是 %dn,arraymn);number+;if (number = 0)printf( 没有鞍点 n);void max_min(int xNN)* 在 N*N 矩阵 a 中找最大最小元素 * int b25,i,j,k=0,t;for(i=0;i5;i+)* 把二维数组中元素按行的顺序存放到一维数组*for(j=0;j5;j+)bk=xij;k+;for(i=0;i24;i+)* 选择排序法,对一维数组中元素进行从小到大的排序 *k=i;for(j=i+1;j25;j+)if(bjbk)k=j;if(k!=i)t=bk;bk=bi;bi=t;for(i=0;i5;i+)for(j=0;j5;j+)if(xij=b24)t=xij;xij=x22;x22=t;break;for(i=0;i5;i+)for(j=0;j5;j+)if(xij=b0)t=xij;xij=x00;x00=t;break;for(i=0;i5;i+)for(j=0;j5;j+)if(xij=b1)t=xij;xij=x04;x04=t;break;for(i=0;i5;i+)for(j=0;j5;j+)if(xij=b2)t=xij;xij=x40;x40=t;break;for(i=0;i5;i+)for(j=0;j5;j+)if(xij=b3)t=xij;xij=x44;x44=t;break;5 课程设计总结5.1程序运行结果预期运行结果说明:输入的数为5 7 。输出的如上图所示。5.2课程设计体会通过这次课程设计,让我看出了自己的不足之处,认识到自己学到的只不过是一些皮毛,还需要在以后的日子里,多多复习,多多动手,将自己不懂的问题一一解决,让我明白了一些东西是看不出来的,只有自己动手做了才知道其中的奥妙,也让我知道只有学会脚踏实地迈开以前不想迈开的这一步,才能为明天能稳健地在社会大潮中奔跑打下坚实的基础。课程设计是对我们这学期的学习成果的试金石,对我们来说是一个不小的考验,它是我们专业课程知识综合应用的实践训练。自然对我来说,难度较到,需要老师和同学的帮助才能完成的,在编程的时候,一开始根本就不知道从哪里入手,开始在网上寻找一些资料,感觉有些东西还没学过,就不敢按它上面的用,最后在老师和同学的帮助下还是将它完成了。在绘图过程中,是用了我最多的时间的,感觉好麻烦的,有一种崩溃的感觉,不过在组内成员的帮助下还是将它完成了。对此我非常感谢他们的对我的帮助和支持。我会在今后的日子里,好好复习,尽量去弥补自己的不足,不懂就问,虚心求教。让自己学得更好。为以后过国二打下坚实的基础,让我知道了团队合作的重要性和可行性, 虽然一些事情可以独立完成,但还是有很多事情需要靠团队一起去努力的,这样往往会事半功倍,再次我从老师身上学到了很多,让我终生受益。参考文献1张福祥 . C 语言程序设计M.沈阳:辽宁大学出版社,2010.12张福祥,王萌C 语言程序设计习题解答与实验实训M 沈阳:辽宁大学出版社, 2010.13牛莉,刘远军等计算机等级考试辅导教程M 北京:中国铁道出版社,2008致谢本次课程设计在成娅辉老师孜孜不倦的指导下终于圆满结束了,在这过程中成老师对事不对人, 不容有一点瑕疵的要求和严谨求实的治学态度,将使我终生受益,我也从老师的身上学到了许多在课堂上是学不到的东西,我非常感谢她。在此我还要感谢我的同学,在他们的帮助下,才让我事半功倍,让我明白了团队合作的力量之强。最后请让我把最真挚的祝福和由衷的感谢送给我亲爱的老师和同学,谢谢你们!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!