c++课程设计报告幻方_第1页
c++课程设计报告幻方_第2页
c++课程设计报告幻方_第3页
c++课程设计报告幻方_第4页
c++课程设计报告幻方_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c+c+程序设计课程设计报告程序设计课程设计报告 选题名称选题名称: 幻方 系(院)系(院): 计 算 机 工 程 学院 专专 业业: 计算机科学与技术 班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 学年学期学年学期: 2010 2011 学年 第 1 学期 2010年 12 月 30 日 设计任务书设计任务书 课题课题 名称名称 幻方 设计设计 目的目的 1.调研并熟悉幻方的基本功能、数据流程与工作规程; 2.学习幻方的奇数、单偶数和双偶数幻方和基于 vc+集成环境的编程技术; 3.通过实际编程加深对基础知识的理解,提高实践能力; 4.学习开发资料的收集与整理,学会撰写课程设

2、计报告。 实验实验 环境环境 1.微型电子计算机(pc) ; 2.安装 windows 2000 以上操作系统,visual c+6.0 开发工具。 任务任务 要求要求 1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及 设计要求,注意材料收集与整理; 2.在第 15 周末之前完成预设计,并请指导教师审查,通过后方可进行下一 步工作; 3.本课题主要实现判断一个数是不是幻方,但判断这个数是奇数幻方还是 偶数幻方,偶数幻方也分成单偶数幻方和双偶数幻方。 4.结束后,及时提交设计报告(含纸质稿、电子稿) ,要求格式规范、内容 完整、结论正确,正文字数不少于 3000 字(不含代码)

3、 。 工作进度计划工作进度计划 序号序号起止日期起止日期工工 作作 内内 容容 12010.12.202010.12.20 在预设计的基础上,进一步查阅资料,完善设计方 案,形成书面材料。 22010.12.212010.12.22 设计总体方案,构建、绘制流程框图,编写代码, 上机调试。 32010.12.232010.12.24测试程序,优化代码,增强功能,撰写设计报告。 42010.12.252010.12.26 提交软件代码、设计报告,参加答辩,根据教师反 馈意见,修改、完善设计报告。 指导教师(签章):指导教师(签章): 年年 月月 日日 摘要: 所谓幻方,就是一个 n 行 n 列的

4、正方形,共有 n2个格子,将 1、2、3、n2 这些数字放到这些格子里,使其每行的和、每列的和及两条对角线的和都是一个相同 的数 s,s 称为幻和。当 n 为奇数时,称为奇数阶幻方,当 n 为偶数时,称为偶阶幻 方。当 n 可被 4 整除时,称方为双偶幻方。当 n 不可被 4 整除时,称为单偶幻方。多 少年来,许多数学家都在研究这个古老而有趣的问题,试图找出一般的解法,但一般 都是针对当 n 是奇数和 n 是 4 的倍数的情况。当 n 是奇数时的算法:首先,将 1 放在 第一行中间一个格子里。其次,依次将后一个数放到前一个数的右上格,如:将 2 放 到 1 的右上格。将放到的右上格等等。可能出

5、现下面的情况。若右上格从上面 超出,则将后一数放到与右上格同列的最后一行。若右上格从右面超出,则将后一 数放到与右上格同行的最后一列。若右上格既从右面超出又从上面超出,则将后一 数放到一数前一数的下面前一数的下面。若右上格已被数字填充,则将后一数放到 前一数的下面依以上法则,你可以很快的写出奇数阶幻方!当然,这种写法只是其中 一个答案,而不是唯一答案。 关键字:奇数幻方;单偶数幻方;双偶数幻方;循环;类的对象; 目目 录录 1 1 课题综述课题综述.4 1.1课题来源4 1.2预期目标5 1.3面对的问题5 1.4需解决的关键技术5 2 2 系统分析系统分析.6 2.1涉及的基础知识6 2.1

6、.1 头文件6 2.1.2 类与对象6 2.1.4 数组7 2.1.5 开关语句7 2.2解决问题的基本思路及总体方案8 2.3算法描述及功能模块框图8 2.3.1 奇数阶幻方(连续摆数法)8 2.3.2 双偶幻方(对称幻方)9 2.3.3 单偶幻方(斯特雷奇法)11 2.3.4 lux 方法 这是剑桥大学康韦教授发明的方法12 3 3 系统设计系统设计.13 3.1实现方法13 3.1.1 奇数阶幻方制作(连续摆数法)13 3.1.2 双偶幻方制作(对称法)13 3.1.3 单偶幻方制作(斯特雷奇法)13 3.2 流程图14 3.2.1 主函数14 3.2.2 奇数阶幻方15 4 4 代码编

