基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx

上传人:b****8 文档编号:9550300 上传时间:2023-02-05 格式:DOCX 页数:52 大小:1.47MB
下载 相关 举报
基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx_第1页
第1页 / 共52页
基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx_第2页
第2页 / 共52页
基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx_第3页
第3页 / 共52页
基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx_第4页
第4页 / 共52页
基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx

《基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx(52页珍藏版)》请在冰豆网上搜索。

基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文.docx

基于艾宾浩斯记忆曲线的单词记忆系统的设计与实现毕业论文

 

毕业设计

 

中文题目

基于艾宾浩斯记忆曲线的单词记忆

系统的设计与实现

英文题目

DesignandImplementationof

theWord-MemorySystemBasedon

EbbinghausCurve

 

 

摘要

当前英语地位日趋重要,词汇量成为制约大部分人英语能力的障碍。

为帮助人们更加轻松、高效的完成单词记忆过程,本次项目将结合心理学原理设计开发一个基于B/S架构的单词记忆系统。

系统主要实现记忆单词的基本功能,如:

基于艾宾浩斯记忆曲线的任务进程初始化、进程参数动态更新、记忆曲线每日修正、任务列表动态初始化、动态调整任务推送次序等核心功能。

与其他同类系统不同的是,该系统采用了心理学的研究成果,更符合人类的记忆活动,并能够根据用户的操作不断地更新用户的记忆曲线使之更符合用户个性化的记忆能力。

系统采用java编程,核心技术涉及:

数据库编程、Strut2框架、轻量级数据交换格式JSON、ExtJS的Ajax数据代理模式及界面显示技术。

关键词:

艾宾浩斯;单词记忆系统;记忆曲线更新

ABSTRACT

Englishhasbeingbecomemoreandmoreimportant,Limitedvocabularyisabarriertosomanypeople.Tohelppeoplerememberwordscomfortableandmoreefficient.Thisprojectappliedthepsychologicalprinciples,designandimplementationofsystembase-onB/Sarchitecture.Thesystemachievebasicfunctionofrememberwords.

Thecorebusinessincludesthefollowingfunctions.Initializeauserforgettingcurvebase-onEbbinghausCurve.Curve’sparametersupdatedynamicallybyuseroperation.Refreshusercurve.Generateareviewplanbyuserforgettingcurve.

Unlikeotherwordmemorysystem,Thissystemisbase-onEbbinghausCurvesoitcanupdateCurve’sparametersdynamically.Itmeansthatitbecomesmoreinaccordancewithhuman’smemorylevel.ThissystemcodeinJavaanditappliedtechniquelike:

SQLprogramming,Struts2,JSON,Ajax,ExtJS.

KeyWords:

EbbinghausForgettingCurve;WordMemorysystem;Refreshusercurve

 

第1章开发背景

1.1目的和意义

目前英语地位日趋重要,单词的词汇量是一个人英语能力及水平极大的重要体现,而背单词依旧是困扰许多人的地方,原因如下:

英语单词多而繁杂,面对整整一本的单词词典人们总是望而却步,不从何入手。

开始记忆以后没有安排恰当计划,零散的记忆,效率低下,久而久之看不见成果,便缺乏动力。

根据双重遗忘理论,人们不仅仅是忘记了单词本身,还会忘记了今天自己该复习什么单词[1],双重遗忘让我们错失了将单词从短期记忆转化成长期记忆的机会。

背单词的行为本身涉及到两个概念“记忆”和“遗忘”。

记忆是将需要记忆的元素在大脑中形成一种记忆的链结。

它是学习的过程。

艾宾浩斯曾提出,记忆可以分为瞬时记忆、短时记忆和长期记忆[2]。

遗忘是指记忆元素之间的链结弱化甚至消失,导致人们对某个记忆元素不再回忆起来。

记忆和遗忘相互制衡并存,但它们是有规律的,这就是著名的“艾宾浩斯遗忘原理”也就是“记忆曲线”或者“遗忘曲线”。

众所周知,要记住一样东西必须反复的复习重复,才能达到牢记状态,而艾宾浩斯遗忘原理告诉我们遵循记忆与遗忘的规律进行复习,将会事半功倍。

鉴于以上种种原因,本次项目设计了基于艾宾浩斯记忆曲线的单词记忆的系统,通过它,可以解决人们背单词的困扰,系统能够每天提供新增单词交由用户记忆,可以动态的根据“记忆曲线”将你最该复习的单词呈现给你,将极大的提高人们记忆效率。

