基于JavaWeb的背单词系统的设计与实现

毕业设计 告(论文)

基于JavaWeb的背单词系统的设计与实现

所属学院 电子与计算机工程学院
专 业 软件工程

姓  名
指导教师
起讫日期 2021.1 – 2021.5
设计地点

东南大学成贤学院毕业设计 告(论文)
诚 信 承 诺

本人承诺所呈交的毕业设计 告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。如论文涉及任何知识产权纠纷,本人将承担一切责任。

学生签名:
日  期:

关键词:单词学习;Java;Android框架

Design and implementation of word reciting system based on Andrews
Abstract
Today, electronic dictionaries have functions comparable to PDA, such as touch screen display, MP3 player, video player, game playing and so on. But now the various entertainment functions of the electronic dictionary will affect our learning, so in order to improve the efficiency of students learning words, find words, so that students improve their attention in learning words, students are forced to need the electronic dictionary to solve this problem.
The development of English word assistant memory software can complete the electronic learning process and improve the efficiency of word learning. This paper adopts the standard. Net framework, which is divided into three layers: logic processing layer, front-end layer and back-end layer, to realize the word management function and learning function management. This system uses object-oriented design method and C # language technology to analyze, design and implement the English word auxiliary memory software. The English word assistant memory software has the functions of word management, storage management, learning and so on. The test shows that the system achieves the expected requirements.
The implementation of this paper can facilitate the user to query and contact words, can continue to find new words through word learning, and then record these new words, and repeat learning. It can improve the efficiency of learning words and finding words, so that students can improve their attention when learning words. Students are forced to need an electronic dictionary to solve this problem.

Key Words: Word learning; C #; Android framework

目 录
第一章 绪论 1
1.1 研究与意义 1
1.2 国内外研究现状 1
1.3 研究内容 2
1.4 章节安排 2
第二章 相关理论和技术 3
2.1 Android平台 3
2.2 Java语言的特点 4
2.3 MVC设计模式 5
2.4 本章小结 6
第三章 系统需求分析 7
3.1 系统功能需求 7
3.1.1 单词管理功能 7
3.1.2 保存管理功能 7
3.1.4 学习管理功能 8
3.2 系统非功能性需求 8
3.3 可行性分析 8
3.4 本章小结 8
第四章 系统设计 10
4.1 系统架构设计 10
4.2 系统功能设计 11
4.3 系统设计 12
4.3.1 数据库概念结构设计 12
4.3.2 数据库表的设计 12
4.4 本章小结 14
第五章 系统实现 15
5.1 开发环境 15
5.2 功能实现 17
5.2.1 系统设置 17
5.2.2 单词管理实现 18
5.2.3 单词保存管理实现 18
5.2.4 单词学习管理实现 20
5.3 本章小结 26
第六章 系统测试 27
6.1 测试环境 27
6.2 系统测试的目的 27
6.3 系统功能测试 28
6.3.1 保存管理模块测试用例表 28
6.3.2 单词管理模块测试用例表 28
6.3.3 学习模块测试用例表 28
6.4 本章小结 28
第七章 总结与展望 30
7.1 总结 30
7.2 展望 30
致 谢 31
参考文献 32

1.4 章节安排
第一章:绪论,介绍了系统的研究背景和意义,并说明相关研究的国内外现状。
第二章:相关理论和技术,介绍了本系统开发使用到的Android框架,系统开发过程中使用的数据库,以及开发过程中使用的语言。
第三章:系统需求分析,介绍了本系统的相关功能需求以及性能需求。
第四章:系统设计,对系统软件框架进行了设计,对系统的功能进行设计。
第五章:系统实现,对系统的主要功能模块,如单词管理功能、学习管理功能进行了代码实现。
第六章:系统测试,对系统的功能进行测试,对系统的各个主要功能进行测试。
第七章:总结与展望,完成对系统的总结并对未来的研究进行了展望。

