完整版C语言毕业课程设计矩阵的构造与打印.docx

上传人:b****5 文档编号:6827419 上传时间:2023-01-10 格式:DOCX 页数:12 大小:223.19KB
下载 相关 举报
完整版C语言毕业课程设计矩阵的构造与打印.docx_第1页
第1页 / 共12页
完整版C语言毕业课程设计矩阵的构造与打印.docx_第2页
第2页 / 共12页
完整版C语言毕业课程设计矩阵的构造与打印.docx_第3页
第3页 / 共12页
完整版C语言毕业课程设计矩阵的构造与打印.docx_第4页
第4页 / 共12页
完整版C语言毕业课程设计矩阵的构造与打印.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

完整版C语言毕业课程设计矩阵的构造与打印.docx

《完整版C语言毕业课程设计矩阵的构造与打印.docx》由会员分享,可在线阅读,更多相关《完整版C语言毕业课程设计矩阵的构造与打印.docx(12页珍藏版)》请在冰豆网上搜索。

完整版C语言毕业课程设计矩阵的构造与打印.docx

完整版C语言毕业课程设计矩阵的构造与打印

《C语言》

课程设计报告

标题:

矩阵的构造与打印

学号:

姓名:

同组人员:

年级专业:

09电子信息工程

指导老师:

完成日期:

目录

一、选题思想

二、课题要求

三、课题分析与设计

四、具体分工

五、源程序代码与调试

六、流程图

七、总结

八、参考文献

九、评定意见

 

一、选题思想

通过对线性代数与C语言课程相关知识的学习,产生了用计算机知识方便快捷地去处理简单数据结构的想法,并进行了相关的设计构想。

通过本课题的锻炼,增强对所学知识的理解及相关知识贯通的运用,提升了自我学习实践的兴趣与能力!

二、课题要求

(1)矩阵为n阶方阵,n由键盘输入;

(2)可在螺旋方阵和蛇形方阵中选择(如下图所示)。

三、课题分析与设计

本程序的设计要充分运用所学知识函数调用,二维数组,内存的动态分配,指针等进行设计,问题的关键在于如何进行矩阵的“转向”在螺旋矩阵设计中通过记录(计数器)控制每行的数的数目和转向,实现行列互换,“层层推进”,根据n的奇偶定出最后一位数(即n!

)的具体位置,从而实现数的螺旋循环。

在蛇形矩阵中通过行列坐标之和的递增规律,以对角线元素行列坐标之和为界,通过坐标和的奇偶互换行列坐标从而实现“转向”。

通过判断数n与对角线元素坐标和的大小,跨过“对角线”,进行类似操作即可。

四、具体分工

在程序的设计过程中进行了明确的分工与合作,第一部分螺旋矩阵的设计由王一朝完成,第二部分蛇形矩阵的设计由王艳辉完成。

五、源程序代码与调试

1.源程序代码

#include

{

inta,n,*w,p,g,j;

int*wyz(intn);

intwyh(intn);

intmenu();

j=menu();

if(j==1)exit(0);

else

{clrscr();

printf("pleasechoose1or2:

1forspialmatrix,2forserpentmatrix:

");

scanf("%d",&a);

if(a==1)

{printf("pleaseentern");

scanf("%d",&n);

w=wyz(n);

for(p=1,g=0;g<=n*n-1;g++,p++)

{

printf("%4d",w[g]);

if(p%n==0){printf("\n");printf("\n");printf("\n");}}}

else

wyh(n);

}

}

intmenu()

{

inti;

clrscr();

textcolor(85);

gotoxy(9,10);

cprintf("welcometousingoursoftware\n");

gotoxy(9,11);

cprintf("**************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("PleaseEnterYourChoice<1~2>:

");

scanf("%d",&i);

return(i);

}

int*wyz(intn)

{

int*str,i,j,b,k,q,m,z,r,p,g,sum,max,*n;

str=(int*)malloc(max+max);

for(q=0,j=1,b=0,z=i=n-1,g=0;sum

{

for(m=q;m<=i-b;m++,j++)

str[m+b*n]=j;

for(m=m-1,r=1+b;r<=n-1-b;j++,r++)

str[r*n+m]=j;

for(r=r-1,m=m-1;m>=b;j++,m--)

str[r*n+m]=j;

for(m=m+1,r=r-1;r>=b+1;j++,r--)

str[r*n+m]=j;

g=4*(z+1)-4;

sum=sum+g;

}

if(n%2!

=0)str[max2]=n*n;

return(str);

}

intwyh(intn)

{

intj,k,c,m=1,x,y;

inta[100][100];

printf("Inputn:

");

do

{

scanf("%d",&n);

}while(n<1||n>10);

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)

a[k][j]=m++;

else

a[j][k]=m++;

}

}

}

else

for(k=0;k<=n-1;k++)

{

for(j=0;j<=n-1;j++)

{

if(k+j==c)

{

if(c%2==0)

a[k][j]=m++;

else

a[j][k]=m++;

}

}

}

}