1.2设计思想

该系统为Web项目。

将采用MVC的设计模式,基于B/S架构,使用Eclipse作为开发工具、MYSQL作为数据库实现。

其实现语言涉及:

Java、SQL、Javascript、html等等。

项目涉及的技术思想包含:

三层架构、Struts2框架、JSON数据格式、ExtJS、Ajax、前台数据代理技术。

后台项目的设计采用三层架构,将业务逻辑与数据库操作做分层处理,业务逻辑层不直接参与数据库操作的相关工作,它将通过调用数据库操作层实现对数据库的访问[3]。

业务流程的具体实现则通过业务逻辑层方法的相互调用实现。

前台的项目的实现采用Struts2框架,通过核心过滤器过滤页面请求,使其调用相应后台业务逻辑进行数据采集与处理,再通过Struts2流转控制机制进行页面流转控制反馈给用户显示。

1.3开发目标

该系统将主要实现以下几个目标与功能:

1.帮助用户实现信息化管理自己记忆单词的日程安排。

2.提供友好的界面供用户复习浏览单词、查看数据分析。

3.根据艾宾浩斯记忆曲线原理生成用户记忆曲线。

4.根据用户操作动态修正用户记忆曲线参数。

5.根据用户记忆曲线动态调整复习计划。

6.根据用户复习计划初始化任务列表。

7.实现任务单词推送次序调整动态更新。

系统通过实现以上几个核心功能,达到提高用户记忆效率的效果。

并在开发过程中使用较为新颖的技术及设计思想。

力求项目的创新性与可靠性。

第2章使用技术说明

2.1Struts2

本系统中前台UI的控制流转全部由Struts实现,故而在此对其进行简单的介绍。

Struts2是Struts与WebWork合并后的产物,它的最大亮点便是抛弃了Struts1中惹人厌的ActionFormBean。

Struts2对MVC模式的诠释更加的干净利落,HTTP请求到达核心控制器之后,经过处理直接找到Action对象,执行完相应代码,然后返回设定好的视图回到浏览器。

整个流程清晰明了,简单易懂,只要学会了配置struts.xml文件。

就可以轻松的完成UI页面流转的控制。

同时Struts2提供了丰富的标签库,可以更高效的完成数据的处理[4]。

2.2SQL编程

考虑到业界对ORM组件效率的质疑[5]。

本次毕业设计将所有的数据库操作都使用SQL编程,故在此对其进行简单介绍。

SQL如今被广泛的采用很好的证明了它的价值,SQL是非过程化语言,这里提到的非过程化、过程化不同于面向对象和面向过程的概念,所谓过程化就是,我们必须告诉机器每一步需要干什么,该怎么干。

开发人员虽然没有参与计算,但是机器执行的流程开放人员都了如指掌,而非过程化语言只需要告诉机器做什么即可,具体机器如何实现,开发人员不必关心,比如最简单的查询语句,我们只需要告诉机器我们要查什么,具体怎么查?

交给机器去实现。

所以非过程化语言在完成复杂任务的检索的时候具有不可比拟的优势,我们只需要告诉机器我们想要的东西就可以了。

而过程化语言我们必须事必躬亲,去安排具体的流程和实现过程[6]。

前文提到ORM组件的效率问题,这里不得不提到SQL的另一个特性,轻松嵌套,每条SQL语句的输入输出。

并且其输入输出的都是同一种类型的对象(记录集),这意味着SQL语句具有嵌套的特性,可以通过多个SQL语句嵌套完成更为复杂的功能,而这些功能若是用其他语言将会极其繁琐。

综合上述几点,本次项目中决定采用SQL编程完成所有与数据库的相关的操作。

2.3AJAX与ExtJS

ExtJS是一种用于创建前端用户界面的框架,它同时也是一种基本与后台技术无关的前端Ajax框架。

他提供了几乎所有的对于列表的操作,另外它有着良好的界面和一系列封装好的组件供你使用[7]。

它同时提供了利用AJAX技术读取数据的数据代理功能,支持JSON格式的读取功能。

2.4JSON轻量级数据格式简介

JSON(JavaScriptObjectNotation)它其实是一种轻量级的数据交换格式。

它是基于JavaScript的一个子集。

JSON采用了完全独立于语言之外的一种文本格式,但也包含了一下C家族的某些习惯(包括类似C++,C,Java,JavaScrip等等)。