第二章 相关理论和技术
2.2 Java语言的特点
Java语言拥有很多特点,它的系统极小,所以Java的应用软件能够在相当小的系统上独立使用和工作。这种省略了复杂特性并增加了实用性功能的开发,让Java语言拥有了简单性。面对对象的技术是近些年来软件开发中使用最为普遍的程序设计方法,也是最重要的一个特性。在一个面向对象的系统中,类是数据和操作数据的方法的集合,在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。Java在保留继承性、封装性等优点的基础上,又支持静态和动态风格代码的使用,发挥出了优势。Java具有以下突出的特点:
(1)语法简单,不允许直接操作内容,去掉了指针操作。
(2)C#完全面向对象,具有面向对象语言的所有功能:封装,继承和多态。
(3)与Web紧密结合,Java支持绝大多数的Web标准,例如HTML、XML、SOAP等。
(4)强大的安全机制,消除软件开发中的常见错误(如语法错误)Android提供垃圾收集器,帮助开发人员有效管理内存资源。
(5)兼容性,因为Java遵循Android公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容。
(6)灵活的版本处理技术,因为Java预言本身内置了版本控制功能,使开发人员能够更加容易挤开发和维护。
(7)完善的错误,异常处理机制,Java提供了完善的错误和异常处理机制,使程序在交付应用时能够更加健壮。
2.4 本章小结
本章完成了系统采用的开发平台、开发语言的概述,并介绍了系统的设计模式。
第三章 系统需求分析
3.1 系统功能需求
3.1.1 单词管理功能
此模块所完成的功能是对系统中的单词信息管理。单词管理模块的主要功能是对单词信息的维护。单词信息的维护包括对单词的添加、修改、删除。每个单词都有唯一的标识。单词管理的用例图如图3-1所示。
图3-1 单词管理用例图
3.1.2 保存管理功能
此模块所完成的功能是用户在学习的过程中对不熟悉的生词进行保存。用户可以对保存进行添加、删除。每个生词都有唯一的标识。保存管理的用例图如图3-2所示。

图3-2 保存管理用例图
3.1.4 学习管理功能
学习管理功能实现了用户对单词的学习,可以查询单词信息,可以控制背诵的数量。学习管理的用例图如图3-3所示。

图3-3 学习管理用例图
3.2 系统非功能性需求
1.系统性能需求
本系统要求所有的客户端都可以7*24小时都可以正常的工作,并可以同时支持大约500人在线,并可以实现系统响应时间小于5秒。
2.系统界面需求
在设计操作页面时颜色搭配符合大众审美,且不会干扰用户,让用户注意力保持集中状态,便于后期维护与更新系统,用户在操作系统时还会出现各种无法预知的问题。因而要全面调研用户需求,获取不同用户角色基本需求与需要解决的问题。
3.3 可行性分析
1.经济可行性
本研究使用成熟的技术来设计,所花的成本来的低。根据电子词典需求设计 站,若可以增加现有用户对英文单词的了解,让 站具经济效益,所以经济可行性是可以成立的。
2.技术可行性
在软件使用上,都是使用的成熟技术,在制作技术上并无太大的问题,所以技术可行性是可以成立的。
3.操作可行性
信息化的发展快速和 络化的普及,浏览者是可以通过本系统获取到单词的详细信息。本研究都使用简单明了的操作,使浏览者能轻易上手,所以操作可行性是可以成立的。
3.4 本章小结
本章完成了系统的需求分析以及可行性分析。从功能需求和性能需求对背单词系统进行了需求分析,通过 会、经济和技术等方面进行了可行性分析。

