C语言课程设计矩阵的构造与打印

上传人:仙*** 文档编号:96948200 上传时间:2022-05-26 格式:DOC 页数:21 大小:279KB
收藏 版权申诉 举报 下载
C语言课程设计矩阵的构造与打印_第1页
第1页 / 共21页
C语言课程设计矩阵的构造与打印_第2页
第2页 / 共21页
C语言课程设计矩阵的构造与打印_第3页
第3页 / 共21页
资源描述:

《C语言课程设计矩阵的构造与打印》由会员分享,可在线阅读,更多相关《C语言课程设计矩阵的构造与打印(21页珍藏版)》请在装配图网上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! C 语 言 课程设计报告 标题:矩阵的构造与打印学号: 姓名: 同组人员: 年级专业:09电子信息工程指导老师: 完成日期:2010/6/24目录一、选题思想二、课题要求三、课题分析与设计四、具体分工五、源程序代码与调试 六、流程图七、总结八、参考文献九、评定意见一、选题思想通过对线性代数与C语言课程相关知识的学习,产生了用计算机知识方便快捷地去处理简单数据结构的想法,并进行了相关的设计构想。通过本课题的锻炼,增强对所学知识的理解及相关知识贯通的运用,提升了自我学习实践的兴趣与能力!二、课题要求(1)矩阵为n阶方阵,n由键盘输入;(2) 可在螺旋

2、方阵和蛇形方阵中选择(如下图所示)。1234121314511161561098713410259116812157131416螺旋方阵蛇形方阵三、课题分析与设计 本程序的设计要充分运用所学知识函数调用,二维数组,内存的动态分配,指针等进行设计,问题的关键在于如何进行矩阵的“转向” 在螺旋矩阵设计中通过记录(计数器)控制每行的数的数目和转向,实现行列互换,“层层推进”,根据n的奇偶定出最后一位数(即n!)的具体位置,从而实现数的螺旋循环。在蛇形矩阵中通过行列坐标之和的递增规律,以对角线元素行列坐标之和为界,通过坐标和的奇偶互换行列坐标从而实现“转向”。通过判断数n与对角线元素坐标和的大小,跨过

3、“对角线”,进行类似操作即可。四、具体分工 在程序的设计过程中进行了明确的分工与合作,第一部分螺旋矩阵的设计由王一朝完成,第二部分蛇形矩阵的设计由王艳辉完成。五、源程序代码与调试1. 源程序代码#include#include#include#includevoid main() int a,n,*w,p,g,j; int *wyz(int n); int wyh(int n); int menu(); j=menu(); if(j=1) exit(0); else clrscr(); printf(please choose 1 or 2:1 for spial matrix,2 for s

4、erpent matrix:); scanf(%d,&a); if(a=1) printf(please enter n ); scanf(%d,&n); w=wyz(n); for(p=1,g=0;g=n*n-1;g+,p+) printf(%4d,wg); if(p%n=0) printf(n);printf(n);printf(n); else wyh(n); int menu()int i; clrscr(); textcolor(85); gotoxy(9,10); cprintf( welcome to using our software n); gotoxy(9,11); cp

5、rintf( *Menu*n); gotoxy(9,12); cprintf( * 1. use *n); gotoxy(9,13); cprintf( * 2. no *n); gotoxy(9,14); cprintf( *n); gotoxy(9,15); cprintf( Please Enter Your Choice:); scanf(%d,&i); return(i); int *wyz(int n) int *str,i,j,b,k,q,m,z,r,p,g,sum,max,h;clrscr(); sum=0; max=n*n; str=(int *)malloc(max+max

6、); for(q=0,j=1,b=0,z=i=n-1,g=0;sumn*n-1;b+,q+,z=z-2) for(m=q;m=i-b;m+,j+) strm+b*n=j; for(m=m-1,r=1+b;r=b;j+,m-) strr*n+m=j; for( m=m+1,r=r-1;r=b+1;j+,r-) strr*n+m=j; g=4*(z+1)-4; sum=sum+g; if(n%2!=0) strmax/2=n*n; return(str); int wyh(int n) int j,k,c,m=1,x,y; int a100100; printf(Input n: ); do sc

