螺旋方阵.docx
- 文档编号:25322666
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:9
- 大小:58.82KB
螺旋方阵.docx
《螺旋方阵.docx》由会员分享,可在线阅读,更多相关《螺旋方阵.docx(9页珍藏版)》请在冰豆网上搜索。
螺旋方阵
沈阳航空工业学院
课程设计
学号2008040201083
班级84020103
姓名张天昊
指导教师尹航
2009年9月11日
沈阳航空工业学院
课程设计任务书
电子信息工程学院电子信息工程专业84020103班2008040201083
一、课程设计题目:
螺旋方阵
二、课程设计工作自2009年9月7日起至2009年9月11日止
三、课程设计内容:
用C语言编写程序完成以下任务:
下面是一个5阶的螺旋方阵。
编写程序打印此形式的n(n<10)阶的方阵。
116151413
217242312
318252211
419202110
56789
注:
可以连续选择n的值,直到选择退出命令。
要求,将阶数和方阵都保存在文件data.txt中
四、课程设计要求:
1.贯彻结构化程序设计思想。
2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3.用户界面中的菜单至少应包括“阶数选择并打印”、“退出”2项。
4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。
指导教师:
学生签名:
五、成绩:
六、教师评语:
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段4
四、个人总结6
五、参考文献7
六、源程序7
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为3个模块,分别为是否运行程序;选择计算的数字;显示计算的结果。
1、是否运行程序主要实现对程序的运行与停止功能;
2、选择计算的数字进行计算的前提,当数字符合要求时开始计算;
3、显示计算的结果并把程序存在文件中。
程序中不足的是运行完一次后无法清空屏幕。
也许是知识有限,如果能有函数执行清空屏幕的任务就更完美了。
课设要求要有阶数选择并打印”、“退出”两项因此必须进行第一步骤
二、程序流程图
1、程序总体框架图
输入k的值
k不符合要求
k=2
k=1
重新输入结束输入n的值
n>10||n<0
1 重新输入进行运算 假N是否为基数真 结束 计算a[n/2][n/2]的数值 结束 2、运算函数的框架图 三、核心技术的实现说明及相应程序段 本程序主要由一个运算函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。 在这2个函数当中,运算函数是程序中较为核心的部分,下面分别进行说明。 1、主函数; 主函数的作业主要是控制函数的开始或结束,以switch语句来实现,分为3个支路: 选择1进行运算程序;2结束程序;否则选择回到起始从新选择 voidmain() { intk;intt=1; while(t==1) {。 printf("\t\tPleaseinputyourchoose: "); scanf("%d",&k); switch(k) {case1: fun();break; case2: t=2;break; default: printf("ErrorInput! \n"); } } } 2、运算函数: 运算前先定义一个2维数组,该数组的目的是实现输出数字的2维分布成螺旋状。 实现螺旋是运算的主要任务: “从a[0][0]纵向输入到a[0][n-2](即第一行的倒数第2个数),再从a[0][n-1]输入到a[n-2][n-1],再从a[n-1][n-1]输入到a[n-1][1],最后从a[n-1][0]输入到a[1][0]”此为第一个循环n=0时,后n=1,即去掉最外圈的数,以第2行第2列为起始再次进行上述循环,居然是螺旋状,就有可能出现2种情况,及n为奇数和n为偶数时。 当n为偶数时,正好当i voidfun() { inta[N][N];/*定义一个2维数组*/ inti,j,s=1,n; printf("请输入阶数n(1 scanf("%d",&n);/*输入N的值*/ while(n>10||n<0) {printf("ErrorInput! \n"); scanf("%d",&n);} for(i=0;i { for(j=i;j for(j=i;j for(j=n-i-1;j>i;j--){a[n-i-1][j]=s;s++;}/*最后一横行的数*/ for(j=n-i-1;j>i;j--){a[j][i]=s;s++;} }/*第一纵行的数*/ if(n%2==1)a[n/2][n/2]=s;/*如果N为奇数,中心位置的数无法从上程序中得出*/ for(j=0;j {for(i=0;i } 四、个人总结 这次课设开始让我很迷茫,不知道怎样表示出螺旋阵。 借鉴了高年级同学的输出方阵的程序后,豁然开朗,原来C语言也是这么的讲究逻辑性。 再在头尾添加了些自己的东西后,才感觉程序比较完美了。 五、参考文献 1姚合生等.C语言程序设计.: 清华大学出版社,2008 六、源程序 #include #include #defineN10 voidfun(); voidmain() { intk;intt=1; while(t==1) { printf("\t\t************************************************\n"); printf("\t\t*********1.阶数选择并打印*****************\n"); printf("\t\t*********2.退出*****************\n"); printf("\t\t************************************************\n"); printf("\t\tPleaseinputyourchoose: "); scanf("%d",&k); switch(k) {case1: fun();break; case2: t=2;break; default: printf("ErrorInput! \n"); } } } voidfun() {FILE*fp; inta[N][N]; inti,j,s=1,n; printf("请输入阶数n(1 scanf("%d",&n); while(n>9||n<1) {printf("ErrorInput! \n"); scanf("%d",&n);} for(i=0;i { for(j=i;j for(j=i;j for(j=n-i-1;j>i;j--){a[n-i-1][j]=s;s++;} for(j=n-i-1;j>i;j--){a[j][i]=s;s++;} } if(n%2==1)a[n/2][n/2]=s; for(j=0;j {for(i=0;i fp=fopen("d: \\data.txt","w"); for(j=0;j {for(i=0;i fprintf(fp,"%d",a[j][i]); fprintf(fp,"\n"); } fclose(fp); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 螺旋 方阵