建立n阶螺旋方阵高级语言程序设计课程设计.docx
- 文档编号:5899801
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:14
- 大小:192.77KB
建立n阶螺旋方阵高级语言程序设计课程设计.docx
《建立n阶螺旋方阵高级语言程序设计课程设计.docx》由会员分享,可在线阅读,更多相关《建立n阶螺旋方阵高级语言程序设计课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
建立n阶螺旋方阵高级语言程序设计课程设计
河南城建学院
HenanUniversityofUrbanConstruction
《高级语言程序设计》
课程设计报告
学号:
姓名:
专业:
计算机科学与技术
题目:
建立n阶螺旋方阵
指导老师:
设计时间:
计算机科学与工程系
201X 年 9月
一、设计目的……………………………………3
二、设计内容……………………………………4
三、概要设计……………………………………5
四、详细设计……………………………………6
五、测试数据和运行结果………………………9
六、调试情况,设计技巧及体会………………12
七、参考文献……………………………………13
八、附录…………………………………………13
九、文件输入输出………………………………14
一、设计目的
1)通过课程设计加深结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2)通过课程设计进一步掌握c语言中重要的的、数据结构。
掌握并熟练运用指针、链表、结构体、文件等数据结构。
3)通过课程设计提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4)通过课程设计培养c语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
5)通过课程设计,加强了自己对程序分析的能力。
6)通过课程设计,培养自己在分析程序和设计程序的能力,学会怎么将困难的题目分步处理,
7)通过课程设计,检查自己在本学期的学习成果。
二、设计内容
1、题目:
建立n阶螺旋方阵;
2、要求:
在VC6.0++编译环境下,运用C语言完成课程设计;
3、目的:
运用C语言输出螺旋方阵;
螺旋方阵,输出如下:
1234
1213145
1116156
10987
4、涉及知识点:
变量的定义,输入输出函数,if结构,for循环结构,数组,变量的自加和自减等等;
三、概要设计
1、功能模块图:
2、模块详细的功能描述。
四、详细设计
1、数据流程图
3、重点设计及编码。
#include
#defineN100
#defineM100
voidmain()
{
intn,m;
intp[N][M],i=0,j=0;
intnum=1;
intt;
scanf("%d%d",&n,&m);
for(t=0;t<((float)n/2);t++)//t表示圈数
{
for(;j p[i][j]=num++; j--; i++; for(;i p[i][j]=num++; j--; i--; for(;j>=t;j--)//行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23) p[i][j]=num++; j++; i--; for(;i>t;i--)//列数不变,方阵的值随着行数的减少而减(14,15,16)(24) p[i][j]=num++; j++; i++; } for(i=0;i { for(j=0;j { printf("%5d",p[i][j]); } printf("\n"); } } 五、测试数据及运行结果 1、正常测试数据及运行结果 当N为4时,数据如下: 当N为10时,数据如下: 2、非正常测试数据及运行结果 没有按四个一行输出: 2调试情况,设计技巧及体会 1.对自己的设计进行评价,指出合理和不足之处,提出改进方案; 螺旋结构: 在我设计的螺旋方阵程序中参考了一些资料,包括网上的一些题型,然后根据我自己的先想法改的,首先我认为我的程序有一些不足之处,第一: 程序比较长,在设计过程中容易出现错误,而且出现错误后不易改动,有时候一点小错误要改好多语句;第二: 如果运行我的程序你会发现这个程序只适用于本题,当把N改成其他数时程序输出就会有错误。 改进方案: 将几个for循环结果合并或利用调用函数的方式减少程序中的语句,使程序简介方便;参考网上的答案修改程序使程序适用于任意一个数值。 1.对设计及调试过程的心得体会。 当看到课程设计题目时,第一感觉就是题目很繁琐,需要用到很多的知识点,总的来说,有点难。 当设计螺旋方阵时,第一想法就是按照顺序依次输出,后来想了想,这样仅适合用于简单几阶方阵,当换成其它较大阶的时候程序就会出现错误,然后就参考了一下网上的答案,看了之后有了思路再自己设计程序,尽管自己设计的程序比较长而且有局限性,但是还是很欣慰的,在这个过程中我遇到了很多以前没考虑过或没想明白的问题,如++i和i++的关系;而在调试过程中也出现了一些情况,比如: 变量的定义类型不符;if结果后面有多条语句;for循环结构的“)”后面加了一个分号,虽然没语法错误却运行部出来;以及半全角符号等一些。 心得体会: 经过一周的程序设计,基本掌握程序设计的基本方法和步骤。 而且我明白设计程序要先读懂题目的要求及目的,看懂以后才能着手去设计程序,在设计过程中必须要有一个详细的思路,学会把一个问题分成各个部分设计,一定要有自己的设计理念、设计思想,也可以说是中心思想;而且要敢于尝试,敢于创新,参考别人的程序然后设计出含有自己理念的程序,这样才能真正的掌握程序的编程理念和设计思想,我个人认为学会分析非常的重要,将一个程序分成几步,找出重复的地方,还有循环体,这样就会使问题变得容易一些。 七、参考文献 【1】《新编C语言程序设计教程》周二强编著清华大学出版社 【2】《C语言程序设计》谭浩强编著清华大学出版社 八、附录: 源代码 #defineN100 #defineM100 voidmain() { intn,m; intp[N][M],i=0,j=0; intnum=1; intt; scanf("%d%d",&n,&m); for(t=0;t<((float)n/2);t++) { for(;j p[i][j]=num++; j--; i++; for(;i p[i][j]=num++; j--; i--; for(;j>=t;j--) p[i][j]=num++; j++; i--; for(;i>t;i--) p[i][j]=num++; j++; i++; } for(i=0;i { for(j=0;j { printf("%5d",p[i][j]); } printf("\n"); } } 9、文件输入输出 原代码 #include #defineN100 #defineM100 voidmain() { FILE*fin,*fout; intn,m; intp[N][M],i=0,j=0; intnum=1; intt; scanf("%d%d",&n,&m); for(t=0;t<((float)n/2);t++)//t表示圈数 { for(;j p[i][j]=num++; j--; i++; for(;i p[i][j]=num++; j--; i--; for(;j>=t;j--)//行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23) p[i][j]=num++; j++; i--; for(;i>t;i--)//列数不变,方阵的值随着行数的减少而减少(14,15,16)(24) p[i][j]=num++; j++; i++; } for(i=0;i { for(j=0;j { printf("%5d",p[i][j]); } printf("\n"); } fin=fopen("in.txt","r"); fout=fopen("out.txt","w"); fscanf(fin,"%d%d",&n,&m); for(t=0;t<((float)n/2);t++)//t表示圈数 { for(;j p[i][j]=num++; j--; i++; for(;i p[i][j]=num++; j--; i--; for(;j>=t;j--)//行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23) p[i][j]=num++; j++; i--; for(;i>t;i--)//列数不变,方阵的值随着行数的减少而减少(14,15,16)(24) p[i][j]=num++; j++; i++; } for(i=0;i { for(j=0;j { fprintf(fout,"%5d",p[i][j]); } fprintf(fout,"\n"); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 建立 螺旋 方阵 高级 语言程序设计 课程设计