7、anf(%d,&n); while(n10); printf(n); for(c=0;c=(n-1)+(n-1);c+) if(c=n-1) for(k=0;k=c;k+) for(j=0;j=c;j+) if(k+j=c) if(c%2=0) akj=m+; else ajk=m+; else for(k=0;k=n-1;k+) for(j=0;j=n-1;j+) if(k+j=c) if(c%2=0) akj=m+; else ajk=m+; clrscr(); for(k=0;kn;k+) for(j=0;jn;j+) printf(%4d,akj); printf(n); printf

8、(n); printf(n); 2. 调试在运行程序后,我们就进入了选择界面。作为使用者,他可以考虑是否使用我们的程序。运行结果如下:当决定你的选择后,可按上述提示键入1或2.键入以后出现下面的界面。在这个界面下,可以考虑是使用蛇形矩阵还是使用螺旋形矩阵?。当选择1(即螺旋形矩阵)得到的结果如下这是可以选择输入的矩阵的阶数如果输入6,运行结果如下:如果在这次使用中不用螺旋形矩阵可以选择使用蛇形矩阵,运行结果如下:同样此时可以键入数字,例如5: 六、流程图No退出use/no1/2螺旋与蛇形选择1:运行子程序wyz2:运行子程序wyh(伪代码编写)q=0,j=1,b=0,z=i=n-1, g=0

9、sumn*n-1;m=qm=bstrm+b*n=j; m+,j+m=m-1,r=1+br=b+1strr*n+m=j j+,r-;g=4*(z+1)-4:sum=sum+g; sum=sum+g;蛇形矩阵伪代码如下:Input the number nn取值范围:1n10m=1三重循环在c(n-1)时c=n,k=0, j循环j=0, 不满足k+j=c,passj=1, 不满足k+j=c,pass、j=n-1,满足k+j=c判断c能否被2 整除,确定交不交换行列坐标akj=m+或ajk=m+k=2,j循环(同上)、k=n-1,j=0, 满足k+j=c判断c能否被2 整除,确定交不交换行列坐标ak

10、j=m+或ajk=m+c=n+1,k=0,j循环(同上)、c=2n-2,k=0,j循环(同上)k=1,2,、n-2,j循环(同上)k=n-1,j=0,1,2、n-2判断k+j=c是否成立,进行循环j=n-1,满足k+j=c,且c能被2 整除an-1n-1=m+=n!七、总结通过此次课题的设计,使我们对所学知识特别是数组、指针、函数的调用技巧等有了更加充分的认识与理解,在设计调试过程过程中,也得到了指导老师的许多有益意见与指导,使自己受益匪浅。设计中充分发挥自己在不同方面的优势进行了分工合作,在相互沟通与交流的努力下成功完成了本次课程的设计工作。八、参考文献1.谭浩强,C程序设计(第三版)。北京

11、:清华大学出版社,2005年 2.赵永哲,李雄飞,戴秀英编著,C语言程序设计,科学出版社,2003年 3.夏宽理,赵子正编著,C语言程序设计,中国铁道出版社,2006年 4.谭浩强编著,C程序设计,清华大学出版社,1991年 5.Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, 2006. 6.Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Ma

12、chine Press, 2004. 7.Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, China Machine Press, 2006. 8.Kochan S G著。Programming in ANSI C。Hagden Books Indianapolis:Indiana,U.S.A,19949.Beitel H M,Deitel P J.C How to program.second Edition.蒋才鹏等译。C程序设计教程。北京:机械工业出版社,2000九、评定意见指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。成绩: 签名: 年 月 日20 / 21

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

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

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


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