1、厦门大学软件学院毕业设计(论文)开题报告 学生姓名 班级 学号 指导教师姓名 职称 所在单位 厦门大学软件学院 毕业设计 (论文)题目 珠算仿真与教学系统 应用于 PC 端的 珠 算教学模块设计 一、本研究课题的科学依据和意义(包括科学意义,国内外研究概况、水平和发展趋势,学术思想,理论依据) 1、背景介绍: ( 1)珠算、珠心算的历史渊源: 中国的算盘是最古老的计算工具,是一种没有存储设备的简易计算机 1。 珠算在我国具有三千多年悠久的历史,其源头可追溯到两汉以远, 从宋朝开始珠算逐步替代筹算,至明代而独领风骚,一度成为我国数学发展的主流 ,并流传远至海外 2。经过上千年的发展,珠算已经构成
2、了一种文化现象,成为中华传统数学文化中的一块瑰宝,是一项影响深远的非物质文化遗产 1。 “珠心算”是珠算和心算结合的产物,其兴起于上世纪 80 年代,并在开发幼儿和少年智利潜能的教学试验中取得了巨大的成功 3。珠心算的基本方法是:珠算导入,大脑拨珠 4。就是在熟练珠算的基础上,在大脑中建立算盘影像,逐渐学会脑算拨珠,由浅入深 、从低到高、先慢后块,逐步达到速算的目的 5。 ( 2) 计算机辅助教学的应用背景 计算机辅助教学 (Computer Assisted Instruction),简称 CAI,它广义上指计算机在教育领域内的广泛应用,具体包括在教学、研究、管理等等项目中以各种方式使用计算
3、机减少工作量的现代化辅助手段;一般意义上的计算机辅助教学则是指教师使用电脑作为教学媒体,为学生提供一个学习环境的新模式改良,学生通过与计算机的交互对话进行学习的一种教学形式,即我们平时所说的多媒体辅助教学。 ( 3) 智能手机的应用背景 智能手机是相 对于 普通通信手机而言的, 这里可以做一个 简单的比喻,我们把普通手机当成是一个单片机,而智能手机就相当于一台多媒体电脑 。 但智能手机又不同于 PDA 手机,她既具备普通手机小巧的身材,又 同时 能胜任智能软件的处理工作,可谓是麻雀虽小,五脏俱全 。 ( 4)珠算软件的研究概况: 珠算既有横梁穿档的算盘,又有一套完善的算法和口诀 4。 前者相当
4、于现代电子计算机的硬件,后者相当于软件。许多研究工作表明,电子计算机与珠算有许多相似之处 6。 珠算集输入、储存、运算、输出为一体 7。 珠算和电子计算机计算都有算法,存在着系统 上的相似、算法语言上的相应、计算程序上的相当 8。学习珠算,可以形象地理解电子计算机原理。电子计算机 的 使用 算法和珠算算法,都是一种机械化的算法,可以彼此借鉴,相得益彰 9, 10。 但遗憾的是,目前推出的与珠算相关软件产品还是很罕见的,相关的研究也并不是很多。比较有应用价值的只有, 电子工业部第研究所太原西迪计算机公司和太原财政局联合研制成功的中国珠算技术等级试题库计算机自动生成系统软件 11,以及一款由日本出
5、品的算盘 DS珠算游戏,可以支持联机。 2、应用现状: 进入 21 世纪以来,随着电子技术的发 展,珠算在计算领域内的范围大为缩小,但并不意味着其将逐步被淘汰,反而其还有着 强盛持久 的生命力。“珠心算”教学的出现,更是珠算文化的一项创新发展,具有开发儿童智力潜能的强大功效,并取得了计算器所达不到的效果 12。珠算文化也一直得到政府相关部门的大力支持,并通过一些大型的技术交流和研讨会产生重大的国际性的影响, 2002 年还在北京成立了世界珠算心算联合会 13, 14。其实,珠算文化与计算机技术是可以并行不悖的,其深厚的科学价值尚未被人们完全认识,还有很大的开发空间和应用价值 15。 3、存在的
6、问题: 珠算 有着辉煌的历史,但是当前,随着计算器的广泛应用以及电脑的普及,珠算进入了发展的一个新阶段。虽然和电脑以及计算器相比,珠算有速度较慢,需要学习过程以及无法做到随时计算等等缺憾,但是,随着珠心算的提出和发展,对于一个熟练的,经过系统培训的珠心算学习者来说,他可以有和计算器不相上下的速度以及随时随地速算的方便快捷,应该说,运用电脑强大的计算能力和人机互动技术将电脑和珠算以及珠心算有机的结合起来,通过教学使得用户掌握珠心算口诀进而学会珠心算的速算到对珠算的普及 15。这是珠算当前发展的突破之举。但正如前文所提,在 电脑与珠算,珠心算的结合上,市面上还没有一个很好的,成熟的解决方案,而对于
7、珠算的仿真模拟,也是寥寥无几。这在很大程度上制约了珠心算的普及。 、系统目标: ( 1)总体目标: 本系统的总体目标在于建立一个 全面而完善的珠算模拟程序,体现珠算和珠心算算法,并可以移植到手机 平台上,集各种多媒体手段于一身的珠算仿制系统。另外,还有一个重要的目标,是可以在教育教学中得到推广,使珠算这项中华民族智慧的结晶通过现代计算机辅助手段得到继续的弘扬和发展。 ( 2)我们的具体目标如下: 1.在计算机上模拟出算盘的运行状态,可以通过 计算机外部设备(如键盘、鼠标等)来进行控制; 2.在计算机上模拟出珠算和珠心算运算过程,包括基本运算和快速运算,并配以教程来教授各种珠算算法,形成一个学习
8、系统; 3.在以上基础之上,将此系统(或其某个部分)推广到其他多媒体平台上去,如移动电子设备(手机、 PDA 等),并加入动画、声控等元素来丰富软件的可视效果。 5、系统分析: ( 1)系统模块划分及其关系 : 具体可以分为以下几个模块 1.珠心算模块; 2.珠算教学模块; 3.移植至智能手机模块。 模块之间关 系如图 1 所示。 图 1.系统模块划分及关系示意图 ( 2)项目组成员分工 : 本项目组由 3 人组成,具体分工如下: 1.珠心算模块由梁清东同学负责; 2.珠算教学模块李超同学负责; 3.移植至智能手机模块由翁拓同学负责。 6、核心算法思路: 基于上述问题和珠算以及珠心算发展的新趋
9、势,我们项目组希望能够借鉴学习网络上已经存在的珠算仿真算法,并加以改进和创新,灵活应用从而实现在计算机上对珠算以及珠心算的仿真模拟系统的实现。 通过在互联网的搜索以及查找相关资料,我们从算法的复 杂度以及可行性着重比较了以下用链表以及用数组这两种算法的优缺点: (1)通过链表实现在计算机上对算盘的模拟 这种算法通过对于用链表构造算盘的柱来实现对整个算盘的模拟,进而再通过对链表堆栈的入栈以及出栈操作实现对数据的运算和存储,模拟了算盘各个算珠的运算过程,同时,由于为了避免一般算盘上的双进位问题,“链表法”提出了改进的算盘模型,即通过将旧算盘的上两珠下四珠模型改进为上三珠下六珠的新模型,避免了双进位
10、的问题,减少了算法复杂度,提高了算法效率 16。 但是相应的,这种算法也存在着一些弊端,首先,由于它改变了 传统算盘算珠的排列,所以很难通过算法本身输出为传统算盘模型,我们项目组讨论的结果是,可以通过在算法前端插入一个图形化输出模块达到由上三珠下六珠向传统算盘模型的转换,在继承了链表算法高效率低复杂度的同时,使整个界面更人性化,更易读。 此算法如图 2 所示。 图 2.通过原有算法改进得到的主模块流程 ( 2) 通过数组实现在计算机上对算盘的模拟 通过数组实现对算盘的模拟,这个方法的最大特点就是算法较容易实现,可以通过一个二维数组构造出记录每个算珠状态的程序空间,计算中对每个算珠的计算通过程序
11、语言中的计算直接计算出结果 并 最终转换到计算机前端显示的算盘上。 同样的,这种采用数组对算盘的模拟算法也有一定的缺憾,首先,这种算法不是一种对算珠状态实时的模拟,这种算法主要通过程序语言自带的计算器控制算珠状态,这样一来容易造成较高程序复杂度。其次,这种以数组方式对算盘的模拟容易因为对于堆栈空间以及数组空间设定不当造成程序安全隐患。最后一点,虽然通过数组模拟算盘相对链表实现比较容易编码,但是程序的效率不高。 此算法如图 3 所示。 图 3.团队自行创造的核心模块流程 通过对以上两种算法的比较发现,链表实现方法有着效率较高,算法复杂度也较高的 特点,比较适合在本身硬件条件要求苛刻的手持设备上使
12、用,通过前端模块的输出转换,将非标准的算珠状态转换成传统算珠状态。而通过数组构造算珠的算法则有着效率稍低但是易于实现且无需转换模块的优点,我们项目组同学讨论后认为,这种算法更适合在有较好空间状态的台式机上完成,而且因为它本身并不涉及珠算口诀的使用,所以可以在一定程度上因不同需求而运行,节约了系统成本。 二、拟采取的研究方法和技术路线(包括研究工作的总体安排和进度,计算、实验方法和步骤及其可行性论证,可能遇到的问题和解决方法) 1、个人任务与目标: ( 1)任务: 珠算 教学 模块的实现与界面设计和文档撰写。 ( 2)目标: 1.通过可视化效果良好的图形界面完成珠算的动态展示功能; 2.通过动态
13、的算盘运动和相应的动态注解 来更好地完成教学目的; 3.通过键盘或鼠标的控制,使使用者通过计算机来体验打算盘的乐趣; 4.提供 详尽的文档说明,以增加软件的完善程度 。 ( 3)个人模块功能概览: 模块在系统中位置和功能如图 4 所示。 图 4.珠算教程模块功能 2、个人模块划分: 具体可分为以下几个模块: ( 1)界面初始化模块: 检测基本函数库的完整性,初始化图形界面模块,检测网络连接,声音模块。 ( 2)珠算模拟模块: 通过链表构造模拟珠算算珠,并处理由基本数据处理模块转换自用户鼠标或键盘的事件。最后通过与图形化输出模块的连接将数据转换成图形输出到用户界面上 ( 3)基本数据处理模块:
14、对用户鼠标,键盘产生的动作产生响应,并将对应动作规范化的对应到内部算法的各个动作之上。 ( 4)界面框架模块: 使用 Flash 和 java 进行设计,排列各个框架。 ( 5)图形化输出模块: 对算法内已经处理完毕的算珠移动和计算出的结果,动 态显示在主界面的算盘模拟图上。 ( 6)功能扩展模块: 包括网络连接,声音控制以及 Flash 互动。 ( 7)文档整理 ( 8)整体协调 3、模块关系及设计特点: ( 1)各个模块之间的关系(如图 5 所示) 图 5.珠算系统模块关系 ( 2)模块设计特点:(如图 6 所示) I.菜单驱动 II.以数据为中心 III.统一的访问接口,便于管理数据,提
15、高数据的安全性,所有的模块于珠算模拟部分访问交互。 图 6.珠算系统各模块功能区分 4、界面模块设计 ( 1)采用轻量级 GUI 设计: 采用轻量级 GUI 组件,如 Swing、 SWT 等 进行界面设计,尽量消除用户界面在不同操作系统下的平台相关性,使界面能够跨平台运行,并且在不同系统下界面基本一致; ( 2)封装接口: i.对系统初始化接口进行封装,如线程模型建立、初始化数据载入、网络连接检查等; ii.各功能模块尽量提供静态方法,以方便对系统各功能的接口进行调用; ( 3)动态界面设计: 对珠算模拟部分界面尽量采用 Flash 动画辅助 java 设计,使得用户易于理解接受,并通过 F
16、lash 小程序实现与用户的互动教学。另,配以系统助手(卡通形象),使界面更具友好性,更加富于变化。 5、基础设施平台: ( 1)开发工具: Flash CS3 ( 2)开发语言: ActionScript2.0 ( 3)开发平台: Windows XP 6、项目开发的前期准备: ( 1)了解珠算的各种算法和相关知识 ( 2)了解现有的珠算模拟软件的算法 ( 3)学习现有的算法并进行改进 ( 4)复习所涉及的语言和知识,熟悉开发环境 7、可能遇到的问题和解决方法: ( 1)界面处理: 利用 java 可视化图形界面包 SWT 来完成界面设计与处理,但在动态效果上的处理不如 Flash 好,可使
17、用 Flash 除了其动作脚本外,又无法配合数据奎的使用;解决办法是把 Flash 嵌入到 java 程序中,利用读取共同的 XML 文档来实现步调的统一和变量处理、控制。 ( 2)测试资源: 集成 测试中网络部分的压力测试不好进行,没有足够的资源进行大量的检验。 ( 3)算盘模拟: 算盘控制方式,由于算盘的长度长于键盘,所以无法一一对应控制,如果采取一对多的形势则势必会减慢速度,易于控制的方法还在研究之中。算法实现中,也还存在 部分未明确 的地方 ,寻求导师和研究生的帮助。 8、时间进度安排: ( 1) 2007 年 2 月 18 日 2007 年 2 月 29 日 项目先期准备,通过书籍、
18、网络查找相关背景资料 和研究成果;对系统开发所涉及的技术和开发平台进行学习和进一步熟悉。 ( 2) 2007 年 3 月 1 日 2007 年 3 月 15 日 完成系统项目计划,需求分析,系统设计与模块划分;明确团队成员分工;实现核心模块算法设计与代码实现;征求指导老师意见并进一步修改。 ( 3) 2007 年 3 月 16 日 2007 年 3 月 31 日 提交毕业设计开题报告;完成接口设计和统一;提出界面设计方案。 ( 4) 2007 年 4 月 1 日 2007 年 4 月 20 日 数据库构建完成,代码编写基本完成,所有模块基本完成,界面设计完成;整合所有模 块,项目组内部统一,修改并优化程序性能。 ( 5) 2007 年 4 月 21 日 2007 年 5 月 10 日 集成测试,所有模块协同工作测试,整个软件主体基本完成;系统测试,项目组成员模块整合测试,包括稳定性测试和跨平台测试。 ( 6) 2007 年 5 月 11 日 2007 年 5 月 25 日 确认软件功能,由开发人员确认所需功能均已完成,并进行系统评估和分析;