7、代码编写写与注释与注释.15 5 5 程序调试程序调试.21 6 6 运行与测试运行与测试.21 总总 结结.25 致致 谢谢.26 参考文参考文 献献.27 1 1 课题综述课题综述 1.11.1 课题来源课题来源 幻方又称为魔方,方阵或厅平方,它最早起源于我国。宋代数学家杨辉称之为纵 横图。 所谓纵横图,它是由 1 到 n,这 n个自然数按照一珲的规律排列成 n 行、n 列的 一个方阵。它具有一种厅妙的性质,在各种几何形状的表上排列适当的数字,如果对 这些数字进行简单的逻辑运算时,不论采取哪一条路线,最后得到的和都是完全相同 的。 关于幻方的起源,我国有“河图”和“洛书”之说。相传在远古时

8、期,伏羲氏取 得天下,把国家治理得井井有条,感动了上天,于是黄河中跃出一匹龙马,背上驮着 一张图,作为礼物献给他,这就是“河图” ,伏羲氏凭借着“河图”而演绎出了八卦, 后来大禹治水时,咯水中浮出一只大乌龟,它的背上有图有字,人们称之为“洛书” 。 “洛书”所画的图中共有黑、白圆圈 45 个。把这些连在一起的小圆和数目表示出来, 得到九个。这九个数就可以组成一个纵横图,人们把由九个数 3 行 3 列的幻方称为 3 阶幻方,除此之外,还有 4 阶、5 阶. 后来,人们经过研究,得出计算任意阶数幻 方的各行、各列、各条对角线上所有数的和的公式为:n=1/2n(n2+1)其中 n 为幻方 的阶数,所

9、求的数为 n 幻方最早记载于我国公元前 500 年的春秋时期大戴礼中, 这说明我国人民早在 2500 年前就已经知道了幻方的排列规律。 我国不仅拥用幻方的发明权,而且是对幻方进行深入研究的国家。公元 13 世纪 的数学家杨辉已经编制出 310 阶幻方,记载在他 1275 年写的续古摘厅算法一 书中。在欧洲,直到 574 年,德国著名画家丢功绘制出了完整的 4 阶幻方。 如今幻方已应用于科学技术之中。如在“建路” 、 “爵当曲线” 、 “七座桥”中的运 用。幻方引出了拉普拉斯的导引系数和哥斯定理、格里定理、斯笃克 定理,还引出 了普生、布鲁汀两氏的电子方程式。幻方还引出了桑南的自动控制论,从而促

10、 成了 电子计算机的诞生,电脑有三个来源,即二进制(八卦)、算盘和幻方。 可见,幻方知识在我国很早就有,它的应用前景也相当广阔,通过电脑知识将幻 方付诸实践,也是时代的需要。通过对这一课题的学习与研究,对我们拓宽知识面与 实践能力的培养具有重要意义。 1.21.2 预期目标预期目标 幻方制作 = 1奇数阶幻方 2偶数阶幻方 请选择(请选择(1 或或 2,0:退出):退出): 图 1-1所示 1.31.3 面对的问题面对的问题 幻方是一个古老而又有趣的数学问题,要想解决它,首先要了解它的数学原理, 然后用 c+语言把它表示出来。我遇到的两个主要问题,也就随即产生了。一是幻方 复杂的数学原理;二是

11、对 c+语言的不熟悉。我接触 c+语言只有短暂的一学期,对 它的了解还是很肤浅的,而且我也是第一次接触课程设计这种作业,这就要求我要花 费大量的时间和精力去完成它。幻方制作方法有许多种,选取哪种制作方法才能使它 简单而又准确地表示出来?幻方制作不单单是针对某一阶幻方而言;更要求我们寻求 一种方法将抽象的理论转化为可操控的现实。 1.41.4 需解决的关键技术需解决的关键技术 对奇数阶幻方制作的连续摆数法在 c+语言中,要做到对所有情形描述的不重不 漏,需要很高思维严密性。而在适用于双偶幻方解法的对称法的程序代码编写时,如 何识别课程设计书上所描述的白格子及黄格子,可以通过对数组元素初值来解决。

