Hello Word
用 JAVA(J2SE) 实现的一个背单词程序,可自由选择词库。
1 绪论
1.1 选题目的及意义
随着国际化的发展,英语变得越来越为重要。随着越来越多的人开始学习英语,一个方便实用的英汉查询工具为人们所渴望。电子词典是一种将传统的印刷词典转成数码方式、进行快速查询的数字学习工具。使用电子词典查询英语,效率远远高于传统的图书查询,而且解释更为详尽,词库更新更为方便快捷。作为大学生,很多人都面临着CET, TOFEL, ILETS, GRE, GMAT等各种英语水平考试的压力,好的学习方法和工具可以使得英语学习事半功倍。出于此目的,本软件应运而生。
1.2 艾宾浩斯记忆曲线
1.2.1 记忆规律曲线解释
德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现,遗忘在学习之后立即开始,而且遗忘的进程并不是均匀的。最初遗忘速度很快,以后逐渐缓慢。他认为"保持和遗忘是时间的函数",并根据他的实验结果绘成描述遗忘进程的曲线,即著名的艾宾浩斯记忆遗忘曲线。图1-1。
图1-1 艾宾浩斯遗忘曲线
这条曲线告诉人们在学习中的遗忘是有规律的,遗忘的进程很快,并且先快后慢。观察曲线,你会发现,学得的知识在1天后,如不抓紧复习,就只剩下原来的25%。随着时间的推移,遗忘的速度减慢,遗忘的数量也就减少。
根据我们所知道的,记忆的保持在时间上是不同的,有短时的记忆和长时的记忆两种。而我们平时的记忆的过程是这样的:输入的信息在经过人的注意过程的学习后,便成为了人的短时的记忆,但是如果不经过及时的复习,这些记住过的东西就会遗忘,而经过了及时的复习,这些短时的记忆就会成为了人的一种长时的记忆,从而在大脑中保持着很长的时间。那么,对于我们来讲,怎样才叫做遗忘呢,所谓遗忘就是我们对于曾经记忆过的东西不能再认起来,也不能回忆起来,或者是错误的再认和错误的回忆,这些都是遗忘。艾宾浩斯在做这个实验的时候是拿自己作为测试对象的,他得出了一些关于记忆的结论。他选用了一些根本没有意义的音节,也就是那些不能拼出单词来的众多字母的组合,
图1-2 艾宾浩斯遗忘规律
比如asww,cfhhj,ijikmb,rfyjbc等等。他经过对自己的测试,得到了一些数据。然后,艾宾浩斯又根据了这些点描绘出了一条曲线,这就是非常有名的揭示遗忘规律的曲线:艾宾浩斯遗忘曲线,图中竖轴表示学习中记住的知识数量,横轴表示时间(天数),曲线表示记忆量变化的规律。这条曲线告诉人们在学习中的遗忘是有规律的,遗忘的进程不是均衡的,不是固定的一天丢掉几个,转天又丢几个的,而是在记忆的最初阶段遗忘的速度很快,后来就逐渐减慢了,到了相当长的时候后,几乎就不再遗忘了,这就是遗忘的发展规律,即"先快后慢"的原则。观察这条遗忘曲线,你会发现,学得的知识在一天后,如不抓紧复习,就只剩下原来的25%)。随着时间的推移,遗忘的速度减慢,遗忘的数量也就减少。有人做过一个实验,两组学生学习一段课文,甲组在学习后不久进行一次复习,乙组不予复习,一天后甲组保持98%,乙组保持56%;一周后甲组保持83%,乙组保持33%。乙组的遗忘平均值比甲组高。通过艾宾浩斯记忆法,与现代个人计算机相结合,为用户提供比传统背单词方式更加简单、科学、高效的背单词。
1.2.2 复习点的确定
人的记忆周期分为短期记忆和长期记忆两种。
第一个记忆周期是 5分钟
第二个记忆周期是30分钟
第三个记忆周期是12小时
这三个记忆周期属于短期记忆的范畴。
下面是几个比较重要的周期。
第四个记忆周期是 1天
第五个记忆周期是 2天
第六个记忆周期是 4天
第七个记忆周期是 7天
第八个记忆周期是15天
以上的8个周期应用于背词法,作为一个大的背词的循环的8个复习点,可以最大程度的提高背单词的效率
1.3 系统概述
1.3.1 软件名称
WhyNotMemorise(英语学习助手)
1.3.2 软件功能
基于艾宾浩斯记忆曲线,为学生提供简单、科学、高效的背单词方法。
1.3.3 用户
小学生、中学生、大学生、教师、各类英语学习者。
1.3.4 开发者
王浩宇 (whypro)
2 需求分析
2.1 需求概述
2.1.1 系统目标
为学生提供简单、科学、高效的背单词方法。使学生背单词的效率显著提高。
2.1.2 运行环境
软件需求:Windows/Linux + JRE 1.6
2.1.3 用户特点
熟悉英语,熟悉计算机基本操作。
2.2 功能需求
2.2.1 用例图
图2-1 系统用例图
2.2.2 活动图
图2-2 活动图
单词浏览
可通过直接浏览、查找的方式对要背诵的单词进行浏览,在浏览过程中,可将单词加入生词库,并设置“陌生度”。陌生度将决定日后单词提醒复习的频率,与提醒频率呈对数关系。
单词背诵
根据词库设置,显示对应单词的音标和中文释义,要求用户输入英文单词,按回车键后,系统提示正误,并将背诵记录写入背诵记录文件。
单词复习
软件读取背诵记录文件,智能提示是否有需要背诵的单词,以与“单词背诵”功能相同的方式再次记忆先前的单词。
词库设置
可选择文件,作为浏览和背诵的词库。并进行导入导出操作。
词汇统计
统计已记忆的单词,显示“单词”“首次记忆时间”“上次记忆时间”“阶段”“陌生度”等信息。这些数据直接关系着按记忆曲线背诵的进行。
2.3 性能需求
2.3.1 精度
要求系统准确定位单词的存储位置,并精确地获得词条、音标以及释义。
2.3.2 时间特性要求
要求系统显示释义的时间不超过100毫秒。键盘响应时间不超过10毫秒。
2.3.3 输入输出需求
输入和输出都采用文件的方式。词库使用文本格式存储。
2.3.4 其他需求
界面小巧、简洁、美观。
3 总体设计
3.1 系统结构
3.2 类图
图3-1 类图
3.2.1 单词浏览
可通过直接浏览、查找的方式对要背诵的单词进行浏览,在浏览过程中,可将单词加入生词库,并设置“陌生度”。顺序图如图3-2
图3-2 单词浏览模块顺序图
3.2.2 单词背诵
根据词库设置,显示对应单词的音标和中文释义,要求用户输入英文单词,按回车键后,系统提示正误,并将背诵记录写入背诵记录文件。顺序图如 图3-3
图3-3 单词背诵模块协作图
4 详细设计
软件的主要类如图4-1
图4-1 类图
4.1 WordManager:
词条管理器,主要负责读取字典文件。
字典文件由*.idx与*.dict两个文件构成,其中idx为索引文件,其格式为:{word (以’\0’结尾)}{offset (4byte)}{size (4byte)},dict为二进制文件,保存着单词的解释。WordManger通过分析idx中的信息访问dict文件获取释义。
+getWordAndInterp(): 获取单词、音标以及释义。
4.2 WordTester:
抽象类,包含鼠标键盘事件处理,实现单词测试的功能。
+newRandomWord(): 从词库中随机抽取一个单词。
+getTestWord(): 获得该单词的音标和释义。
+chooseThesaurus(): 选择词库。
+keyTyped(): 键盘事件处理。
4.3 WordReciter:
继承WordTester,实现