第四章 系统设计
通常情况下,在对系统进行了需求分析之后,要对系统进行系统设计,系统设计阶段也是开发系统的一个重要阶段,系统的设计阶段同样对系统开发成功与否起到了重要的作用。
4.1 系统架构设计
Android之所以创造了消息机制是为了实现其Frame/View/Model三位一体的架构。Frame/View/Model架构的意义在于将处理消息的职责分配到合理的类中去处理,例如在菜单上点击一个”保存”选项,处理这个消息就应该交给Model类来实现,而如果点击”更新”选项,则将这个消息交给View类来处理更方便一些。Android的消息机制就负责将消息交给合适的类去处理。使用Android的优点:
1.降低程序模块之间的耦合性
因为视图层和业务数据层分离,使UI和逻辑代码分开编写,不仅仅是对于个人,而对于一个团体开发来讲,个人负责个人的模块,互不干扰。在后期进行维护或者二次开发的时候,如果只是更改了数据逻辑,则无需更改UI即可实现逻辑修改。如果换了设计团队,则只需要修改View层代码即可完美嵌套原有逻辑。Android开发模式实现了前后端分离和降低了模块间的耦合性。
2.提高代码可复用性
Android多层分离开发模式可以让多个不同的View页面使用同一个数据模型,不仅仅是客户端的视图,还包括HTML,移动端H5或者app等,当多个端显示同样的数据时,则不需要重新构建数据模型,只需要复用同一个即可,大大提高了代码重用性。
3.软件部署快,开发周期和成本低
Android开发模式只需要改变UI的基础上,不用多次开发数据模型,在开发和维护各层间接口的技术难度降低。使用Android开发模式可以使后端逻辑代码开发和前端页面UI同时进行,大大减少开发时间,节约人力成本,并且它使后端开发人员将集中精力集中于于业务逻辑层代码编写上,而前端开发程序员(HTML或APP开发人员)则可以集中精力于页面UI和用户交互上。
4.后期维护简单或二次开发易用性高
Android中的视图层可以单独拿出供前端开发人员进行修改维护,业务逻辑层则由后端开发人员进行开发维护,术业有专攻,低耦合的开发方式使得WEB应用在使用或二次开发中更易于维护和修改。
背单词系统采用Java语言开发,用Android框架,具体如图4.1可知,该系统的主要是以Android框架架构进行架构的,主要是为了便于实现该系统与其他系统之间的兼容性,Android框架被看做是Java语言编写的比较流行的设计框架之一,因此在系统的维护性和可扩展方面具有一定的优势;该架构之上便是系统的逻辑业务模块,也是本系统的核心内容是整个系统的心脏,不仅与前端进行交互处理复杂的业务逻辑。

图4.1 系统框架图
4.2 系统功能设计
背单词系统基于Android框架构建,涉及到Java,HTML等相关技术。背单词系统实现的功能模块如下:
(1)学习管理:此模块所完成的功能是对系统中的单词进行查看,并决定下一步动作,是继续学习单词,还是保存。
(2)单词管理:此模块所完成的功能是对系统中的单词信息管理。单词管理模块的主要功能是对所有的单词信息进行维护。单词信息的维护包括对单词的添加、修改以及删除等。
(3)保存管理:此模块所完成的功能是对系统中的生词信息管理。保存管理模块的主要功能是对所有的生词信息进行维护。保存信息的维护包括对单词的添加以及删除等。
(4)系统管理模块是针对于系统的一个主要核心模块,该模块实现了系统的基本设置。

图4-2 系统模块结构图
4.3 系统设计
4.3.1 数据库概念结构设计
本系统的设计的E-R图如下图4-3所示。

