本科毕业论文—算法动态演示软件设计与开发——链表操作.doc_第1页
本科毕业论文—算法动态演示软件设计与开发——链表操作.doc_第2页
本科毕业论文—算法动态演示软件设计与开发——链表操作.doc_第3页
本科毕业论文—算法动态演示软件设计与开发——链表操作.doc_第4页
本科毕业论文—算法动态演示软件设计与开发——链表操作.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

本本 科科 毕毕 业业 设设 计计 题题 目目 算法动态演示软件设计与开发 链表操作 作作者者:宋灵灵 专专业业:计算机科学与技术(软件工程) 班班级级:软件 101(杏) 指导教师指导教师:程显毅 南通大学杏林学院 原原 创创 性性 声声 明明 本人声明:所呈交的论文是本人在导师指导下进行的研究成果。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:日 期: 本论文使用授权说明本论文使用授权说明 本人完全了解南通大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容。 (保密的论文在解密后应遵守此规定保密的论文在解密后应遵守此规定) 学生签名:指导教师签名:日期: 南通大学杏林学院毕业设计(论文)立题卡 课题名称算法动态演示软件设计与开发链表操作(杏)出题人程显毅 课题表述 (简述课 题的背景、 目的、意 义、 主要内 容、 完成课 题的条件、 成果形式 等) CAI 课件以其图形、文字、图象、动画、声音等多种功能作用于学生多个感官, 既容易解决图形“动”的问题,又不改变图形的性质。不仅能吸引学生的注意力,激 发学生的学习兴趣,更能激发学生的求知欲望,调动学生的学习热情,使其积极主 动地投入到学习中。尤其是在突出教学重点,突破教学难点,诱导学生思维,培养 学生丰富的想象力,深入的探究力,不懈的创造力,提高学生素质等方面,具有传 统教学无法相比的效果,体现了现代教育技术的强大优势 。本次毕业设计实现链表 操作动态演示软件: (1)创建一个单链表 (2)在单链表中插入一个节点 (3)删除单链表中的一个节点 (4)修改单链表中的一个节点 (5)实现代码的同步追踪 (6)自我创新的功能 课题来源科研课题类别毕业设计 该课题对 学生的要 求 有一定的 JAVA 编程能力和数据库基础。 教研室意 见 教研室主任签名: _ _年_月_日 学院意见 同意立题() 不同意立题()教学院长签名:_ _年_月_日 注:1、此表一式三份,学院、教研室、学生档案各一份。 2、课题来源是指:1.科研,2.社会生产实际,3. 其他。 3、课题类别是指:1.毕业论文,2.毕业设计。 4、教研室意见:在组织专业指导委员会审核后,就该课题的工作量大小,难易程度及是 否符合专业培养目标和要求等内容提出具体的意见和建议。 5、学院可根据专业特点,可对该表格进行适当的修改。 南通大学杏林学院南通大学杏林学院 毕业设计(论文)任务书毕业设计(论文)任务书 作者:宋灵灵 专业: 计算机科学与技术(软件工程) 班级:软件 101(杏) 指导教师:程显毅 发任务书日期2014年2月 15 日 题目:算法动态演示软件设计与开发链表操作 课题的内容和要求(研究内容、研究目标和解决的关键问题) 1、研究内容 首先学会建立链表,其次对于已建立的链表,需要可以实现移动,对链表进 行插入、删除、修改节点以及自己研究的特殊操作(清空以及翻转) 。最后增加 功能代码同步。让它能动态的演示,进行说明。 2、研究目标 对于课题的研究: 最主要的要学会建立链表, 再研究对链表进行插入, 删除, 修改以及代码同步等操作的方法。 3、解决的关键问题 对于使用软件的选择花了不少时间,由于需要实现动态演示,最终决定使用 Visual Studio 2012 软件,对于此软件我还需要多多学习,研究调查。 此外,链表的生成需要我自己写函数,我打算用 drawnode()函数去实现, 对于代码追踪,我打算使用计时器,设置好生成节点的时间运行代码。 课题的研究方法和技术路线 (1)课题的研究方法 1.采用文献资料法 主要通过关键字:链表、操作,动态演示等条件查询相关资料,结合一起研 究,调查其 使用说明和方法。 2.采用个案研究法 主要通过个案研究与实践, 就是通过别人做的一个个案例,自己也试着做一 下, 从而明白他的操作途径及方法。我个人觉得这是理论结合实践非常有效的办 法! 3.采取经验总结法 对课题研究取得的成效和不足,及时总结。累积经验,下次改进即可。 (2) 课题的技术路线 我的路线是: 首先对软件的理论基础进行总结的探讨和分析,在链表操作这 个范围内展开调研,为实践研究提供准备。 研究的实践过程可概括成三个阶段,即编程、试用、调适三个阶段,不同的 阶段有其主导的方法和行动,在此基础上实施规划、展开调研、参与互动、收集 数据、开展行动研究,形成一个模式。再对其效果进行新一轮的验证以进一步检 测前期成果,并进而得出研究结论,撰写相应的研究报告。 基础条件 课题前期已经进行了一些准备工作, 通过阅读资料和观看视频掌握自己用到的 软件; 有一定的编程能力和数据库基础; 对链表熟悉,知道怎么操作使用; 学会使用 Visual Studio 2012 软件,查询相关资料,使其能进行链表的动态 演示。 参考文献 1 管致锦,徐慧,陈德裕. 数据结构M. 北京: 清华大学出版社, 2010. 2 王红梅,胡明,王涛. 数据结构(C+版)M. 北京: 清华大学出版 社, 2005. 3 Shaffer. 数据结构与算法分析(C+版).2 版M. 北京: 电子工业出 版社, 2002. 4 朱继红,杜祝平.数据结构算法动态J. 信息工程学院学报, 1998.174:14-20. 5 RobertLKruse Alexander .C+数据结构与程序设计M. 北京: 清 华大学出版社, 2007. 6(美)Mark Allen Weiss. 数据结构与问题求解(C+版) (第二版)M. 北京: 清华大学出版社, 2005. 7 蒙焕念,黄良永.基于优先级链表结构的大学排课算法设计与实现J. 广西柳州: 柳州师范高等专科学校教务处, 2012.211:1-5. 8 LI Chong. Exploration of Link Table Creation Based on Data StructureJ. 重庆: 重庆工程职业技术学院, 2009.021 :3-10. 9张海潘。软件工程导论(第四版)M北京:清华大学出版社,2003. 10Bruno R. Preiss,Data Structures and Algorithms with Object-Oriented Design Patterns in JavaM。University of Waterloo,2007. 11王吉庆.计算机教育应用M 北京;高等教育出版社,1992. 本课题必须完成的任务 (1)使用软件,创建链表; (2) 对创建好的链表进行插入, 删除, 修改节点; 以及代码追踪和特殊操作; (3)使这些操作能够正常的执行。 成果形式 毕业论文和链表操作动态演示的设计一份 进度计划 起讫日期工作内容备注 1.142.5确定毕业设计课题 2.62.26熟悉任务,查阅相关文献 2.273.19观看视频,学会使用软件,完成开题报告及其 ppt 3.204.19系统大致成型,应对毕业设计中期检查 4.205.20进行程序代码调试及其编写 5.215.31系统验收,检查 6.16.8进行论文的最后修改,完成论文,预答辩 学系意见 系主任签名:_年_月_日 南通大学杏林学院本科生毕业设计(论文)开题报告 学生姓名宋灵灵学 号1013103019专业 计算机科学与技术 (软件工程) 课题名称算法动态演示软件设计与开发链表操作 阅读文献 情况 国内文献8 篇开题日期2014-3-19 国外文献3 篇开题地点南通大学 一文献综述与调研报告: (阐述课题研究的现状及发展趋势,本课题研究的意义和价值、参考文献) (1)课题研究的现状及发展趋势 伴随着时代的发展,计算机已经逐渐走近人们的日常生活。计算机辅助教学作为一种 先进的教学辅助手段,已经深入到日常的教学之中。 本系统具有多媒体教学软件的特点,多媒体教学软件是计算机辅助教学的一种手段, 目前被广泛采用到目常的教学之中。多媒体教学软件具有直观、生动、形象的优点,可以 使学生加深印象,从而提高教学质量和学生的学习效率,也正是出于这个目的开发了本系 统。 动态可视化仿真是计算机可视化技术和系统建模技术相结合后的仿真技术,其实质是 采用图形或图像方式对仿真计算过程的跟踪、驾驭和结果的后处理,同时实现仿真软件界 面的可视化,具有迅速、高效、直观、形象的建模特点。使用可视化技术以后,系统的子 模块用形象的图形来表示,并可通过鼠标在屏幕上直观形象的操作,就可以完成整个仿真 任务 (2)本课题研究的意义和价值 计算机多媒体教学可以将抽象的内容形象化,静止的内容动态化,以便于学生获取准 确深刻的直观感知,从而形成完整的理性认识。这样可以降低难度,激发学习兴趣,增大 教学信息量,优化教学过程,突破教学难点,取得最佳的教学效果。以计算机为中心的多 媒体辅助教学手段与传统教学手段有机结合,共同参与教学过程,可以突出教学重点,化 解教学难点,使学生在最佳的情境中学习。 (3)参考文献 1 管致锦,徐慧,陈德裕. 数据结构M. 北京: 清华大学出版社, 2010. 2 王红梅,胡明,王涛. 数据结构(C+版)M. 北京: 清华大学出版社, 2005. 3 Shaffer. 数据结构与算法分析(C+版).2 版M. 北京: 电子工业出版社, 2002. 4朱 继 红 , 杜 祝 平 . 数 据 结 构 算 法 动 态 J.信 息 工 程 学 院 学 报 , 1998.174:14-20. 5 RobertLKruse Alexander .C+数据结构与程序设计M. 北京: 清华大学 出版社, 2007. 6(美)Mark Allen Weiss. 数据结构与问题求解(C+版) (第二版)M. 北京: 清 华大学出版社, 2005. 7 蒙焕念,黄良永.基于优先级链表结构的大学排课算法设计与实现J. 广西柳 州: 柳州师范高等专科学校教务处, 2012.211:1-5. 8 LI Chong. Exploration of Link Table Creation Based on Data StructureJ. 重庆: 重庆工程职业技术学院, 2009.021 :3-10. 9张海潘。软件工程导论(第四版)M北京:清华大学出版社,2003. 10Bruno R. Preiss,Data Structures and Algorithms with Object-Oriented Design Patterns in JavaM。University of Waterloo,2007. 11王吉庆.计算机教育应用M 北京;高等教育出版社,1992. 二 本课题的基本内容,预计解决的难题 (1)本课题的基本内容 首先学会建立链表,其次对于已建立的链表,需要可以实现移动,对链表进行插入、 删除、修改节点以及自己研究的特殊操作(清空以及翻转) 。最后增加功能代码同步。 让它能动态的演示,进行说明。 (2)预计解决的关键问题 对于使用软件的选择花了不少时间,由于需要实现动态演示,最终决定使用 Visual Studio 2012 软件,对于此软件我还需要多多学习,研究调查。 此外,链表的生成需要我自己写函数,我打算用 drawnode()函数去实现,对于代码 追踪,我打算使用计时器,设置好生成节点的时间运行代码。 三 课题的研究方法、技术路线 (1)课题的研究方法: 1.采用文献资料法 主要通过关键字:链表、操作,动态演示等条件查询相关资料,结合一起研究,调查 其使用说明和方法。 2.采用个案研究法 主要通过个案研究与实践,就是通过别人做的一个个案例,自己也试着做一下,从而 明白他的操作途径及方法。我个人觉得这是理论结合实践非常有效的办法! 3.采取经验总结法 对课题研究取得的成效和不足,及时总结。累积经验,下次改进即可。 (2)课题的技术路线: 我的路线是:首先对软件的理论基础进行总结的探讨和分析,在链表操作这个范围内 展开调研,为实践研究提供准备。 研究的实践过程可概括成三个阶段,即编程、试用、调适三个阶段,不同的阶段有其 主导的方法和行动,在此基础上实施规划、展开调研、参与互动、收集数据、开展行动研 究,形成一个模式。再对其效果进行新一轮的验证以进一步检测前期成果,并进而得出研 究结论,撰写相应的研究报告。 四、进度计划 起讫日期工作内容 1.142.5确定毕业设计课题 2.62.26熟悉任务,查阅相关文献 2.273.19观看视频,学会使用软件,完成开题报告及其 ppt 3.204.19系统大致成型,应对毕业设计中期检查 4.205.18进行程序代码调试及其编写 5.195.31系统验收,检查 6.16.4进行论文的最后修改,完成论文,预答辩 论文阶段完成日期 文献调研完 成日期 论文实验完成 日期 撰写论文完 成日期 评议答辩完成 日期 指 导 教 师 评 语 导师签名:年月日 学 系 意 见 通过开题()开题不通过() 学系主任签名:年月日 南通大学杏林学院南通大学杏林学院 毕毕 业业 设设 计计 杏林学院信息科学学部软件工程系 2014 年 5 月 题目:算法动态演示软件设计与开发链表操作 作者:宋灵灵 专业:计算机科学与技术(软件工程) 班级:软件 101(杏) 指导教师:程显毅 南通大学杏林学院毕业设计(论文) I 摘摘要要 程序设计的灵魂算法,这是语言课教学的难点,在教学的过程中,如果 我们可以加以计算机的辅助教学,这样不仅可以提高教学效果,同时也可以编写 这样的程序,使学生的学习兴趣大大增加,提高学生编程的能力。由于算法是比 较抽象的,要理解并掌握其原理就会显得比较困难。本系统的研究要点在于设计 一个交互式多媒体课件的演示系统,能够对链表进行创建,插入,删除,修改, 以及清空和翻转的特殊演示,这样以便提高课程教学的效果。 系统采用链表操作动画技术的方法来实现该系统的演示效果,再配以友善的 用户界面用于用户交互,使其得到理想的运行效果,这样学生理解起来容易,学 习效率也会提高。 关键词:链表,动态演示,算法,计算机辅助教学 南通大学杏林学院毕业设计(论文) II ABSTRACT Programming soul - algorithm, which is a difficult language teaching in the teaching process, if we can be computer-assisted instruction, so not only can improve teaching effectiveness, but also can write such programs, making learning interesting greatly increase and improve students ability to programming. Since the algorithm is more abstract, To understand and grasp its principles will become more difficult. Studies point of this system is to design an interactive multimedia courseware presentation system that can be created on the list, insert, delete, modify, and emptied, and special presentations flip, so in order to improve the effectiveness of teaching. System using methods and procedures designed to achieve the demonstration effect of the system, together with a friendly user interface for user interaction to get the desired operating results, which is easier to understand student learning efficiency will be improved. Key words: list, dynamic presentations, algorithms, computer-aided instruction 南通大学杏林学院毕业设计(论文) 目录目录 摘摘要要XIV ABSTRACTABSTRACTXV 第一章第一章 绪论绪论1 1.1 课题研究背景.1 1.1.1 认识链表.1 1.2 计算机辅助教学的现状 2 1.3 计算机辅助教学的意义 5 1.4 系统建设的目的.6 第二章第二章 需求分析需求分析.7 2.1 可行性分析7 2.1.1 技术可行性研究.7 2.1.2 操作可行性研究.7 2.1.3 非功能性需求分析设计思想.7 2.2 项目概述.8 2.2.1 设计要求.8 2.2.2 算法的功能分析.8 2.2.3 算法的设计分析.8 2.3 需求规定.9 2.3.1 对功能的规定.9 2.3.2 项目陈述.9 2.3.3 模块结构图11 南通大学杏林学院毕业设计(论文) 2.4 运行环境规定.11 2.4.1 设备.11 2.4.2 支持软件.11 2.4.3 接口.11 2.4.4 控制.11 第三章第三章 系统设计系统设计.13 3.1 设计的总体思想 13 3.2 界面设计.16 3.3 小结.20 参考文献参考文献21 致致谢谢22 附附录录23 南通大学杏林学院毕业设计(论文) 1 第一章第一章 绪论绪论 1.1 课题研究背景 随着现代科学技术的迅猛发展,算机技术已经渗透到了各个领域,为了各行业不可缺 少的工具,其是 Internet 技术的推广和信息高速公路的建立,使 IT 产业在市场竞争中越 发显示出它的独特优势,步入数字化信息时代,拥有巨大的数据信息等待着加工处理和传 输,这点将现实中许多东西都带入了虚拟的世界当中,这些都需要计算机技术的支持,同 样,各学校的教学手段也在逐步信息化,使得计算机辅助教学(Computer-Assisted Instruction,简称 CAI)CAI 的出现成为了一种必然的发展趋势。 90 年代以来,随着多媒体和 Internet 网络的出现,计算机教育已步入一个全新的阶 段, 计算机的辅助教学 CAI 作为一种先进的教学手段正在逐步渗透到各个学校的学科。 数 据结构 不仅是大学计算机专业的核心课程, 同时也是非计算机专业的主要选修课程之一, 此课程涉及大量的概念,数据结构和算法,理论性强又较为抽象,尤其是对算法描述的执 行过程的理解,这是难点也是重点。在课堂教学上,大量的算法不可能一一讲述,运用计 算机辅助教学系统可以使教学内容化静为动,调动学生的学习兴趣,变难为易,提高了学 生的学习兴趣,使学生寓学于乐,培养学生的学习兴趣的同时,利用计算机辅助教学还可 以满足学生的学习兴趣,这样就可以成为激发学生学习兴趣的新手段,新方法。 1.1.1 认识链表 我介绍一下链表,线性表的链式存储表示的特点是用一组任意的存储单元存储线性表 的数据元素(这组存储单元可以是连续的,也可以是不连续的) 。因此,为了表示每个数 据元素与其直接后继数据元素 之间的逻辑关系,对数据元素 来说,除了存储其本身的信 息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置) 。由这两部分信 息组成一个“结果” 。表示线性表中一个数据元素。线性表的链式存储表示,有一个缺点 就是要找一个数,必须要从头开始找起,十分麻烦。 链表(Linked list)其实是一种物理存储单元上非连续、非顺序的存储结构,数据元 素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点(链表中每一个元 素称为节点)组成,节点可以在运行时动态生成。每个节点包括两个部分:一个是存储数 据元素的数据域,另一个是存储下一个节点地址的指针域。 相比于线性表顺序结构,操 作复杂。 链表(Linkedlist)是一种常见的基础数据结构,也是一种线性表,但并不会按线性 南通大学杏林学院毕业设计(论文) 2 的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)访问特定编号的 节点则需要 O(n)的时间,而顺序表相应的时间复杂度分别是 O(logn)和 O。使用链表 结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存 空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增 加了节点的指针域,空间开销比较大。在计算机科学中,链表作为一种基础的数据结构可 以用来生成其它类型的数据结构。链表通常由一连串节点组成,每个节点包含任意的实例 数据(data fields)和一或两个用来指向上一个/或下一个节点的位置的链接(“links“) 。 链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体 或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。而链表是一种自我指示数据 类型,因为它包含指向另一个相同类型的数据的指针(链接) 。链表允许插入和移除表上 任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链 表以及循环链表。链表也可以在多种编程语言中实现。 根据情况,也可以自己设计链表的其它扩展。但是一般不会在边上附加数据,因为链 表的点和边基本上是一一对应的(除了第一个或者最后一个节点,但是也不会产生特殊情 况) 。不过有一个特例是如果链表支持在链表的一段中把前和后指针反向,反向标记加在 边上可能会更方便。 对于非线性的链表,可以参见相关的其他数据结构,例如树、图。另外有一种基于多 个线性链表的数据结构:跳表,插入、删除和查找等基本操作的速度可以达到 O(nlogn) , 和平衡二叉树一样。 其中存储数据元素信息的域称作数据域(设域名为 data) ,存储直接后继存储位置的 域称为指针域(设域名为 next) 。指针域中存储的信息又称做指针或链。 由分别表示,的 N 个节点依次相链构成的链表,称为线性表的链式存储表示,由 于此类链表的每个节点中只包含一个指针域,故又称单链表或线性链表。 1.2计算机辅助教学的现状 在我国 CAI 的发展历史是从 90 年代开始的,CAI 在国内也引起了广泛的兴趣。在近几 十年来,出现了多媒体计算机,被称为是计算机的一场革命,它具有能综合处理图像,声 音,图形以及文字等能力,这也显示了计算机在教育方面有着非凡的作用。国家教委也认 识到了 CAI 在深化教育改革中起着重要地位,于是在 1995 年批准成立了“中央电化教育 馆计算机辅助教学研究中心” 。在 1996 年底,国家教委的多方努力下,正式批准了“计算 南通大学杏林学院毕业设计(论文) 3 机辅助教学软件研制开发与利用可以作为“九五”国家重大科技攻关项目之一,这也从一 个侧面预示着 CAI 在未来会无比的辉煌,就从目前 CAI 发展状况来看,使用 CAI 这一现代 化的教育技术是教育发展的必然趋势。 目前我国计算机辅助教学的现状有一下三点: (1)过分夸大计算机辅助教学的作用:夸大 CAI 作用,以 CAI 代替传统教学的做法 是不现实的。尽管利用计算机的声、形、色、光可以解决很多传统课堂教学中不能解决的 问题,克服传统教学在时间和空间上的限制,使教师讲解更直观、更清晰、更具有吸引力, 学生学得更快且印象更深。不管 CAI 的功能如何完善,怎样先进,它们都不可能完全取代 传统教学手段。我们知道,教师的工作重点在教育教学,投入大量时间、精力编写课件, 显然是本末倒置,得不偿失。而 CAI 作为一种现代教学手段重点放在“辅助”二字,也就 是说 CAI 只是一种教学辅助手段, 是用来支持教学工作, 解决传统教学不容易解决的问题。 同时,传统教学有其自身的优势,因为传统教学手段和模式是教育工作者通过辛勤劳动总 结出的一套行之有效的方法,具有丰富的遗产和宝贵的教学经验,我们不能全盘否定。即 使教师不借助计算机辅助教学,仍能利用传统教学中的讲授、演示、练习等教学方法把某 些复杂的问题讲透彻,这说明传统教学手段是任何现代技术不能代替的,至今仍有强大的 生命力。 (2)课堂容量过多:运用 CAI 若出现过多的概念、原理及规律,过快的展示知识点 及推理过程等,过分加大课堂的容量,会造成一些负面影响。首先,学生在课堂上是否真 正理解了这么多的内容?传统教学方式虽然展示速度慢一些,但它能够留给学生充分的时 间思考,这对知识的掌握以及思维的培养都是至关重要的。其次,如果教学内容太多,即 使课堂上能够理解,课后又是否能够消化得了这些内容呢?这种由原来的“人灌变为机 灌” ,学生更受不了,这显然违背了“素质教育”原则中反对“注入式” 、 “填鸭式”的教 学方式。最后,多种感官刺激时间一长,会造成疲劳感,教学效果反而降低。一节课下来, 回忆教学内容,学生可能只记住某个精彩的动画、某段优美的音乐,没有留下多少实在的 语言文字。教师适时、适当、适度地使用 CAI 课件去分析教材内容,讲解学习新知识的方 法,培养学习各种能力,才能优化课堂结构。 (3)其它现状:实际上,现在计算机真正辅助教学的频率并不高。比如,有些学校 还不具备配置多媒体设备的条件,即使有硬件设施,真正配套适用的课件也不多;有的学 校只在各学科教师上公开课或优质课时,才用 CAI,并且课件是请计算机教师临时帮忙做 的;或者即使买来教学软件,由于课件设计者,不一定能按教师上课的思维模式来制作, 没有充分考虑学生的学习需要, 结果其形式单一和灵活性较差, 使用起来有一定的局限性。 南通大学杏林学院毕业设计(论文) 4 即使诸多的现状限制了 CAI 的开展。但是伴随着时代的进步,电子技术的飞速发展, 全球网络进程的加快,社会的各行各业都运用到了计算机这种现代技术工具,当下仍有不 少学校和公司都开始使用大屏幕投影或液晶投影进行教学,培训,开会等。 在张旭.浅谈计算机辅助教学中存在的问题及对策J中,我知道计算机作为一种媒 体,与其他教学媒体(像黑板,教科书,投影仪等)没什么差别,因此可以帮助教师提高 教学效果,扩大教学范围,延伸教师的教育功能。课堂教学不管在当下还是今后的漫长时 期,都会是学校教学活动的主要场所,因此,CAI 作为一种现代化的教学技术,都将集中 体现在课堂教学中。计算机不仅仅能呈现单纯的文字,数字等字符的教学信息,而且还可 以输出动画,视频,图像和声音,能非常容易的就做到教学信息的图、文、声并茂,这种 多维立体的教育信息传播,增强了信息的真实感和表现力,此外,学生可以利用一定的输 入输出设备,采用人机交互的方式进行学习,加深学生的理解,这是计算机媒体所特有的 功能。 很多年以来,我们的课堂一直都是教师用黑板板书,口头说教,学生们用笔记录, 耳朵听讲,因此,学生和老师都形成了一种一定的思维定势。随着时代的发展,信息科学 技术的进步,人类的教育水平和手段也在不断提高。近 30 年以来,计算机辅助教学(CAI) 兴起,利用计算机来帮助教师执行教学功能,教师运用计算机辅助教学的手段,激发学生 兴趣。这样,教师在教学途中可以运用计算机呈现教学计划,教学内容以及记录学生的学 习情况和控制学习进程等,教师也可以在教学中根据本学科的特点,制作各式的课件,软 件,使原本抽象,死板的课堂氛围一下子变得生动,活跃起来,把教师的主导型和学生的 主体性也充分的发挥出来了! 我通过查询文献:高新奇,隋贤俊,秦怀斌.计算机辅助教学的应用现状和分析J 中,了解了计算机辅助教学是一种新型的教学方式,在课堂教学中起着非常重要的作用, 但是在教学实践中,一些教师由于对计算机辅助教学的理解不到位,致使在计算机辅助教 学中出现各种各样的问题。忽视计算机辅助教学与过分依赖计算机辅助教学是目前计算机 辅助教学中出现的两种错误观点。对计算机辅助教学,我们应该客观的对待,计算机是一 种现代技术,对课堂教学起着非常重要的作用,它可以丰富课堂教学的内容,活跃课堂教 学的氛围,激发学生学校的热情,同时计算机在课堂教学中并不是万能的,它无法代替教 师与学生进行相关的交流,在计算机辅助教学中,应充分地发挥教师的主导性与学生的主 体性。 南通大学杏林学院毕业设计(论文) 5 1.3 计算机辅助教学的意义 CAI 的应用范围较广,就目前一般应用在:一是计算机出题;二是总结和考试;三是 自学与辅导;四是多媒体辅助教学。在这里,我主要研究的是计算机的多媒体辅助教学, 其作用主要表现在: (1)提高学习兴趣 教师在教学中都知道,用传统的工具(黑板、粉笔、纸、笔及挂图等)演示讲解,内 容抽象、形式单一。运用多媒体辅助教学不仅具有直观、形象、生动、信息量大,传递方 便的特点,而且还能实现大与小、远与近、快与慢、虚与实之间的转换,可将书本知识化 静为动,化虚为实,化抽象为直观,直接作用于学生的多种感官,生动的画面,形象的演 示,给人以耳目一新的感觉,能够深深的吸引学生,提高学习兴趣。 (2) 增进交互作用 这是 CAI 较传统教学手段的最重要和最根本的优势。所谓交互作用就是计算机与学生 之间的积极的信息交流。计算机将已设计好的课程信息逐一动态地呈现给学生,各教学阶 段都让学生有思考、回答或询问的机会,从而能对学生进行个别辅导;学生亦能根据自己 的特点、兴趣和水平选择内容、进度和学习途径,对学生来说,学习不再是一种被动的接 受,是在一种轻松愉快的环境中进行。 计算机多媒体教学可以将抽象的内容形象化,静止的内容动态化,以便于学生获取准 确深刻的直观感知,从而形成完整的理性认识。这样可以降低难度,激发学习兴趣,增大 教学信息量,优化教学过程,突破教学难点,取得最佳的教学效果。以计算机为中心的多 媒体辅助教学手段与传统教学手段有机结合,共同参与教学过程,可以突出教学重点,化 解教学难点,使学生在最佳的情境中学习。 它的发展趋势:一是网络化,网络化进程加快,信息资源相当的丰富,所以我们可以 了利用网络资源来制作自己的软件和课件:视频技术在教学中的应用,我们可以把自己优 秀的课例通过视频编辑后在网上发布,也可以通过观看优秀颗粒和自己需要的资料,最终 来实现通过网络的交流。二是智能化,CAI 正向着智能化发展,虚拟的社会学习系统,计 算机作为导师,同学,同时作为教师与学习伙伴,学院,我可以利用这一点,做到知利用 一根网线和一台计算机,就可以实现在网络上的学习交流互动,并且可以采用“面对面” , “超越时空”的形式进行沟通学习。 此上,我国已经认识到计算机辅助教学在教育教学中的重要作用,我们应采用积极的 南通大学杏林学院毕业设计(论文) 6 态度:对 CAI 软件的开发做理论上,技术上以及应用方面的深入研究,这都是促进 CAI 不 断发展的基础工作。 此外,计算机辅助教学是一把双刃剑,只要我们转变传统的教育观念、教育方法和教 育手段,勤于探索,重视教育教学过程中的新问题,不断努力提高设计和应用 CAI 教学课 件的能力, CAI 必将起到画龙点睛的作用,也将进一步推动教育事业的发展。 1. 4 系统建设的目的 科学技术越来越发展,我们就更加容易操作和驾驭,计算机技术的迅速发展势必将 推动 CAI 想着更先进、更高水平的方向发展,在教育学领域最终实现人机交互,对我国的 教育事业最终起到大大的推进作用,该系统建设的目的有几下几点: (1)该系统可以使学生深入理解教材的内容,掌握基本的数据结构以及相应的算法 实现过程,可以起到很好的帮助作用。 (2)该系统能实现多维立体的教育信息的传播,增强信息的真实感和表现力。 (3)该系统可以使教学内容化静为动,调动学生学习兴趣的同时可以让自身收获满 足。 根据以上三点我们就可以知道这个系统的建设是非常必要的。 南通大学杏林学院毕业设计(论文) 7 第二章第二章 需求分析需求分析 2.1 可行性分析 2.1.1 技术可行性研究 在 IT 行业中,从业的工作人员一般都要求懂计算机,并且具有一定的软硬件的基础, 会使用各种管理软件,熟悉各式的 IT 产品。因为该系统是针对数据结构算法进行的动态 演示,这样使得学生更能理解算法和培养学生的兴趣,又因为学习数据结构这门课的学生 和老师一般都是计算机专业的学生,所以在新系统投入使用时,用户都能够很快的使用这 个系统。 2.1.2 操作可行性研究 本系统采用 windows 图形界面,这是大家所熟悉的操作系统,所以,对于用户只需要 具有一般的计算机知识的人员就可以得心应手,而且,整个系统采用的是最友好的人机交 互界面,简洁明了,不需要对数据库的了解,由此,该系统的操作是可行的,有必要推广 该系统! 综上:该系统具有很高的开发可行性,不管是技术上还是操作上的。 2.1.3 非功能性需求分析设计思想 课件是教学内容和教学处理两大类信息的有机结合,它的目的是按照某种学习理论 和教学策略将教学中的重点和难点,教学上不容易凭空讲解出来的内容,通过计算机的演 示。CAI 系统在注重教学先进性、科学性的同时更强调实用性。开发需要满足一下几个原 则: (1)内容覆盖面要广:系统应该覆盖本课程的主要内容,并且结合教程选用教材, 选择语言描述数据结构的算法。 (2)功能的实用化:为了能够真正起到教学的效果,系统使用了多种演示手段,如: 单步跟踪、连续实行和跨越函数(或过程)调用等方式来演示算法的具体执行过程,并且 演示方式可以随时更换,演示的速度也可以随时调节。 (3)人机交互界面的友好性:系统界面设计遵循实用,方便的原则,各种操作简洁 明了。同时具备鼠标借口和键盘接口,可以接受来自鼠标或者键盘的输入,为了加深对算 法的理解,允许用户通过输入不同的初始数据来观察算法的具体执行情况。 (4)系统环境的运行及其可靠性,在保证系统功能的前提下,适当的降低了系统对 南通大学杏林学院毕业设计(论文) 8 运行环境的要求,以便系统可以在较低的配置系统软件环境中正常运行,对于各种有意或 者无意的错误操作以及错误的输入数据,系统可以正确处理,保证系统不会意外终止。 2.2 项目概述 2.2.1 设计要求 利用链表的插入运算建立线性链表,然后利用链表生成,插入,删除,修改等运算反 复实现链表的这些操作(创建,插入,删除,修改单独写成函数的形式),并能在界面上 显示操作前后的结果。 2.2.2 算法的功能分析 首先通过定义一个动态链表节点的结构体,然后根据结构体定义相应的操作: (1)定义一个创建链表的函数,通过该函数可以生成一个链表,并为以下函数应用 做好准备工作。 (2)定义插入节点的操作,此算法用于对链表中某个需要增加节点的插入操作。 (3)定义删除节点的操作,此算法用于对链表中某个多余节点的删除工作。 (4)定义修改节点的操作,此算法用于对链表中某个错误的节点进行修正工作。 (5)为实现代码追踪,使节点的生成与代码同步演示,使其更加形象。 (6)定义自己创建的特殊操作,可以使自己做的系统更丰富。 2.2.3 算法的设计分析: 在计算机科学中,链表作为一种基础的数据结构可以用来生成其它类型的数据结构。 链表通常由一连串节点组成,每个节点包含任意的实例数据(data fields)和一或两个 用来指向上一个/或下一个节点的位置的链接(“links“)。链表研究最大的价值就是,常 规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取 往往要在不同的排列顺序中转换。而链表是一种自我指示数据类型,因为它包含指向另一 个相同类型的数据的指针(链接)。链表允许插入和移除表上任意位置上的节点,但是不 允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。 (1)建立链表:动态的申请新的节点,不断的将新的节点插入链表。同时增加功能, 使其能够让当前节点通过左右移动,使动画更生动。 (2)插入:通过选择链表的位置,你可以将节点插入链表中的任意地方,写一个函 南通大学杏林学院毕业设计(论文) 9 数,使链表可以动态的一步步生成。 (3)删除:选择多余的节点可以直接点击删除。 (4)修改:发现有错误的节点可以及时的修改成你所需要的任意数据。 (5)此外,为了丰富毕业设计,我新增加了两个特殊操作,清空和翻转。 2.3 需求规定 2.3.1 对功能的规定 本次毕业设计主要是为了实现对链表的创建,插入,删除,修改操作,设计主要分为 主程序(program.cs),节点类(Link.cs),链表操作(Linklist.cs),从而形成一个小型 的链表操作系统。 小型系统初步实现了对链表创建,插入,删除,修改的基本功能,程序中运用程序模 块设计思想将程序合理的进行模块化使得程序从空间,时间上进行了合理的设计。程序主 要由一下函数组成:drawnode(),setlo(),drawaid()等等,程序合理的通过函数调 用以及合理的参数传递顺利的完成了链表的功能,一个好的程序还需要一个良好的用户界 面,程序中制作了一个简单,大方,明了的界面使程序更加完善。 2.3.2 项目陈述 (1)建立动态链表 我这边主要是自己写了一个 drawnode()的函数,它可以满足我的需求,把链表给画 出来,此外你还可以设置其颜色,字体,大小等,使用了一个 Timer 控件,更加可以让它 一步一步的生成链表,自然链表节点的个数也是由我在代码内控制的,你可以修改,另外 我还做了 int 型的控制,这样就不可以输入字母以及其他符号了。 (2)设计的总体思想 对于单链表的操作,我主要用到两个类,分别是 Link 类和 Linklist 类。Link 类主要 是用于建立节点的类,这个类包含数据内容 data 和“指针” ,其中 next 用于指向下一个 节点来实现单链表的连接。而 Linklist 类主要是用于进行对单链表的各种操作,例如: 初始化头节点的链表,链表的前后移动,还有链表的翻转,清空,删除,取特定节点的数 值,修改,显示,前插和后插等各种操作。所有的操作都是基于 Linklist 中的两个私有 变量 head 和 s,利用他们实现节点的查找和定位。 代码如下: 南通大学杏林学院毕业设计(论文) 10 using System; using System.Collections.Generic; using System.Text; namespace Singly_Linked_List class Link public int data; public Link next; 这边,对于单链表的头插法操作,如下图(图2.3.2) 图2.1单链表的头插法操作 1:建立新节点; 2:向新节点中添加内容; 3:使新节点指向链首; 4:改变头指针。 南通大学杏林学院毕业设计(论文) 11 2.3.3 模块结构图 生成单链表 插入修改翻转清空 头尾 前后 删除 头尾 当前 图2.2 模块结构图 首先我们生成一个单链表,然后其次插入,修改,翻转,清空,删除是我对该系统所 能在链表上实现的具体操作,对于插入和删除我们可以选择特定的节点进行变动。这就是 我做的算法操作动态演示软件设计与开发链表。 2.4 运行环境设定 2.4.1 设备 MicrosoftWindows; Server 要求内存 256 以上; cpu2.0GHz 以上。 2.4.2 支持软件 操作系统:windows 系统 Visual Studio2012,C#语言。 南通大学杏林学院毕业设计(论文) 12 2.4.3接口 提供链表节点生成,插入,删除,修改,清空,翻转等操作的界面。 2.4.4控制 系统的主要输入设备是键盘。 输出主要是显示器输出。 南通大学杏林学院毕业设计(论文) 13 第三章第三章 系统设计系统设计 系统的核心部分就是要求动画演示,变量跟踪和源代码,同步演示的实现,由每一个 算法的演示都要求实现这部分。 3.1 设计的总体思想 打开 Visual Studio2012,新建一个项目,选择 Windows 窗体应用程序,打开工具栏, 添加你所需要的控件,在界面显示,更改属性,使界面更美观,其次为每个控件添加事件, 此外自己也需要额外写一些函数方法,从而实现你所需要的功能。如下两个函数是我做的 一个项目 = 节点 + 箭头。 节点连接的指向箭头: public void drawaid(int x, int y, int w, int h, int line, int i, int tem) int gx, gy, wid, hei; wid = w; hei = h; Graphics myg = pictureBox1.CreateGraphics(); Brush aid = new SolidBrush(Color.Blue); Font fo = new Font(“Arial“, 24); if (i != myLink.count) if (i % 5 = 0)/判断节点是否到达一行的尾部 gx = x + wid / 2 - 10; gy = y - 90 + hei; myg.DrawString(“, fo, aid, gx, gy); else gx = x - tem + wid; gy = y - hei / 2 + 30; if (line % 2 = 0)/判断当前行数,奇数行右箭头,偶数行左箭头 gx += tem; myg.DrawString(“, fo, aid, gx, gy); else myg.DrawString(“, fo, aid, gx, gy); 南通大学杏林学院毕业设计(论文) 14 绘画节点的过程: / / 绘画 / public void drawnode() Point pl = pictureBox1.Location; int line = 1; int dx, dy, tem, limit; int wid, hei; dx = pl.X + 35; dy = pl.Y; tem = (pictureBox1.Width - 50) / 5; wid = tem - 35;

温馨提示

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

评论

0/150

提交评论