这些特性使得JSON理所当然的成为一种理想的数据交换语言。

因为它不仅仅易于人的阅读和编写,同时也易于机器的解析和生成[8]。

第3章系统需求分析

3.1引言

3.1.1项目背景

随着英语的地位日趋重要,很多人为了学好英语而绞尽脑汁,单词的词汇量是一个人英语能力及水平极大的重要体现,如何提高词汇量,如何提供记忆的效率成了人们关注的重心,大家都在寻找最省时最省力的方式来记忆单词。

德国实验心理学家艾宾浩斯早在上世纪初就通过实验心理学的方式参透了人类记忆与遗忘的规律,并且发布了他的研究报告。

但是却并没有被大多数人所了解,所以许多人在找寻的完美的记忆方式,其实前人已经给出了答案,时代变迁,如今的科技已经可以让机器帮我们解决许多问题,如何通过程序让百年前前人的智慧绽放光芒,解决现在人们的困难成了程序员的任务。

为了帮助人们更加轻松高效的完成单词记忆的过程.本次项目将结合心理学原理设计开发一个基于B/S架构的单词记忆系统。

本系统主要单词记忆将实现以下几个功能:

一、用户记忆曲线生成、调整功能。

二、用户复习计划生成、调整功能。

三、用户任务列表生成、调整功能。

四、用户单词复习、浏览功能。

同时,为了提高自身能力,在系统设计的整个过程中,将尽可能的合理使用新的技术和未曾使用的框架组件。

例如:

通过ExtJS的数据代理利用Ajax实现部分前后台数据JSON格式交互等等。

3.1.2假定和约束

开发期限:

系统预期的开发期限为60天。

开发环境:

JDK1.6。

开发工具:

Eclipse。

数据库:

MYSQL。

操作系统:

MicrosoftWindow7。

3.2系统总体结构图

单词记忆系统由词库模块、复习计划维护模块、复习模块、浏览模块、用户模块等子模块构成。

每个子模块都具有特殊的操作方法和其特有的业务逻辑。

系统总体结构图如图3.1所示:

图3.1系统总体结构图

3.3系统功能模块分解

3.3.1用户模块

模块描述:

用户模块提供了用户登录验证等基本功能,用户可以通过用户名及密码登录系统、可以设置每日新增单词数量等等。

用户模块用例图如图3.2所示:

图3.2用户模块用例图

3.3.2词库模块

模块描述:

管理员通过词库模块进行词库的浏览、添加和修改操作,管理员可以选择手动添加单个单词,也可以使用XML文件进行批量添加,内部业务逻辑会自动判断词库中是否已经有该单词内容,若该单词已在词库中存在将跳过该单词继续插入下一个单词。

管理员还能对词库中的单词进行修改删除这些基本操作。

词库模块用例图如图3.3所示:

图3.3词库模块用例图

3.3.3记忆曲线模块

记忆曲线模块用例图如图3.4所示:

图3.4记忆曲线模块用例图

模块描述:

记忆曲线的相关操作(如:

初始化、参数修正、曲线更新)均由系统完成,触发相应业务逻辑时自动执行,用户不参与其中。

(具体业务的实现参见“第5章核心业务逻辑介绍”)。

3.3.4复习计划模块

模块描述:

复习计划模块是指复习计划中单词的管理工作,与处理复习行为的功能模块是两种不同概念,请注意区分。

用户登录后,可以执行的操作有:

浏览词库中没有加入自己复习计划中的单词,添加词库中的单词到复习计划,删除自己复习计划中的单词。

这里不提供修改复习计划的功能,若提供用户修改复习计划功能,与系统的业务逻辑不合。

复习计划中单词复习进度等信息的调整由系统根据用户复习单词时的操作自动更新(复习计划的调整更新操作将在“第五章核心业务逻辑介绍”中详细阐述)。

复习计划模块用例图如图3.5所示:

图3.5复习模块用例图

3.3.5复习模块及浏览模块

此部分内容为核心模块,其内容及流程,将在第5章“核心业务逻辑介绍”中详细阐述。

第4章系统概要设计

4.1系统设计思想

采用敏捷迭代式开发,使得该系统的开发是一个逐步求精的过程[9],即开发随着需求和新的业务变化而不断完善。