图4-3 系统E-R图
4.3.2 数据库表的设计
(1)用户基本信息表
用户基本信息表存储了用户的基本信息,包括用户编 ,用户姓名,用户年龄,用户性别,用户邮箱,用户手机。其表结构如表4-1 表。
表4-1 用户表
Name Type Key 说明
user_id Int 是 用户编
user_name VARCHAR(50) 否 用户姓名
user_age Int 否 用户年龄
user_sex VARCHAR(10) 否 用户性别
user_email NUMBER(20) 否 用户邮箱
user_phone NUMBER(20) 否 用户手机
user_storageid Int 否 用户所在单位编
(2)角色表。角色表主要存储系统中的角色信息,具体信息如表4-2所示。
表4-2 角色信息表
Name Type Key 说明
id Int 是 编
name double 否 角色名称
Remark VARCHAR(40) 否 备注
time datetime 否 创建时间
(3)用户角色表,描述了系统中的各个用户具有的角色信息。具体内容如表4-3所示:
表4-3 用户角色表
Name Type Key 说明
id Int 是 编
User_id double 否 用户ID
Role_id VARCHAR(40) 否 角色ID
(4)单词信息表,单词信息表存储了各个单词的基础数据信息。包括单词编 、英文名称、中文解释、详细描述。表结构详见表4-4单词表。
表4-4 单词表
Name Type Key 说明
id Int 是 编
name VARCHAR(50) 否 英文名称
explain VARCHAR(50) 否 中文解释
desc int 否 详细描述
(5)生词信息表,生词信息表存储了各个生词的基础数据信息。包括生词编 、相关单词、添加人、添加时间信息。表结构详见表4-5生词表。
表4-5 生词表
Name Type Key 说明
id Int 是 编
Word Int 否 相关单词(外键)
user Int 否 添加人(外键)
time VARCHAR(20) 否 添加时间
(6)复习表,复习表存储了各个单词的复习信息。包括复习编 、复习单词、复习人、复习时间信息。表结构详见表4-6复习表。
表4-6 复习表
Name Type Key 说明
id Int 是 编
Word Int 否 相关单词(外键)
user Int 否 复习人(外键)
time VARCHAR(20) 否 复习时间
score Int 是 复习成绩
(7)测试表,测试表存储了各个单词的测试信息。包括测试编 、测试单词、测试人、测试时间信息。表结构详见表4-7测试表。
表4-7 测试表
Name Type Key 说明
id Int 是 编
Word Int 否 相关单词(外键)
user Int 否 测试人(外键)
time VARCHAR(20) 否 测试时间
score Int 是 测试成绩

4.4 本章小结
本章完成了系统的概要分析,对系统的架构进行了设计,对系统的功能进行了设计。

第五章 系统实现
5.2 功能实现
5.2.1 系统设置

图5-2 系统提醒界面
如图5.2所示,系统可以设置提醒时间,然后在系统根据该设置的时间来 警。系统通过timePicker控件让用户进行选择时间,具体如下:

5.2.2 单词管理实现
管理员可以对单词信息进行管理。管理员还可以通过点击添加单词库,从而实现单词信息的添加。管理员还可以对单词进行修改和删除,而其他用户只能对这些单词进行查看。

图5-3 单词管理界面
如图5.3所示,管理员输入的前台由GREWordActivity实现,管理员点击添加选项,然后系统调用GREWord类,GREWord类执行save方法,save方法中输入的单词英文、单词中文等,然后该方法实现通过DBHelper.java完成数据库中保存单词信息,最后通过Table控件一列列的展示这些单词信息。
5.2.3 单词保存管理实现
用户以对学习中的生词进行保存管理。用户可以对生词本进行浏览学习,可以对某个生词进行移除,可以对某个生词进行重复学习。单词保存管理有利于用户的反复学习,有利于加强对单词的理解。