12、为 了解决避免一些不必要的代码重复编写的问题,我们可以使用函数,通过对函数的调用 可以很好的解决这一问题。但在一些问题上,函数调用可能会受阻,如本课题中用斯 特雷奇法制作单偶数幻方时,在数据传递方面不得不放弃二维数组作为参数的方法, 而采用一维数组来代替,这样更增加了对各数组元素下标的深刻认识的重要性,需要 保持清醒的头脑。在整个程序代码中,类和对象的思想从始至终,所以我们必须对类 和对象的思想有着清晰地认识。 2 2 系统分析系统分析 2.12.1 涉及的基础知识涉及的基础知识 2.1.1 头文件 一般的输入输出需要包含,当用到 setw()时需要包含。 2.1.2 类与对象 类定义的一般格

13、式为: class 类名 成员表 1; 其中, “class 类名”称为类头;“”中的部分称为类体,类体中定义了类成员表。 成员包括数据成员和函数成员。 通常情况下,在类中只对成员函数做一个声明,而函数定义通常在类定义的外部进行, 其格式如下: 返回值类型 类名:函数名(参数表) 其中,运算符“:”称为域解析运算符,它指出该函数是属于某个类的成员函数。 2.1.3 for( )循环语句 for( )循环语句的一般格式为: for(;)s; 其中,三个表达式都可以是 c+中的任一符合语法规则的表达式;语句 s 可以是任一 c+的语句。同样地将语句 s 称为 for( )的内嵌语句,并把称为循环体

14、。 for( )语句的执行过程如下;首先计算“表达式 1”(循环初值),且仅计算一次。 每一次循环之前计算“表达式 2”(循环条件),如果其结果为真,则执行“语句”s, 并计算“表达式 3”(循环增量)。否则,循环终止。 2.1.4 数组 数组是相同类型的若干个元素所组成的有序集合。数组有一维数组与多维数组之 分,在程序中一维数组、二维数组都有使用。数组(array)是一种顺序容器, ,在 c+中多维数组在内存中的排列为按行方式。 多维数组的数组名代表数组中第一维(最高维)第一个元素(0 号元素)在内存 中的首地址。当数组作为函数的参数进行传递时,多维数组同样是将其第一维的第一 个元素的首地址

15、传递给函数。多维函数作为参数,最高维可以不写,但最低维必须明 确标出,这就限定了二维数组的构造 一维数组的定义格式为: 类型说明符 数组名常量表达式 1 ; 二维数组的定义格式为: 类型说明符 数组名常量表达式 1 常量表达式 2; “类型说明符“指定数组元素的类型, “数组名”的命名规则与变量一样,方括 号中的“常量表达式 1”代表了二维数组的行数, “常量表达式 2”代表了二维数组的 列数。行列下标都是从零开始,其最大下标均比常量表达式的值小 1。 2.1.5 开关语句 开关语句 switch 语句,它也称为多选择语句。它可以根据给定的条件,从多个 分支语句序列中选择执行一个分支的语句序列

16、。switch 语句的一般格式为: switch(表达式) case 常量表达式 1:语句; case 常量表达式 2:语句; case 常量表达式 n:语句; default:语句; switch 语句的执行过程如下:首先计算“表达式”的值,然后,其结果值依次与 每一个常量表达式的值进行匹配。如果匹配成功,则执行该常量表达式后的语句系列。 当遇到 break 时,则立即结束 switch 语句的执行,否则,顺序执行到花括 号的最后一 条语句。 default 情形是可选的,如果没有常量表达式的值与“表达式”的值匹配,则执行 default 的语句系列需要注意的是, “表达式”的值的类型必须是

17、字符型或整型。 在 switch 语句中用到了控制执行顺序的语句:break 语句。 break 语句的一般格式: break; 该语句只能用于 switch 语句或循环语句中,其功能是:第一;在 switch 语句中, 结束开关语句的执行,并把控制转移到该开关语句之后的第一条语句,且开始执行该 语句。第二;在循环语句中的作用是,跳出循环,并执行循环语句后的第一个语句。 2.22.2 解决问题的基本思路及总体方案解决问题的基本思路及总体方案 通过构造函数,即奇数阶幻方制作函数、单偶幻方制作函数、双偶幻方制作函数 及主函数。必要时可添加另外的函数。根据输入信息的不同,在主函数中调用不同的 函数,

