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

下载本文档

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

文档简介

1、课程设计(论文)题 目 名 称 矩阵问题 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 、专 业 信息工程系、网络工程专业 指 导 教 师 成娅辉 2021年 6月 6 日目 录1 前言22 需求分析22.1 课程设计目的22.2 课程设计任务22.3 设计环境22.4 开发语言23 分析和设计23.1 模块设计233.2 系统流程图33.3 主要模块的流程图4104 具体代码实现11165 课程设计总结165.1 程序运行结果 / 预期运行结果16175.2 课程设计体会1718参考文献18致 谢181 前言从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种

2、流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。所以可以看出学习C语言的重要性。我们在c语言课程中学习了矩阵的的运用,在本次课程设计中我们需要编写一个程序存放一个5*5的矩阵,然后通过调用两个函数找到该矩阵的鞍点和最大最小值。2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2 课程设计任务已知一个55矩阵,用函数实现:(1)找出该矩阵中的鞍点,“鞍点”指的是一个位置,

3、该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。(2)将矩阵中最大的元素放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放)。2.3 设计环境(1)WINDOWS 2021 /2021 /XP/7/Vista系统(2)Visual C+或TC集成开发环境2.4 开发语言C语言3 分析和设计3.1 模块设计定义一个二维数组a55存放一个矩阵,用for循环输入25个数据到a55。定义一个f()函数用来查找矩阵中的鞍点,存放到aNM数组中,应用flag标识变量,并用maxj存放某行中最大数组元素的列下标,若有鞍点则输出鞍点的位置和值,否则输出没有鞍点。定义一个f

4、un()用来查找矩阵中的最大数和4个最小数,存放到b5数组中,b0存放最大值放到5*5列表的最中间,即a22,b1存放第一小数放到左上角,b2存放第二小数放到右上角,b3存放第三小数放到左下角,b4存放第四小数,放到右下角。 3.2 系统流程图开始调用f()函数求鞍点调用fun()函数求最大最小数结束图3.1 系统流程图13.3 主要模块的流程图i=0iNmax=ai0i=0jMmax=aijj+min=maxk=0 图3.2 f()函数流程图 1 kNbreakk+flag=1k=Ni+flag!=1输出没有鞍点 图 3.3 f()函数流程图2 i=0;max=a00;k=l=0imax m

5、ax=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)

6、&(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函数求鞍点

7、 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)

8、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)m

9、in=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

10、来寻找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.

11、1 程序运行结果 图3.9.1 录入的矩阵输入如图中的矩阵,输出其鞍点,其最大数为35,放到矩阵最中间,最小的数为11,12,13,14,分别放到左上角,右上角,左下角和右下角。 图 3.9.2 程序运行结果5.2 课程设计体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题。锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。经过一个学期的学习,我对C语言有了一定的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后,前面的

12、疑团都迎刃而解,这让我对C语言的学习更有信心。并且我们学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物,且希望通过这次的实践操作可以让我更好地学习vb程序设计。参考文献1黄同成,周红波程序设计基础教程(C语言)M湖南人民出版社,20212黄同成,黄磊程序设计实践教程(C语言)M湖南人民出版社,20213谭浩强C程序设计(第三版)M北京:清华大学出版社,2021 致 谢本课程设计报告是在的成娅辉老师悉心指导下完成的,老师严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在设计报告的撰写及整理期间,

13、老师给了我很大的讲解与帮助,才使得报告得以顺利的完成,在此谨向老师表示忠心的感谢和崇高的敬意。同时还要感谢祝定磊,陈小云等同学,他们在我迷惑的也给了我很大的支持和帮助。感谢我的室友们,我一生都不会忘记。 最后感谢我的家人,养育之恩,无以回报。我将用自己最大的努力给你们欣慰。 公司印章管理制度一、目的 公司印章是公司对内对外行使权力的标志,也是公司名称的法律体现, 因此,必须对印章进行规范化、合理化的严格管理,以保证公司各项业务的正常运作,由公司指定专人负责管理。二、印章的种类1、 公章,是按照政府规定,由主管部门批准刻制的代表公司权力的印章。2、 专用章,为方便工作专门刻制的用于某种特定用途的

14、印章,如:合同专用章、财务专用章、业务专用章、仓库签收章等。 3、手章(签名章),是以公司法人代表名字刻制的用于公务的印章。三、印章的管理规定1、 印章指定专人负责保管和使用,保管印章的地方(桌、柜等)要牢固加锁,印章使用后要及时收存。2、 财务专用章由财务部负责保管,向银行备案的印章,应由财务部会计、总经办分别保管。 3、印章要注意保养,防止碰撞,还要及时清洗,以保持印迹清晰。4、一般情况下不得将印章携出公司外使用,如确实因工作所需,则应由印章管理员携带印章到场盖章或监印。 5、印章管理人员离职或调任时,须履行印章交接手续。四、公章刻制印章需本公司法人代表批准,并由印章管理专责人负责办理刻制并启用并交由专人进行保管。 五、印章的使用1、 使用任何的印章,需由相应负责人审核签字。为方便工 作,总经理可授权印章管理专责人审核一般性事务用印。2、 用印前印章管理人员须认真审核,明确了解用印的内容和目的,确 认符合用印的手续后,在用印登记簿上逐项登记,方可盖章。 3、对需要留存的材料,盖印后应留存一份立卷归档。 4、不得在空白凭证、便笺上盖章。 5、上报有关部门的文件资料,未经部门经理、总经理审签,不得盖章。

温馨提示

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

评论

0/150

提交评论