建立n阶螺旋方阵高级语言程序设计 课程设计Word文档格式.docx
《建立n阶螺旋方阵高级语言程序设计 课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《建立n阶螺旋方阵高级语言程序设计 课程设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
计算机科学与工程系
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<
stdio.h>
#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<
n-t;
j++)//行数不变,方阵的值随着列数的增加而增加(1,2,3,4,5)(17,18,19)(25)
p[i][j]=num++;
j--;
i++;
i<
i++)//列数不变,方阵的值随着行数的增加而增加(6,7,8,9)(20,21)
i--;
j>
=t;
j--)//行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23)
j++;
i>
t;
i--)//列数不变,方阵的值随着行数的减少而减(14,15,16)(24)
}
for(i=0;
n;
i++)
for(j=0;
m;
j++)
printf("
%5d"
p[i][j]);
\n"
);
五、测试数据及运行结果
1、正常测试数据及运行结果
当N为4时,数据如下:
当N为10时,数据如下:
2、非正常测试数据及运行结果
没有按四个一行输出:
2调试情况,设计技巧及体会
1.对自己的设计进行评价,指出合理和不足之处,提出改进方案;
螺旋结构:
在我设计的螺旋方阵程序中参考了一些资料,包括网上的一些题型,然后根据我自己的先想法改的,首先我认为我的程序有一些不足之处,第一:
程序比较长,在设计过程中容易出现错误,而且出现错误后不易改动,有时候一点小错误要改好多语句;
第二:
如果运行我的程序你会发现这个程序只适用于本题,当把N改成其他数时程序输出就会有错误。
改进方案:
将几个for循环结果合并或利用调用函数的方式减少程序中的语句,使程序简介方便;
参考网上的答案修改程序使程序适用于任意一个数值。
1.对设计及调试过程的心得体会。
当看到课程设计题目时,第一感觉就是题目很繁琐,需要用到很多的知识点,总的来说,有点难。
当设计螺旋方阵时,第一想法就是按照顺序依次输出,后来想了想,这样仅适合用于简单几阶方阵,当换成其它较大阶的时候程序就会出现错误,然后就参考了一下网上的答案,看了之后有了思路再自己设计程序,尽管自己设计的程序比较长而且有局限性,但是还是很欣慰的,在这个过程中我遇到了很多以前没考虑过或没想明白的问题,如++i和i++的关系;
而在调试过程中也出现了一些情况,比如:
变量的定义类型不符;
if结果后面有多条语句;
for循环结构的“)”后面加了一个分号,虽然没语法错误却运行部出来;
以及半全角符号等一些。
心得体会:
经过一周的程序设计,基本掌握程序设计的基本方法和步骤。
而且我明白设计程序要先读懂题目的要求及目的,看懂以后才能着手去设计程序,在设计过程中必须要有一个详细的思路,学会把一个问题分成各个部分设计,一定要有自己的设计理念、设计思想,也可以说是中心思想;
而且要敢于尝试,敢于创新,参考别人的程序然后设计出含有自己理念的程序,这样才能真正的掌握程序的编程理念和设计思想,我个人认为学会分析非常的重要,将一个程序分成几步,找出重复的地方,还有循环体,这样就会使问题变得容易一些。
七、参考文献
【1】《新编C语言程序设计教程》周二强编著清华大学出版社
【2】《C语言程序设计》谭浩强编著清华大学出版社
八、附录:
源代码
voidmain()
intn,m;
intp[N][M],i=0,j=0;
intnum=1;
intt;
scanf("
for(t=0;
t++)
{
for(;
j++)
p[i][j]=num++;
j--;
i++;
i++)
i--;
j--)
j++;
i--)
}
for(i=0;
{
for(j=0;
{
printf("
}
printf("
九、文件输入输出
原代码
FILE*fin,*fout;
intnum=1;
p[i][j]=num++;
i--)//列数不变,方阵的值随着行数的减少而减少(14,15,16)(24)
fin=fopen("
in.txt"
"
r"
fout=fopen("
out.txt"
w"
fscanf(fin,"
fprintf(fout,"
fprintf(fout,"