18、输出预期的结果。 其中奇数阶幻方采用连续摆数法制作,双偶幻方采用对称法制作,单偶幻方采用 斯特雷奇法制作,通过打印函数,将其最后结果显示出来。 2.32.3 算法描述及功能模块框图算法描述及功能模块框图 2.3.1 奇数阶幻方(连续摆数法) 例:一个 55 格子,由最上面一行中间一格开始,依次填 1,2,3 等等。下一个格子 填在左上位置。但是要注意两点: 出了幻方的范围,右边接到左边,下边接到上边。 某一格右上已经有了数字,改填在这个格子的下面一格,然后延续前面的方 法。 17241815 23571416 46132022 101219213 11182529 图 2-1 所示 也不一定按

19、照斜上方写字,可以走马步,或其他方法。下面用的是马步,得到的 是泛对角幻方。 2.3.2 双偶幻方(对称幻方) 例:以 8 阶幻方为例。 第一步:在左上 44 格子中,取一半的格子,要求每行每列都取到 2 个。 如图 2-2 中阴影格子所示: 图 2-2 给格子涂上色 第二步:按照左右对称、上下对称、中心对称的方法把这 8 个格子扩充为 32 个格子。 如图 2-3 中的阴影格子所示: 范区 图 2-3 对称翻转 第三步:从左上角开始,从左到右从上到下,从 1 开始填数。不过只填没有选中的格 子(即没有阴影的格子) 。如图 2-4 所示: 2457 9111416 17192224 26282

20、931 34363739 41434648 49515456 58606163 图 2-4 为未上色数赋值 第四步:从右下角开始从右到左从下到上再选中的格子里填进刚才没有填的数字。 如图 2-5 所示: 642624559757 955115352145016 1747194544224224 4026382829353133 3234303637273925 4123432120461848 4915511312541056 858660613631 图 2-5 为上色数赋值 2.3.3 单偶幻方(斯特雷奇法) 例:设阶数 n=2(2m+1)=6,m=1。 第一步:把方阵分为 4 个小方阵,

21、位置依次为 a 左上,b 右下,c 右上,d 左下。 用连续摆数法,把 1a2 放在 a 中成第一个幻方;把 a212a2 放在 b 中成 第二个幻方。把 2a213a2 放在 c 中成第三个幻方。把 3a214a2 放在 d 中 成第四个幻方。 816261924 357212325 492222720 352833171015 303234121416 313629131822 图 2-6 所示 第二步:在 a 的各行左起取 m 个方格,但中间一行从第二格开始。与 d 中相应位 置对换。 816261924 357212325 492222720 352833171015 30323412

22、1416 313629131822 图 2-7 为上色赋值 第三步:在 c 的各行右起取 m1 个方格,与 b 中相应位置对换。此例 m-1=0, 无需交换。 3516261924 3327212325 3192222720 82833171015 30534121416 43629131822 图 2-8 所示 2.3.4 lux 方法 这是剑桥大学康韦教授发明的方法 例:例:设阶数n=2(2m+1)=10,m=2。 第一步:任取一个 2m+1 阶幻方,例如 5 阶幻方。如下。 12316421 151471811 24171392 20819126 53102225 图 2-9 所示 第二

23、步:在上面的 m+1 行 (此处为 3 行)的每个格子里填入一个字母 l;接下去 一行填字母 u,余下 m-1 行填字母 x。最后把中间的一个 l 与它下面的一个 u 交换一 下。 1l23l16l4l21l 15l14l7l18l11l 24l17l13u9l2l 20u8u19l12u6u 5x3x10x22x25x 图 2-10 所示 第三步:作一个 1010 方格,设想为每 22 为一个单位,每个单位相应于上面一 个格子。对应于 5 阶幻方中数字 1 的单位填 1,2,3,4。对应于 5 阶幻方中数字 2 的 填 5,6,7,8。等等。但是标有字母 l 的按照“右上左下右下左上”次序;

24、 标有字母 u 的按照“左上左下右下右上”次序;标有字母 x 的按照“左上 右下左下右上”次序。 419289646116138481 239091626314158283 60575653282572694441 58595455262770714243 969368654952363385 949566675051343567 77802932767345482124 78793031747546472223 17209123740858897100 19181110393887869998 图 2-11 所示 当然,这个方法也产生很多幻方,并不唯一。 3 3 系统设计系统设计 3.13.

