收藏 分享(赏)

奇数阶魔方算法及实现方法+数据结构.doc

上传人:s36f12 文档编号:6359157 上传时间:2019-04-09 格式:DOC 页数:14 大小:225.50KB
下载 相关 举报
奇数阶魔方算法及实现方法+数据结构.doc_第1页
第1页 / 共14页
奇数阶魔方算法及实现方法+数据结构.doc_第2页
第2页 / 共14页
奇数阶魔方算法及实现方法+数据结构.doc_第3页
第3页 / 共14页
奇数阶魔方算法及实现方法+数据结构.doc_第4页
第4页 / 共14页
奇数阶魔方算法及实现方法+数据结构.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、课程设计封面题目: 奇数阶魔方的算法与实现课程: 数据结构学院: 信息工程学院专业: 物联网工程班级: 12 普本物联网学号: 1201141009姓名: 李冰洋指导教师: 叶茂功任务书书写说明:1 完成期限:自 2014 年 6 月 5 日至 2014 年 6 月 18 日 共 2 周2. 计 划 答 辩 时 间: 2014 年 6 月 22 日黄河科技学院本 科 课 程 设 计 任 务 书信息工程 学院 计算机科学 系 物联网工程专业 2008 级 12 普本物联网班 学生 李冰洋 学号 1201141009 指 导 教 师 叶 茂 功 课程名称: 数据结构 完成期限:自 2014 年 6

2、 月 5 日至 2014 年 6 月 18 日 共 2 周课程设计题目奇数阶魔方的算法与实现 课程设计内容与基本要求 一、内容 本次课程设计内容主要是利用二维数组输出正确的 n 阶魔方矩阵。 二、要求 (1)通过实际项目的分析、设计、编码、测试等工作,掌握用 C 语言来开发和维护软件。 (2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户 三、参考文献1王红梅数据结构清华大学出版社 2王红梅数据结构学习辅导与实验指导清华大学出版社 3严蔚敏,吴伟民数据结构(C 语言版) 清华大学出版社 4叶茂功,代文征数据结构项目化教程国防工业出版社 四、注意事项 1.提交课程设计

3、代码与课程设计说明书; 2.材料的书写符合黄河科技学院毕业设计指导规范手册 。 计 划 答 辩 时 间: 2014 年 6 月 31 日专业(教研室)审批意见:审批人(签字):目 录1 摘 要 12 课程设计目的 2 3 课程设计内容 2 4 程序执行流程图 .3 5 程序源代码 4 6 运行结果 9 7 结束语。111摘 要VC+6.0 是一种基于 C 语言的数据库设计、创建和管理的软件,利用它可以对各种事务管理工作中的大量数据进行有效的管理并满足数据检索的需要。本系统就是根据现阶段的需要,通过 VC+6.0 开发一个员工管理系统来实现对员工的信息的查找、高效的管理和维护。整个系统从符合操作

4、简便、界面友好、灵活、实用、安全的要求出发,完成了对员工信息管理的过程,包括:每个员工的信息编号、姓名、性别、出生年月、学历、职务、电话、住址等常用管理工作。关键词:员工管理系统, VC+6.021 课程设计目的 通过这次课程设计进一步了解了二维数组的使用方法和一些基本的设计思路。对于一个 nn 的方阵,其中 n 为奇数,在nn 的魔方阵中,填入 1 到 n2 的整数,使得其各每一行、每一列、每条对角线上各个数字累加和皆相等1。 2 .课程设计内容 本次课程设计内容主要是利用二维数组输出正确的 n 阶魔方矩阵。 n 阶魔方,又叫幻方阵,在我国古代称为“纵横图” ,是一个比较有趣的游戏。2n 阶

5、魔方就是用 1 到 n2 的数字不重复的填入方阵中。每一行中 n 个数之和,共得 n 个和;每一列中 n 个数之和,共得 n个和;每一条对角线 n 个数之和,共得两个和,每一个和称为魔数。魔方阵中的每个魔数都相等。 如图就是一个 3 阶魔方阵,它是用数字 1 到 9 不重复的填入 3*3 的方阵中,使得各行、各列及对角线的魔数都等于 15。3 6 1 87 5 32 9 43图 阶魔方阵3. 程序执行流程图44.程序源代码#include #include #include #define MAX 99/*矩阵最大为 99*99*/ void jishu(int n); void out(in

6、t n,int aMAXMAX);/*魔方矩阵输出函数*/ void check(int n,int aMAXMAX);/*魔方矩阵验证函数*/ void main() clock_t start,end; int n; while(n!=0)/*判断输出的数 n 是否为 0*/ coutn; while(n99) if(n=0) break;/*n=0 本程序结束*/ coutn; 5if(n=0) break;/*n=0,本程序结束*/ cout0)/*如果填入位置已有数字,则重新计算填入位置*/ p=(p+2)%n;/*由于前面 p 减了 1,因此 p 应该加 1,才能表示下一行*/ 6

7、q=(q+1)%n;/*由于前面 q 减了 1,因此 q 应该加 1,才能表示同一列*/ apq=i;/*填入数字 */ out(n,a);/*调用输出函数*/ check(n,a);/*调用验证函数*/ void out(int n,int aMAXMAX)/*魔方矩阵输出函数*/ int p,q; for(p=0;p=n-1;p+) for(q=0;q=n-1;q+) coutsetw(4)apq“;/*输出魔方矩阵的结果*/ coutendlendl; void check(int n,int aMAXMAX)/*魔方矩阵验证函数 */ 7 int p,q,sum1=0,sum2=(n*

8、n+1)*n/2,k; cout“此魔方阵的每行、每列、两条对角线的和为:“sum2endl;/*输出标准魔方阵的每行、每列、两条对角线的和*/ for(p=0;pn;p+) for(q=0;qn;q+) sum1=apq+sum1;/*计算矩阵横行纵行的和*/ if(sum1!=sum2)/*判断矩阵横行纵行的和是否与标准相同*/ cout“横行纵行计算结果与标准不符,请输入奇数!“endl; break; sum1=0; for(k=0;kn;k+) 8 sum1=akk+sum1;/*计算矩阵主对角线的和*/ if(sum1!=sum2)/*判断矩阵主对角线的和是否与标准相同*/ cou

9、t“主对角线计算结果与标准不符,请输入奇数!“endl; sum1=0; for(k=0;kn;k+) sum1=akn-k-1+sum1;/*计算矩阵次对角线的和*/ if(sum1!=sum2)/*判断矩阵次对角线的和是否与标准相同*/ cout“次对角线计算结果与标准不符,请输入奇数!“endl; 95.运行结果(1)当输入 n=0 时,程序运行结束,运行结果如图所示 (2)当输入 n=100 即 n 超出所给范围 1 到 99 时,运行结果如图所示10(3)当 n=4 时即 n 为偶数时,程序运行结果如图所示(4)运行程序,根据提示输入指令,当 n=5 时,程序运行结果如图所示116.结束语 本次课程设计我选择了一个古老的书序趣味问题魔方阵,通过我的努力与探索,终于解决了奇数阶魔方阵的算法左上斜行法。 编程过程中,使用另外完成输出功能的子函数 void out(int n,int a),通过对其调用,大大节省了程序编写的复杂度,提高了效率。 在实现奇数阶魔方阵时,遇到了一点问题,请教了同学,一起进行了讨论研究,最终解决了问题。 通过这次课程设计,使我学到了一些以前没有学过的知识,使我们对程序设计有了更深层次的认识和理解,懂得了灵活运用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报