由于该项目是以学术学习为目的,将不考虑商用因素,在合理的情况下将选择当前最新的技术(项目所有引用的第三方组件框架等,皆是官网下载的最新版本),目的是以便成文后,可为他人在开发类似项目时提供绵薄的帮助与借鉴。

所以整个项目的设计过程中,贯彻如下的设计思想:

创新:

将选用时下最新的技术、工具、框架、组件,使得该系统在一定时间内有一定的学术讨论价值。

求精:

一个好的方法和流程设计,比无数个System.out.print();要更有价值。

将更多的精力投入到代码的设计上去而不是功能的简单堆砌、重复。

4.2系统总体设计

本系统采用时下非常流行的三层架构(MVC)设计,可以这样说几乎所有的Web应用开发都是基于MVC设计模式的[10]。

在MVC设计模式中C(Controller)即控制器负责接收(监听)所有的请求(消息),M(Model)模型,用于表示要被显示的数据和操作,V(View)视图,就是页面可以是html也可以是jsp等等,它负责将Model以某种形式呈现给用户。

在本次项目中的MVC三层架构设计中,struts2扮演着Controller的角色,service层和其调用的数据模型,数据库操作类都属于Model。

前台页面就是View层。

4.3系统工程分离

本次系统采用前后台系统分离的开发方式,将前后台分离成两个工程,WordMemory是后台工程,WordMemoryUI是前台工程。

前台工程通过引用后台工程来处理数据,它只提供页面流转控制和业务逻辑调用,所有数据的具体实现及操作将在后台工程中实现。

系统工程分离的好处:

这意味着在实现前台的时候不需要关心后台的实现,若是多人开发,将大有裨益。

必要时,更换前台工程就可以以另一种方式呈现UI及前台页面流转方式。

此外,将前后台分离后,出现BUG时易定位出错位置。

前后台工程分离结果如图4.1所示:

图4.1工程目录图

4.4系统类结构设计

4.4.1数据模型

本次项目将所有需要操作的实体抽象成数据对象,也称之为数据模型。

该包存在于后台工程中,该包中存放着系统中所有数据模型,为其他层提供抽象过后的类。

将该包中的类实例化后便可以操作对象的方式进行数据操作。

每个model类中都提供了属性的get(),set()方法(接口)供程序访问。

Model包内容如图4.2所示:

图4.2model包

4.4.2DAO层

本次项目中将所有与数据库操作相关的方法都集成在该包的类中,DAO层将与数据库的交互集中管理,方便业务逻辑层的调用。

该包存在于后台工程中,包含针对不同数据模型的数据库操作类,提供了诸如:

增删查改等相关的与数据库操作有关的方法。

将其独立分包有利于厘清层次结构,将DAO层完成后,将不需要再操心底层数据库操作的方法。

调用即可。

DAO层中的类如图4.3所示:

图4.3Dao层

考虑到每次对数据库的操作都需要创建与数据库的连接,为了降低系统负担及遵循代码复用的原则,将建立、使用、释放数据库连接的方法集成成一个数据辅助类,它为DAO层各类提供数据库连接和获取Statement、PreparedStatment对象,关闭连接等方法。

DAO层访问数据库辅助类方法如图4.4所示:

图4.4数据库辅助类

4.4.3业务逻辑层

本次项目将系统涉及的业务逻辑集成在一个层次中,称之为业务逻辑层。

该层存在于后台工程中,包含了系统所有业务流程,每个类中的方法均代表了该业务逻辑的各项操作,将其组合就可以完成需求中要求的功能,如:

提供单词复习的TestProcessService类中调用了MissionService中的Init()方法用于在单词复习前对任务列表初始化等等。

业务逻辑层中的类如图4.5所示:

图4.5业务逻辑层

4.4.4控制层

控制层的主要实现依托于Struts2提供的方法,它的主要功能是控制页面的流转及根据用户操作选择相应的业务逻辑层中的方法处理数据,并将处理结果返回给预习定义好的返回页面,完成人机交互过程。

该包在前台工程中,利用Struts2框架控制页面流转,调用业务逻辑层中的方法处理数据。

控制层中的类如图4.6所示:

图4.6控制层

4.5数据库设计

4.5.1E-R模型

根据前文对系统需求和业务逻辑的分析,可以了解单词记忆系统中实体与实体之间的关系。

而实体联系图(E-R图)正是直观表现这种关系的好方法[12]。

本系统中的实体联系图,如图4.7所示。

图4.7单词记忆系统实体-联系图

