1、 计算机科学与工程系201X年9月一、设计目的3二、设计内容4三、概要设计5四、详细设计6五、测试数据和运行结果9六、调试情况,设计技巧及体会12七、参考文献13八、附录13九、文件输入输出14一、设计目的1)通过课程设计加深结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2)通过课程设计进一步掌握c语言中重要的的、数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3)通过课程设计提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4)通过课程设计培养c语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一
2、个小型系统。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 74、涉及知识点:变量的定义,输入输出函数,if结构,for循环结构,数组,变量的自加和自减等等;三、概要设计1、功能模块图:2、模块详细的功能描述。四、详细设计1、数据流程图3、
3、重点设计及编码。#include # define N 100# define M 100void main()int n,m;int pNM,i=0,j=0;int num = 1;int t;scanf(%d%d,&n,&m);for (t = 0; t (float)n / 2); t+) /t表示圈数 for (; j n - t; j+) /行数不变,方阵的值随着列数的增加而增加(1,2,3,4,5)(17,18,19)(25) pij = num+;j-;i+; i = t; j-) /行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23)j+; it; i
4、-) /列数不变,方阵的值随着行数的减少而减(14,15,16)(24)for (i = 0; n; i+)for (j = 0; m; j+)printf(%5d,pij);n);五、测试数据及运行结果1、正常测试数据及运行结果当N为4时,数据如下:当N为10时,数据如下:2、非正常测试数据及运行结果没有按四个一行输出:2调试情况,设计技巧及体会1对自己的设计进行评价,指出合理和不足之处,提出改进方案;螺旋结构:在我设计的螺旋方阵程序中参考了一些资料,包括网上的一些题型,然后根据我自己的先想法改的,首先我认为我的程序有一些不足之处,第一:程序比较长,在设计过程中容易出现错误,而且出现错误后不
5、易改动,有时候一点小错误要改好多语句;第二:如果运行我的程序你会发现这个程序只适用于本题,当把N改成其他数时程序输出就会有错误。 改进方案:将几个for循环结果合并或利用调用函数的方式减少程序中的语句,使程序简介方便;参考网上的答案修改程序使程序适用于任意一个数值。1对设计及调试过程的心得体会。当看到课程设计题目时,第一感觉就是题目很繁琐,需要用到很多的知识点,总的来说,有点难。当设计螺旋方阵时,第一想法就是按照顺序依次输出,后来想了想,这样仅适合用于简单几阶方阵,当换成其它较大阶的时候程序就会出现错误,然后就参考了一下网上的答案,看了之后有了思路再自己设计程序,尽管自己设计的程序比较长而且有
6、局限性,但是还是很欣慰的,在这个过程中我遇到了很多以前没考虑过或没想明白的问题,如+i和i+的关系;而在调试过程中也出现了一些情况,比如:变量的定义类型不符;if结果后面有多条语句;for 循环结构的“)”后面加了一个分号,虽然没语法错误却运行部出来;以及半全角符号等一些。心得体会:经过一周的程序设计,基本掌握程序设计的基本方法和步骤。而且我明白设计程序要先读懂题目的要求及目的,看懂以后才能着手去设计程序,在设计过程中必须要有一个详细的思路,学会把一个问题分成各个部分设计,一定要有自己的设计理念、设计思想,也可以说是中心思想;而且要敢于尝试,敢于创新,参考别人的程序然后设计出含有自己理念的程序
7、,这样才能真正的掌握程序的编程理念和设计思想,我个人认为学会分析非常的重要,将一个程序分成几步,找出重复的地方,还有循环体,这样就会使问题变得容易一些。七、参考文献【1】新编C语言程序设计教程 周二强 编著 清华大学出版社【2】C语言程序设计 谭浩强 编著 清华大学出版社八、附录:源代码void main() int n,m; int pNM,i=0,j=0; int num= 1; int t; scanf( for (t = 0; t+) for (; j+) pij = num+; j-; i+; i+) i-; j-) j+; i-) for (i = 0; for (j = 0; printf( printf(九、文件输入输出原代码 FILE *fin, *fout; int num = 1; pij = num +; i-) /列数不变,方阵的值随着行数的减少而减少(14,15,16)(24) fin = fopen(in.txt, r fout = fopen(out.txtw fscanf(fin, fprintf(fout, fprintf(fout,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1