c语言课程设计魔方阵,《C语言程序课程设计报告书-魔方阵程序设计》.doc

《C语言程序课程设计报告书-魔方阵程序设计》

吉林工程技术师范学院

《C语言程序》课程设计报告书

设计题目: 魔方阵程序设计

专 业: 计算机科学与技术 班级: 1054

学生姓名: 学号: 21

指导教师:xx

2011年1月

信息工程学院

摘 要

我的实验题目是对C语言程序设计——魔方阵的编写,主要的功能是实现每一行,每一列以及对角线的相加结果相同,而且每一个数字均不相等。

本次实验能够充分的考核我们对C语言的学习程度以及动手操作能力,对我们提高C语言的能力有极大的帮助,所以这次实验也是十分有必要的。

我的设计内容就是利用循环语句,以及判断条件等函数的合理使用,通过不断的运行,调试,输出,对本程序进行合理的解决,对魔方阵进一步的了解掌握。

关键字:C语言 魔方阵 程序设计

目 录

摘 要

第章 第章 分析2.1 技术分析2.2 功能分析第章 总体设计与详细设计第章 编码实现第章 调试总结参考资料附录:

1源代码2 附图14

概述

本次实验报告十分有意义,对巩固C语言的学习有很大的帮助。

作用:我的实验课题是魔方阵(魔方阵是一个奇数行列式方一行,一列,对角线的和都相等

第2章 系统分析

2.1 技术分析

我设计的程序从魔方阵的判断语句入手,利用循环语句进行判断,利用scanf输入函数对数据进行输入,然后对输入的数据进行判断,在利用If,else语句进行判断,然后利用循环语句进行循环,建立魔方,判断数据的位置,最后进行输出。

软件系统采用Turbo C2.0作为题目的设计平台,在这个平台上进行程序的调试。

2.2 功能分析

我设计的程序包括的功能有很多,主要是数据的输入,判断,建立魔方,判断条件,输入魔方等功能。

本程序能够对C语言的知识得到合理的运用,对语句的判断是一个极大的考核,也能锻炼我的思维能力,逻辑能力,动手能力等。

通过本次实验;对于提高C语言函数,语句以及程序的编写都有极大的帮助。

第3章 总体设计与详细设计

3.1 系统总体设计

就是使用模块化思维方法分析课题,画出模块结构图。可采取自顶向下、逐层分解的方法,将课题分成有若干个模块,然后对各模块重点和难点内容进行分析,最终各个击破。

1.设计流程图

系统总体结构图如3-1所示。

以输入“3”输出为例:

图3-1 总体设计流程图

2.包含的功能

本系统包括了数据的输入,运行,判断,调试,输出等功能。

3.2 详细设计

# include

void main()

{int a[16][16],i,j,k,p,n; // 一堆定义

p=1;

while(p==1) // p 是一个标志,专门用来控制何时跳出while

{

printf("enter n:"); //读入一个整数到n 就是幻方的阶数。

scanf("%d",&n);

if ((n!=0)&&(n<=15)&&(n%2!=0))

p=0; //如果输入的数>=1 且<=16 且是奇数,就跳出while,继续以下计算。

//如果不满足以上条件就死循环。

}

for (i=1;i<=n;i++)

for (j=1;j<=n;j++)

a[i][j]=0; 将矩阵中的1~n*1~n的范围内清0.

i=1;

j=n/2+1;

a[i][j]=1;

i=1; // 开始填1,在第一行的中间

for (k=2;k<=n*n;k++)

{

i=i-1;j=j+1;

// 依次填 2,3......一直到填满

// 规则是当前数填在上个数的右上。

if ((i<1)&&(j>n))

{i=i+2;j=j-1;

}

// 但是如果到达矩阵的最右上时,要改为

// 填在最右上的下边一格。

else

{

if ( i<1 ) i=n;

// 如果上一个数在最右边界,

// 那么当前数的X坐标设成最左边。

// 好像一个席子卷起来,左边和右边相接。

// 最右边填完了就接到最左边继续填

if ( j>n ) j=1;

// 纵向方向同理 }

If (a[i][j]==0)

a[i][j]=k;

如果当前没有数,就填入

else

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值