实体图可以展示各个实体中所包含的属性[12]。

为开发数据库提供依据。

下面将利用实体图一一介绍系统中的各个实体,不再用文字赘述:

用户实体图如图4.8所示。

图4.8用户实体图

词库中的单词实体图如图4.9所示:

图4.9词库中单词实体图

用户单词实体图如图4.10所示:

图4.10用户单词实体图

任务单词实体图如图4.11所示:

图4.11任务单词实体图

记忆级别实体图如图6.6所示:

图4.12记忆级别实体图

4.5.2物理模型

经过上述的分析和设计,结合数据库设计的相关原则,设计出如下几张表结构:

用户表(_user)主要用于存放用户信息及基本参数,主要结构如表4.1所示。

表4.1用户表

字段名

字段类型

字段大小

是否可为空

关键字

说明

id

int

11

用户编号

name

Varchar

45

用户姓名

password

Varchar

45

用户密码

hasinit

datetime

最近一次更新任务时间

newwordnum

int

11

每天新增单词数

单词表(_word)主要用于存放单词最基本的信息,其中包括了单词、翻译、音标。

系统中所有可使用的单词都必须存在其中。

使用单词时根据单词的id到该表中查询单词的相关内容,其主要结构如表4.2所示

表4.2单词表

字段名

字段类型

字段大小

是否可为空

关键字

说明

id

int

11

单词编号

word

Varchar

45

单词内容

trans

Varchar

500

单词翻译

phonetic

Varchar

10

单词音标

用户单词表(_userword)如表4.3所示,用于存放与用户相关的单词,该表中的单词相当于进入了用户的复习计划,它通过wordid与单词表连接,以便获取单词的内容。

表4.3用户单词表

字段名

字段类型

字段大小

是否可为空

关键字

说明

id

int

11

用户单词

userid

int

11

用户编号

wordid

int

11

单词编号

testtimes

int

11

复习次数

righttimes

int

11

正确次数

level

int

11

记忆等级

startdate

datetime

进入复习计划的时间

nextdate

datetime

下次复习的时间

任务单词表(_mission)如表4.4所示,用户存放当天复习任务。

表4.4任务单词表

字段名

字段类型

字段大小

是否可为空

关键字

说明

userwordid

int

11

用户单词编号

userid

int

11

用户编号

priority

int

11

任务推送次序

sort

Varchar

45

新旧单词标识

firsttime

int

1

是否是当天第一次出现

记忆级别表(_level)如表4.5所示,用于存放用户记忆级别的相关信息。

表4.5记忆级别表

字段名

字段类型

字段大小

是否可为空

关键字

说明

id

int

11

用户单词编号

userid

int

11

用户编号

level

int

11

记忆等级

字段名

字段类型

字段大小

是否可为空

关键字

说明

testtimes

Varchar

45

测试次数

righttimes

int

11

答对次数

count

int

11

该级别下次出现时间的偏移量

第5章核心业务逻辑介绍

5.1核心业务逻辑层简述

涉及的核心业务逻辑的类有:

LevelService、MissionService、TestProcessService、UserwordService。

LevelService.java(记忆曲线的业务逻辑):

该业务逻辑提供所有对用户记忆曲线的参数调整,曲线更新等业务需求的操作方法和流程,这些方法通过调用Dao层相应的实现完成业务逻辑内容。

图5.1展示了LevelService中的方法:

图5.1LevelService中的方法

MissionService.java(任务列表的业务逻辑):

该业务逻辑集成了任务列表的业务需求。

提供了相应的实现方法,系统只需要调用相应的方法即可实现想要的业务逻辑。

图5.2展示了MissionService中的方法:

图5.2MissionService中的方法

TestProcessService.java(单词复习行为的业务逻辑):

该业务逻辑实现了复习单词的业务需求,它其中的许多方法是通过调用MissionService中的方法实现的。

控制层在执行复习单词的业务需求时不需要直接调用MissionService层中的方法,该业务逻辑相当于对MissionService做了业务流程上的二次封装,从而简化了控制层Action中繁琐的调用。

它还实现了复习过程中动态调整推送顺序的主要业务逻辑。

图5.3展示了TestProcessService中的方法:

图5.3TestProcessService中的方法

UserwordService.java(复习列表操作逻辑):

该业务逻辑是MissionService、TestProcessService中涉及复习计划操作的基础。

所有涉及更新到复

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1