25、1 实现方法实现方法 3.1.1 奇数阶幻方制作(连续摆数法) 建立一个二维数组,以要填的数字为主线,通过控制数组元素下标的变化进行相 应操作并控制数组元素的赋值。 3.1.2 双偶幻方制作(对称法) 建立一个二维数组,将数组元素赋值为“-1”实现图中阴影格子的初值赋值,通 过用偶数常数给格子赋值。运用循环结构控制数组元素下标以达目的。 3.1.3 单偶幻方制作(斯特雷奇法) 大致同 1) 、2)操作相同,其中在制作 a、b、c、d 幻方时通过调用函数实现, 。 3.23.2 流程图流程图 3.2.1 主函数 图 3-1 函数流程图 开始 y n y 输入 n n2= =0 n4= =0 奇阶

26、幻方 双偶幻方单偶幻方 输 出 结束 n 3.2.2 奇数阶幻方 鉴于单偶幻方制作和双偶幻方制作在算法描述及功能模块框图中已介绍详细,就 不给出详细流程图了。 4 4 代码编写与注释代码编写与注释 #include #include #include #define max 10 int amaxmax; class hf private: int n; /幻方的阶乘数 int x,y; /数组的下标 int row,col;/数级的下标 int i,j; /循环变量 int di,dx,dy; /单偶数幻方 int oushu; /偶数常数 int temp; public: void ac

27、cept();/接受数据 void jshf(); /奇数幻方 void souhf(); /单偶数幻方 void dsouhf(); /双偶数幻 void operate(); / 运算组合 void display(); /打印 ; void hf:accept() coutn; void hf:jshf() row=0;col=n/2; i=1;arowcol=i; for(i=2;i=n*n;i+) if(i%n=1) row=(row+1)%n; else row=(row-1+n)%n; col=(col+1)%n; arowcol=i; void hf:souhf() /奇数幻方

28、 (2n+1) (连续摆数法) x=n/2,y=0; /x y 表示 数轴(设左上角为(0,0) ) for (i=1;i=n*n;i+) magicyx =i; /给 x*y 个格子赋值 if (i%n=0) /右上角有数,放在下面 y+; else if (y=0) /超出上边界 x+,y=n-1; else if (x=n-1) /超出右边界 x=0,y-; else /正常情况 x+,y-; void hf:souhf() /双偶数幻方(对称法) for (x=0;xn/2;x+) /两个 for 就提取四分之一的数 (左上角) for (y=0;yn/2;y+) if(x+y)%2=

29、0) /等价于书上涂黄格 做标记 magicxy= -1; magicxn-y-1= -1; magicn-x-1y= -1; magicn-x-1n-y-1= -1; for(x=0;xn;x+) for(y=0;yn;y+) oucs=x*n+y; /oucs 为偶数常数 if(magicxy= -1) /给做标记的数赋值 magicxy=n*n-oucs; else magicxy=oucs+1; /给未做标记的数赋值 void hf:dsouhf() /单偶数阶(2(2m+1))幻方(斯特雷奇法) for (di=0;di4;di+) /幻方的分块 switch (di) case 0

30、: /左上的一块 a dx=0,dy=0; break; case 1: /右下的一块 b dx=n/2,dy=n/2; break; case 2: /右上的一块 c dx=n/2,dy=0; break; case 3: /左下的一块 d dx=0;dy=n/2; break; default: break; x=(n/2)/2,y=0; / 1/4 的 第一行中间的数 int nhsq; / 1/2 n 的平方 nhsq=(n/2)*(n/2); for (i=1;i=nhsq;i+)/给双偶数幻方赋值 magicy+dyx+dx=i+nhsq*di; if(i % (n / 2) =

31、0) /右上角有数 y+; else if(y=0) /当超出上面的边界时 x+,y=n/2-1; else if(x = n / 2 - 1) /当超出右面的边界时 x=0,y-; else /正常情况下 x+,y-; int nm; nm=(n / 2 - 1) / 2 ; for (j=1;jnm+1;j+) /交换 a 和 d 的第二行起 m 个数字 j 指的是数组的列 temp=magic(n/2)/2j; magic(n/2)/2j=magic(n/2+1)/2+n/2-1j;/把 a 中的 中间一行,第二个数开始 m 个数(左上 1/4)给 d magic(n/2+1)/2+n/