clrscr();

for(k=0;k

{

for(j=0;j

printf("%4d",a[k][j]);

printf("\n");

printf("\n");

printf("\n");

}

}

2.调试

在运行程序后,我们就进入了选择界面。

作为使用者,他可以考虑是否使用我们的程序。

运行结果如下:

当决定你的选择后,可按上述提示键入1或2.键入以后出现下面的界面。

在这个界面下,可以考虑是使用蛇形矩阵还是使用螺旋形矩阵?

当选择1(即螺旋形矩阵)得到的结果如下

这是可以选择输入的矩阵的阶数如果输入6,运行结果如下:

如果在这次使用中不用螺旋形矩阵可以选择使用蛇形矩阵,运行结果如下:

同样此时可以键入数字,例如5:

六、流程图

蛇形矩阵伪代码如下:

Inputthenumbern

n取值范围:

1

m=1

三重循环

在c<=(n-1)中

c=0,k=0,j=0

k+j=0+0=c

c能被2整除

a[0][0]=m=1

c=1,k=0,j循环

j=0,不满足k+j=c,pass

j=1,满足k+j=c

c=1不能被2整除,交换数组行列坐标

a[1][0]=m++=2

c=1,k=1,j=0满足k+j=c

c=1不能被2整除,交换数组行列坐标

a[0][1]=m++=3

c=2,k=0时,j循环

j=0,1时,不满足k+j=c,pass

j=2,满足k+j=c

c能被2整除

a[0][2]=m++=4

k=1时,j=0不满足k+j=c,pass

j=1时,满足k+j=c

a[1][1]=m++=5

k=2时,j=0满足k+j=c

a[2][0]=m++=6

当c>(n-1)时

c=n,k=0,j循环

j=0,不满足k+j=c,pass

j=1,不满足k+j=c,pass

j=n-1,满足k+j=c

判断c能否被2整除,确定交不交换行列坐标

a[k][j]=m++或a[j][k]=m++

k=2,j循环(同上)

k=n-1,j=0,满足k+j=c

判断c能否被2整除,确定交不交换行列坐标

a[k][j]=m++或a[j][k]=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整除

a[n-1][n-1]=m++=n!

七、总结

通过此次课题的设计,使我们对所学知识特别是数组、指针、函数的调用技巧等有了更加充分的认识与理解,在设计调试过程过程中,也得到了指导老师的许多有益意见与指导,使自己受益匪浅。

设计中充分发挥自己在不同方面的优势进行了分工合作,在相互沟通与交流的努力下成功完成了本次课程的设计工作。

八、参考文献

1.谭浩强,C程序设计(第三版)。

北京:

清华大学出版社,2005年

2.赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年

3.夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年

4.谭浩强编著,《C程序设计》,清华大学出版社,1991年

5.GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006.

6.AlKelley,IraPohl,ABookonC:

ProgramminginC(FourthEdition),ChinaMachinePress,2004.

7.BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006.

8.KochanSG著。

ProgramminginANSIC。

HagdenBooksIndianapolis:

Indiana,U.S.A,1994

9.BeitelHM,DeitelPJ.CHowtoprogram.secondEdition.蒋才鹏等译。

C程序设计教程。

北京:

机械工业出版社,2000

九、评定意见

指导教师评语

主要内容包括:

设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。

成绩:

     签名:

           年 月 日

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1