图5-4 保存单词界面
如图5-4所示,用户可以对生词进行保存,可以对某个生词进行移除,可以对某个单词加入复习,完成重复学习。具体的的代码如下:
public void savebook()
{
book.wordList.Sort((x, y) =>
(x.falseTime==y.falseTime) (x.viewTime.CompareTo(y.viewTime))-x.falseTime.CompareTo(y.falseTime)));
//book.wordList.Sort((x, y) =>
//(y.falseTime == x.falseTime) (y.getWord(0).CompareTo(y.getWord(0))) : (y.falseTime.CompareTo(x.falseTime)));
//在Debug目录下新建一个txt文本,将新排序好的单词列表写入到txt文本中
string tmp = “”;
for (int i = 0; i < book.wordList.Count; i++)
{ tmp = tmp + book.wordList[i].getWord(0)+” “+
book.wordList[i].chMeaning+ ” ” +
book.wordList[i].falseTime + ” ” +
book.wordList[i].viewTime + ” ” +
book.wordList[i].perFalseTime+
“rn”;
}
lion.WriteFile(tmp, “lastStudy”+DateTime.Now.ToString(“yyyyMMddHHmmss”)+”.txt”);
}

图5-5 生词查询界面
如图5-5所示,用户可以对生词进行查询,生词按照字母进行升序排列,并详细介绍每个次的词性以及对应的中文解释。
5.2.4 单词学习管理实现
单词学习管理可以实现的功能包括:
(1)查看单词:开始学习时,先背诵每个单词。
(2)设置背诵数:用户输入背诵单词个数,点击“开始学习”按钮,即可开始背诵单词,用户可以通过点击上一个和下一个按钮完成学习记录的查询.
(3)修改单词:每个单词背诵完后,开始听写部分,听写部分会给出中文含义,要求输入正确的英文单词;答错,会将该单词记录,在单词听写完后针对答错的单词进行再一次听写,直到答对为止。
(4)复习单词:如果背诵的单词没有听写正确,则重新复习,直到听写正确为止。一组内的所有单词都听写正确后,开始下一组单词的学习。

图5-6 开始学习界面
如图5-6所示,根据学习过程中单词错误数(从多到少)和单词学习数(从少到多)对单词本进行排序;提供单词列表供用户学习,单词排序方法(优先按错误数排序(按错误数从大到小),再按浏览数(从小到大)),对单词列表进行排序如果错误数不一样,优先按错误数降序排序(从大到小);如果错误数一样,再按浏览数升序排序(从小到大))。具体的代码如下:
private void showStudy()
{ if (currPos >= book.falseWordList.Count)//如果当前学习位置>=错误单词列表的总个数
{ if (this.ShowAskDialog(“是否开始背诵”) == true)//弹出来的对话框如果选择了”是”
{ isBS = 1;//背诵模式
currPos = 0;//当前学习位置归零
TextBoxEnglishWord.Text = “”;//单词框清空,供用户默写
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框里显示错误的单词的中文
return;
}
}
if (isBS == 0)//如果不是背诵模式
{ TextBoxEnglishWord.Text = book.falseWordList[currPos].getWord();//英文框显示错误单词列表的单词英文
syncStudy();//调用syncStudy()方法
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框显示错误单词列表的单词中文
book.wordList[currPos + studyPos].viewTime++;
}
else//如果是背诵模式
{ TextBoxEnglishWord.Text = “”; //单词框清空
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框显示错误单词列表的单词中文
}
ShowInfoTip(currPos.ToString());
}
}

图5-7 朗读界面
如图5-7所示,用户可以通过点击声音按钮实现朗读,然后系统通过TTS实现文本转换为声音,具体如下:
private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {

图5-8 复习计划界面
如图5-8所示,用户可以构建自己的复习计划,从而可以根据复习计划来进行学习,具体的复习内容包括各个单词,并要求学习进行回答

图5-9 测试界面
如图5-9所示,用户可以对各个生词进行测试,从而可以不断的反复的学习,系统回自动产生各种选项,用户点击这些选项进行回答。

图5-10 测试结果界面
如图5-10所示,系统可以自动产生各种测试的结果分析,从而知道用户的真实水平,对用户也是一个提醒过程,知道自己的进步情况。
5.3 本章小结
本章完成了系统的实现,对系统的主要功能进行了展示,并说明系统功能的操作和使用过程。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月3日
下一篇 2022年4月3日

相关推荐