




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、· 河 南 城 建 学 院 Henan University of Urban Construction高级语言程序设计课程设计报告学 号: 姓 名: 专 业: 计算机科学与技术 题 目: 建立n阶螺旋方阵 指导老师: 设计时间: 计算机科学与工程系201X年9月目录一、 设计目的3二、 设计内容4三、 概要设计5四、 详细设计6五、 测试数据和运行结果9六、 调试情况,设计技巧及体会12七、 参考文献13八、 附录13九、 文件输入输出14一、 设计目的1) 通过课程设计加深结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2) 通过课程设计进一步掌握c语言中
2、重要的的、数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程设计提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程设计培养c语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程设计,加强了自己对程序分析的能力。6) 通过课程设计,培养自己在分析程序和设计程序的能力,学会怎么将困难的题目分步处理,7) 通过课程设计,检查自己在本学期的学习成果。二、 设计内容1、 题目:建立n阶螺旋方阵;2、 要求:在VC6.0+编译环境下,运用C语言完成课程设计;3、 目的:运用C语言输出螺
3、旋方阵; 螺旋方阵,输出如下: 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和数组pNM开始依 次 输 出 各 行 各 列 的 数 据既 aij 的 值 实 现 螺
4、旋 方 阵结束四、 详细设计1、数据流程图For循环结构for(i=0;i<N;+i)for循环结构for(; j < n - t; j+)For循环结构For(;i<n-t;i+)For循环结构For(;j>=t;j-)For循环结构For(;i>t;i-)For循环结构For(i=0;i<n;i+)For循环结构For(j=0;j<m;j+)Printf函数输出螺旋方阵3、 重点设计及编码。 #include <stdio.h># define N 100# define M 100void main()int n,m;int pNM,
5、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+;for (; i < n - t; i+) /列数不变,方阵的值随着行数的增加而增加(6,7,8,9)(20,21) pij = num+;j-; i-; for (; j >= t; j-)
6、 /行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23)pij = num+;j+; i-; for (; i>t; i-) /列数不变,方阵的值随着行数的减少而减(14,15,16)(24)pij = num+;j+;i+;for (i = 0; i < n; i+)for (j = 0; j < m; j+)printf("%5d",pij);printf("n");五、 测试数据及运行结果1、 正常测试数据及运行结果 当N为4时,数据如下:当N为10时,数据如下:2、非正常测试数据及运行结果 没有按四个一
7、行输出: 2 调试情况,设计技巧及体会1 对自己的设计进行评价,指出合理和不足之处,提出改进方案;螺旋结构:在我设计的螺旋方阵程序中参考了一些资料,包括网上的一些题型,然后根据我自己的先想法改的,首先我认为我的程序有一些不足之处,第一:程序比较长,在设计过程中容易出现错误,而且出现错误后不易改动,有时候一点小错误要改好多语句;第二:如果运行我的程序你会发现这个程序只适用于本题,当把N改成其他数时程序输出就会有错误。 改进方案:将几个for循环结果合并或利用调用函数的方式减少程序中的语句,使程序简介方便;参考网上的答案修改程序使程序适用于任意一个数值。1 对设计及调试过程的心得体会。当看到课程设
8、计题目时,第一感觉就是题目很繁琐,需要用到很多的知识点,总的来说,有点难。当设计螺旋方阵时,第一想法就是按照顺序依次输出,后来想了想,这样仅适合用于简单几阶方阵,当换成其它较大阶的时候程序就会出现错误,然后就参考了一下网上的答案,看了之后有了思路再自己设计程序,尽管自己设计的程序比较长而且有局限性,但是还是很欣慰的,在这个过程中我遇到了很多以前没考虑过或没想明白的问题,如+i和i+的关系;而在调试过程中也出现了一些情况,比如:变量的定义类型不符;if结果后面有多条语句;for 循环结构的“)”后面加了一个分号,虽然没语法错误却运行部出来;以及半全角符号等一些。心得体会:经过一周的程序设计,基本
9、掌握程序设计的基本方法和步骤。而且我明白设计程序要先读懂题目的要求及目的,看懂以后才能着手去设计程序,在设计过程中必须要有一个详细的思路,学会把一个问题分成各个部分设计,一定要有自己的设计理念、设计思想,也可以说是中心思想;而且要敢于尝试,敢于创新,参考别人的程序然后设计出含有自己理念的程序,这样才能真正的掌握程序的编程理念和设计思想,我个人认为学会分析非常的重要,将一个程序分成几步,找出重复的地方,还有循环体,这样就会使问题变得容易一些。 七、参考文献【1】新编C语言程序设计教程 周二强 编著 清华大学出版社【2】C语言程序设计 谭浩强 编著 清华大学出版社八、附录:源代码 # define
10、 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+) for (; j < n - t; j+) pij = num+;j-;i+;for (; i < n - t; i+) pij = num+;j-; i-; for (; j >= t; j-)pij = num+;j+; i-; for (; i>t; i-) pi
11、j = num+;j+;i+;for (i = 0; i < n; i+)for (j = 0; j < m; j+)printf("%5d",pij);printf("n");9、 文件输入输出原代码#include <stdio.h># define N 100# define M 100void main() FILE *fin, *fout;int n,m; int pNM,i=0,j=0; int num = 1; int t; scanf("%d%d",&n,&m);for (t =
12、 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+;for (; i < n - t; i+) /列数不变,方阵的值随着行数的增加而增加(6,7,8,9)(20,21) pij = num +;j-; i-; for (; j >= t; j-) /行数不变,方阵的值随着列数的减少而减少(10,11,12,13)(22,23)pij = num +;j+; i-; for (; i&g
13、t;t; i-) /列数不变,方阵的值随着行数的减少而减少(14,15,16)(24)pij = num +;j+;i+;for (i = 0; i < n; i+)for (j = 0; j < m; j+)printf("%5d",pij);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 < n - t; j+) /行数不变,方阵的值随着列数的增加而增加(1,2,3,4,5)(17,18,19)(25) pij = num +;j-;i+;for (; i < n - t; i+) /列数不变,方阵的值随着行数的增加而增加(6,7,8,9)(20,21) pij = num +;j-; i-; for (; j >= t; j-) /行数不变,方阵的值随着列数的减少而减少(10,11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025党支部与文化单位共建文化活动合作协议书范本
- 2025法院版离婚协议书标准文本与婚姻家庭法律援助手册
- 2025年个人住宅产权转让合同文本
- 2025年度电机产品在线监测与故障诊断服务合同
- 2025补充协议书格式:房地产租赁补充协议范本
- 2025年度户外广告设施维修简易施工合同
- 2025版限购政策下商品房预售合同模板下载
- 2025年度家庭用车租赁合作协议书
- 2025年度网络设备租赁与网络安全保障合同
- 2025年商业地产拆迁赔偿合同范例
- 2025重庆市璧山区辅警考试试卷真题
- 早教老师笔试题目及答案
- 新疆水利面试试题及答案
- 工程挂靠免责协议书
- 风电并购协议书
- (重庆康德三诊)2025年重庆市高三第三次联合诊断检测生物试卷(含答案解析)
- 机油商店转让协议书
- 数据结构应用试卷汇编
- 滤波电路课件
- 老年护理学教案
- 《考研英语:综合能力提升教程(新版)》配套课件-阅读理解
评论
0/150
提交评论