
建立n阶螺旋方阵_高级语言程序的设计_课程设计报告书.doc
21页下载可编辑 河 南 城 建 学 院 Henan University of Urban Construction《高级语言程序设计》课程设计报告学 号: 姓 名: 专 业: 计算机科学与技术 题 目: 建立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语言输出螺旋方阵; 螺旋方阵,输出如下: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 4、 涉及知识点:变量的定义,输入输出函数,if结构,for循环结构,数组,变量的自加和自减等等;三、 概要设计1、 功能模块图:输 入 数 据根据提示计算各个位上的数据用for循环结构进行计算计算结果后用for循环结构输出输出螺旋方阵2、 模块详细的功能描述。
利 用 for 循 环 结 构 输 出 每 一 列 利 用 for 循 环 结 构 输 出 每 一 行定义变量i,j,n,m,t,num和数组p[N][M]开始依 次 输 出 各 行 各 列 的 数 据既 a[i][j] 的 值 实 现 螺 旋 方 阵结束四、 详细设计1、数据流程图For循环结构for(i=0;i
改进方案:将几个for循环结果合并或利用调用函数的方式减少程序中的语句,使程序简介方便;参考网上的答案修改程序使程序适用于任意一个数值1. 对设计及调试过程的心得体会当看到课程设计题目时,第一感觉就是题目很繁琐,需要用到很多的知识点,总的来说,有点难当设计螺旋方阵时,第一想法就是按照顺序依次输出,后来想了想,这样仅适合用于简单几阶方阵,当换成其它较大阶的时候程序就会出现错误,然后就参考了一下网上的答案,看了之后有了思路再自己设计程序,尽管自己设计的程序比较长而且有局限性,但是还是很欣慰的,在这个过程中我遇到了很多以前没考虑过或没想明白的问题,如++i和i++的关系;而在调试过程中也出现了一些情况,比如:变量的定义类型不符;if结果后面有多条语句;for 循环结构的“)”后面加了一个分号,虽然没语法错误却运行部出来;以及半全角符号等一些心得体会:经过一周的程序设计,基本掌握程序设计的基本方法和步骤而且我明白设计程序要先读懂题目的要求及目的,看懂以后才能着手去设计程序,在设计过程中必须要有一个详细的思路,学会把一个问题分成各个部分设计,一定要有自己的设计理念、设计思想,也可以说是中心思想;而且要敢于尝试,敢于创新,参考别人的程序然后设计出含有自己理念的程序,这样才能真正的掌握程序的编程理念和设计思想,我个人认为学会分析非常的重要,将一个程序分成几步,找出重复的地方,还有循环体,这样就会使问题变得容易一些。
七、参考文献【1】《新编C语言程序设计教程》 周二强 编著 清华大学出版社【2】《C语言程序设计》 谭浩强 编著 清华大学出版社八、附录:源代码 # define N 100# define M 100void main() { int n,m; int p[N][M],i=0,j=0; int num= 1; int t; scanf("%d%d",&n,&m); for (t = 0; t < ((float)n / 2); t++) { for (; j < n - t; j++) p[i][j] = num++; j--; i++; for (; i < n - t; 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 < n; i++) { for (j = 0; j < m; j++) { printf("%5d",p[i][j]); } printf("\n"); }}9、 文件输入输出原代码#include