32、2-1j=temp; /把 d 中间一行,第二个数开始 m 个数(左下 1/4)给 a for (i=0;in/2;i+) /交换 a 和 d 其它行的数字 if(i=(n/2)/2) /i 指的是数组的行 continue; /如果到了中间的数,跳出循环 for(j=0;jnm;j+) temp = magicij; magicij=magicn/2+ij; magicn/2+ij=temp; for (i=0;in-nm;j-) temp=magicij; magicij=magicn/2+ij; magicn/2+ij=temp; void hf:operate() system(cls

33、); cout setw(45) 幻方的制作 endl; cout setw(45)=endl; cout setw(45) endl; cout setw(49) 1. 奇数阶幻方 endl; cout setw(49) 2. 偶数阶幻方 endl; cout setw(47) 请选择(1 或 2,0:退出) endl; cout setw(45)=endl; int choice; coutchoice; if(choice=1) accept(); /调用接受的数据 if (n%2=0 |n=0) cout 错误,请输入正奇数: endl; else jshf(); /调用奇数阶乘幻方的

34、计算 display(); /调用显示结果 else if (choice = 2) accept(); /调用接受的数据 if(n=2) cout 2 不存在幻方endl; else if(n%2=1 | n=0) cout 错误,请输入正偶数:endl; else if (n%4=0) souhf(); /调用双偶阶乘幻方的计算 display(); /调用显示结果 else dsouhf(); /调用单双偶阶乘幻方的计算 display(); /调用显示结果 else if (choice=0) cout 本次执行终止 ! !endl; else cout 本次执行终止 : 原因 错误的

35、输入 endl; void hf:display() /显示结果 coutendl; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(4)magicij; coutendlendl; void main() hf hf; char replay; replay=y; while (replay=y) /循环操作 hf.operate(); coutendlendlreplay; coutendlendl; if(replay !=y) return ; 5 5 程序调试程序调试 在程序调试时往往一下子出现很多错误,查找困难。此次课程设计中,我采用边 编写边调试的方

36、法,缩小错误范围。调试过程中,在单偶幻方函数中在 a 与 d 进行对 应要求交换时,对每一行操作时,m 置 0 的位置有误,导致一些错误。其它就是数组 元素下标范围的控制难以掌握,但只要静下心来,还是可以冲破难关的! 6 6 运行与测试运行与测试 如以下各图所示为输入相应数字后的运行结果: 进入界面,如图 6-1 所示。 图 6-1 调试结果一 奇数阶幻方效果(选取 5 阶幻方为例)如图 6-2 所示。 图 6-2 调试结果二 单偶幻方效果(选取 10 阶幻方为例)如图 6-3 所示。 图 6-3 调试结果三 双偶幻方效果(选取 8 阶幻方为例),与课程设计报告书上有所不同,但所达目的 相同,

37、只是其中一种效果。如图 6-4 所示。 图 6-4 调试结果四 退出(如图 6-5 所示) 。 图 6-5 调试结果五 总总 结结 在短短一个星期的课程设计中,时间太快了,课程设计做得也有点匆忙,相信还 有许多可以完善的地方!不过,对我来说,这次课程设计对自身知识的增加及编程能 力的提高都有很大的帮助! 在这次课程设计我选的课题是幻方。没做课程设计之前,我对幻方的了解几乎是 零!看完课程设计书上的概念原理,虽然对幻方。有了些基本的认识,但要是让我自 己编写程序代码来完成此次课程设计,那几乎是不可能的事。所以我查阅很多书及网 上资料,最后在别人基础上对代码进行修改使之符合本课题要求。这一设计报告,我 并不是很满意,鉴于时间的短暂,有许多地方缺少个人特色,有待完美。 对于代码的编写,我并没有将课程设计书上提及的方法一一编成,而是选取了其 中的一些。其中,奇数阶幻方制作用连续摆数法比较简单,我花了很少时间就搞定。 但另外两个幻方的代码就没那么顺利。中间有一段时间还在考虑课程设计究竟写些什 么内容,浪费了不少时间,可见预先准备充分还是很必要的。那些没有编成的方法, 我觉得还是可操作的,但较之自己选的方法而言,有点繁琐,也许以后闲暇时可以编 着试试,或许会有新的发现。有点遗憾的是,我对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论