数据结构课程设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构
数据结构课程设计(论文)
题目魔方阵
作者杨政冬
院系信息工程学院
专业信息管理与信息系统学号 1314210140 指导老师安强强
答辩时间
摘要
我的实验题目是利用数据结构相关算法来设计——魔方阵,主要的功能是实现每一行,每一列以及对角线的相加结果相同,而且每一个数字均不相等。
本次实验能够充分的考核我们对数据结构相关算法以及C语言的学习程度、动手操作能力有极大的帮助,所以本次课程设计是十分有必要的。
我的设计内容就是利用幻方算法(劳伯法、斯特拉兹法、罗伯法、海尔法)循环语句,以及判断条件等函数的合理使用,通过不断的运行,调试,输出,对本程序进行合理的解决,对魔方阵进一步的了解掌握。
关键字:算法、C语言魔方阵程序设计
Abstract
My experiment topic is the use of data structure algorithms to design - the magic square, the main function is to implement each row, every column, and diagonal together in the same result, and each number are not equal.
This experiment can fully conducted by our algorithms for data structure and the degree of learning C language is of great help, hands-on ability, so the curriculum design is very necessary.
My design content is to use magic square algorithm (rob, stern raz, rob, haier) loop, and the judgment function, such as the condition of reasonable use, through continuous running, debugging, output, the reasonable solution to the program, the magic square to further grasp.
Key words: magic square algorithm, C language program design
1 绪论
计算机是随着社会的发展应运而生,它贯穿了人们生活的方方面面。其中,在科学计算方面,由于算法的高精确和高复杂度,对于计算机的依赖不可言喻。利用计算机解决实际生活问题也变得比较普遍,本次课程设计就是利用相关算法实现人脑难以完成的计算。
在这里,我设计了一个魔方阵,它在古代又称“纵横图”,是一个古老的智力游戏。魔方阵的求解在理论上和应用上有着重要的价值,作为学习性的实践,对自己却很重要。当前计算机软件技术和网络技术飞速发展,软件系统日趋大型化、复杂化。近年来,人们对魔方阵的探讨,不再局限于趣味数学上的议题,不少学者纷纷将魔方阵的应用融入信息安全之中,对魔方阵的研究对我们越来越重要。
1.1 课题背景及设计意义
1.1.1 课题背景
随着时代的发展,计算机普遍被用于各个行业。计算机能够快速、准确的进行计算,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的数字运算,计算机能够充分发挥它的优越性。通过计算机的快速运算,实现了相关算法,快速输出相应的魔方阵。
1.1.2 研究意义
数据结构课程是计算机专业最重要的基础课之一,它主要研究分析计算机存储、组织数据的方式,使学生学会数据的组织方法和现实世界问题在计算机内部的表示方法,并能针对应用问题,选择合适的数据逻辑结构、存储结构及其算法,掌握解决复杂问题的程序设计方法和技术。选择合适的数据结构更容易设计出更高效运行或存储效率的算法;反之,选择了特定的算法后也需要设计合适的数据结构与之配合,以达到最佳效果。数据的基本逻辑结构包括了集合,线性表,树,图等;而串是一种特殊的线性表,它的每个节点仅由一个字符组成。计算机上的非数值处理的对象基本上是字符串数据。在较早的程序设计语言中,字符串是作为输入和输出的常量出现的。随着语言加工程序的发展,产生了字符串处理,这样,字符串也就作为一种变量类型出现在越来越多的程序设计语言中,产生了字
符串处理。这样,字符串也就作为一种变量类型出现在越来越多的的程序设计语言中,同时,也产生了一系列字符串的操作。在汇编和语言的编译程序中,源程序和目标程序都是字符串数据。在事务处理程序中,顾客的姓名和地址以及货物的名称,产地和规格等一般也作为字符串处理。又如:信息检索系统、文字编辑程序、问答系统、自然语言翻译系统、猜数字游戏、以及音乐分析程序等,都是以字符串数据作为处理对象的。
课程设计不仅仅是以实现相应的程序为目标,更重要的是在完成课程设计的过程中逐步培养今后从事软件开发所需要的各种能力与素质。其中很重要的一种能力就是软件文档的写作能力。因此,在课程设计实施中,不仅需要完成程序并进行测试,还需要撰写相应的课程设计报告。课程设计报告不仅是对课程设计的总结,也是对软件文档写作能力的初步训练。
1.2 研究目的
利用《数据结构》课程的相关知识,完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范的完成课程设计报告。通过课程设计,巩固和加深对线性表,栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性问题的基本能力。
1.3 课题研究的主要内容
(1)本次课程设计是利用二维数组输出正确的n阶魔方矩阵。
(2)输入一个数字n(1≤n≤99),则输出对应的n阶魔方阵。
1、首先判断n的奇偶性,如果是偶数继续判断是单阶还是双阶。
2、其次利用相关算法(劳伯法、斯特拉兹法、罗伯法、海尔法),调
用相关函数。
3、最后输出魔方阵。
如图1.1就是一个3阶魔方阵,各行、各列及对角线的魔数都等于15