基于android的信息专业英语词典的设计与开发.docx
《基于android的信息专业英语词典的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于android的信息专业英语词典的设计与开发.docx(48页珍藏版)》请在冰豆网上搜索。
基于android的信息专业英语词典的设计与开发
题目基于Android的信息专业英语词典的设计与开发
学生姓名学号
所在院(系)数学与计算机科学计学院
专业班级计算机科学与技术1201班
指导教师
完成地点陕西理工学院
2016年6月2日
陕西理工学院本科毕业设计任务书
院(系)数学与计算机科学学院专业班级计算机科学与技术1201班学生姓名
一、毕业设计题目基于Android的信息专业英语词典的设计与开发
二、毕业设计工作自2015年11月9日起至2016年6月18日止
三、毕业设计进行地点:
陕西理工学院
四、毕业设计应完成内容及相关要求:
英语是信息专业领域的重要语种,信息专业英语词汇具有专业性强、借用词多、发展变化快的特点,而传统电子词典对信息专业词典收录有限。
课题主要任务是开发一个基于Android平台的信息专业英语词典,从而为信息专业在校学生及从业人员提供随时随地查询、识记信息专业词汇的便捷方式。
词典基本功能应包括信息专业词汇及术语互译、词条简介、词汇分类等。
在词典提供的基本词库的基础上,用户还可自由添加、删除、更新单词,建立个人生词库等。
五、毕业设计应收集资料及参考文献:
[1]殷人昆.实用软件工程[M].北京:
清华大学出版社,2010
[2]高晓黎.Java程序设计第2版[M].北京:
清华大学出版社,2015
[3]尹志宇,郭晴.数据库原理与应用教程[M].北京:
清华大学出版社,2015
[4]李培林.安卓系统的应用及发展趋势展望[J].北京:
计算机光盘软件与应用,2012
[5]张恒喜,史争军.基于SQLite的Android数据库编程[J].北京:
电脑编程技巧与维护,2011
[6]Mednieks,Meike.Android数据库应用编程[M].北京:
清华大学出版社,2015
[7]李培林.安卓系统的应用及发展趋势展望[J].北京:
计算机光盘软件与应用,2012
[8](美)埃布尔森,(美)柯林斯,(美)森.GoogleAndroid揭秘[M].北京:
北京人民邮电出版社,2010
[9]刘平.Android手机访问服务器的一种数据交互方法[J].西安:
西安财经学院网络与现在教育技术中心,2010
[10]杨丰盛.Android技术内幕.系统卷[M].北京:
机械工业出版社,2011
[11]韩超.Android经典应用程序开发[J].西安:
人力资源出版社,2011
[12]软件开发技术联盟.Android自学视频教程[M].北京:
清华大学出版社,2014
[13]王家林.Android4.0网络编程详解[M].北京:
电子工业出版社,2012
[14]欧阳零.Android核心技术与实例详解[M].北京:
电子工业出版社,2013
六、毕业设计的进度安排:
2016.1.15--2016.3.10:
查阅相关文献资料,撰写并提交开题报告。
2016.3.11--2016.3.20:
需求分析,确定设计方案。
2016.3.21--2016.3.31:
概要设计。
2016.4.1--2016.4.15:
详细设计。
2016.4.16--2016.5.15:
编码与测试。
2016.5.16--2016.5.31:
撰写毕业设计说明书
2016.6.1--2016.6.15:
答辩,整理资料,后期整改。
指导教师签名系(教研室主任签名)
专业负责人签名批准日期
基于Android的信息专业英语词典的设计与开发
(陕西理工学院数学与计算机科学学院计算机科学与技术专业1201班,陕西汉中723000)
指导教师:
[摘要]Android信息专业英语词典是专为信息技术领域从业人员及在校学生提供快速查询,识记英文单词的应用程序。
本文以需求分析为基础,从概要设计到系统设计详细地阐述了整个词典的设计及开发过程。
实现的主要功能包含信息专业词汇术语的英汉互译、词条简介、词汇分类等。
应用以Java语言为基础,使用Eclipse集成环境开发完成,使用Android自带数据库SQLite保存离线词库所需单词,在词典提供的基础词库的基础上,还支持用户添加,删除,更新单词,建立个人生词库等。
开发完成后,分别在在模拟器上和手机上对应用的功能进行了测试。
[关键词]Android;专业英语;词典;SQLite
DesignandDevelopmentofEnglishDictionaryforInformationTechnologyBasedonAndroid
WangXiang
(Grade12,Class01,MajorComputerScienceandTechnology,SchoolofMathematicsandComputerScience.,ShaanxiUniversityofTechnology,Hanzhong723000,Shaanxi)
Tutor:
LiJing
Abstract:
EnglishDictionaryforInformationTechnologyisdesignedforinformationprofessionalsandcollegestudentstoprovidefastqueryapplications,memorizingenglishwords.Inthispaper,basedonthereguirementanalysis,thedesignanddevelopmentofwholedictionaryisdescribedindetailfromtheoutlinedesigntosystemdesign.themainfunctionofthedesigncontainsITvocabularyandtermstranslation,vocabularyentryprofile,lexicalclassification.TheapplicationisdevelopedontheeclipseintegrateddevelopmentplatformandbasedontheJavalanguage,usingAndroidSQLitebuild-indatabasetosaveofflinewordbank,onthebasisofbasiclexicon,alsoallowsuserstoadd,delete,updatetheword,buildpersonalwordbankandsoon.Afterdevelopment,thefunctionofapplicationistestedonsimulatorandphone.
Keywords:
Android;SpecialtyEnglish;Dictionary;SQLite
1概述
1.1选题背景
英语学习,一直以来都是大部分人的头疼的问题,而英语单词,更是整个英语学习过程中的重要环节,而且在英语学习的过程中,不同的群体所需英语的领域也不一样,并且由于当前社会生活节奏的变快,如何利用起来平时空余的时间,随时随地的解决单词学习问题,尤其是专业单词的学习,就显得很重要了。
信息专业英语词汇具有专业性强、借用词多、发展变化快的特点,而传统电子词典对信息专业词典收录有限。
信息专业在校学生及从业人员急切希望能有一款可以为他们量身打造的英语词典的出现。
1.2国内外研究现状
随着移动互联网的到来,手机已经成为人们的一个必备用品,不论是生活,还是学习,处处都离不开智能手机,截至到2016年,搭载Android平台的手机的市场占有率已经达到45%,而数据显示,在未来,这一数据还将持续增长。
随着Android手机的普及,AndroidApp的开发在近些年来,也一直是市场所需的热门。
近些年来,Android发展的领域也不仅仅只局限在手机上面,智能家居,智能汽车等传统领域,虚拟现实,虚拟未来等高科技领域也处处都有Android的影子。
由于Android平台是基于Linux内核设计的,而开发语言又以Java或者C++为主并涉及SQLite数据库以及网络编程等技术,因此,要研究Android应用开发,就必须要求对其它领域也有一定研究。
应用市场上的英语词典应用其实已经很多,用户量比较大的有有道词典,金山词典等,但是大多数英语词典在设计时考虑的是大众的需求,而忽略了一些对词汇有特殊要求的小众,这就导致了一些专业人员对一些传统的词典的应用感受很差的情况。
要开发一款信息专业英语词典,首先要考虑的是其用户的需求,由于信息专业的特性,相关英语词汇专业性较强,这就要求在设计词典的时候考虑词库的专业性,同时,也不能忽略英语词典的易用性,一些传统英语词典上的有点也应该在设计时考虑。
1.3研究目的及意义
本课题是为信息专业人员研发的专业英语词典,因此,开发主要需要解决的就是很好的满足信息专业人员对于英语词汇的需求,使用时,能快速,正确的翻译相关词汇。
解决问题的思路是:
在设计词库的时候用SQLite轻量级数据库设计词库,在录入单词时对单词进行筛选,将信息人员需要的词汇进行录入,放弃相关词汇的其它释义,同时通过允许用户自主向词库中添加词汇以丰富词库。
2开发技术简介
Android是由Google公司推出的基于Linux平台的开源的移动设备操作系统,它由操作系统、中间件、应用框架、应用程序等构成。
Android应用程序是采用Java语言开发,传统的Java语言运行是通过JVM将源文件编译成Java字节码运行,但是Android虽然是Java语言开发,但是字节码并不是最终的运行格式,并且由于版本问题和移动设备电量等问题,Google自行开发了一个虚拟机运行Android程序,这个虚拟机称为Dalvik。
当完成源代码的开发后,首先会将Java源码转换为字节码,然后通过DX工具,将字节码文件转换了.dex的文件,最后该dex格式的文件在Dalvik上运行。
Android有四大组件分别是Activity,Service,BroadcastReceiver,ContentProvider,应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。
在Intent的描述结构中,有两个最重要的部分:
动作和动作对应的数据。
Service用于在后台完成用户指定的操作。
Service分为两种:
Started(启动):
当应用程序组件(如Activity)调用StartService()方法启动服务时,服务处于Started状态。
Bound(绑定):
当应用程序组件调用BindService()方法绑定到服务时,服务处于Bound状态。
android平台提供了ContentProvider使一个应用程序的指定数据集提供给其他应用程序。
其他应用可以通过ContentResovler类从该内容提供者中获取或存入数据。
BroadcastReceiver,应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。
广播接收器没有用户界面。
然而,它们可以启动一个Activity或Serice来响应它们收到的信息,或者用NotificationManager来通知用户。
通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。
一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
布局和数据存储是Android开发的关键技术,布局用来设计用户交互界面,用户界面的设计是否美观和合理直接影响用户体验,因此运用好布局技术好是直接和用户相关的,而数据存储技术则记录了用户所有的操作数据和用户所需要提取的数据。
在Android中,软件UI通常使用xml技术设计,而xml中控件的位置和状态则离不开布局的使用,Android中常用的布局有5种,分别是:
AbsoluteLayout绝对布局、LinearLayout线性布局、RelativeLayout相对布局、FrameLayout帧布局、TableLayout表格布局,由于布局的使用,并且布局之间可以互相嵌套,使得android软件UI的设计变得非常灵活,即使是一些非常复杂的界面设计,只要合理的使用布局,也会使开发变得很容易。
Android中数据存储技术主要有:
文件存储、Preference、SQLite、ContentProvider和网络存储,在本软件中主要使用到了文件存储、SQLite,文件存储是以流的形式读写文件,可以以文格的格式,也可以以二进制的形式,在Java语言中要使用流,则写入文件的对象必须进行序列化,SQLite是嵌入式移动设备中常用的轻量级数据库,可看作计算机上使用的Sqlserver、Oracle数据库。
本软件中,用户生词本中的数据都存在SQLlite数据库中,而进行数据备份和恢复时则是用文件作为介质保存数据。
3系统分析
3.1可行性分析
(1)在技术方面,应用使用Java语言,在Eclipse平台下开发,由于Android开源的特性,有众多的开发者和开源社区一直在贡献着优秀的技术和思想,这些优秀的技术和思想都可以通过网络随时获得,应用需要的一些制作要求和素材在网络这个信息平台上随处都可以找到,因此在技术方面具有相当的可行性。
(2)在经济方面,本应用是自行开发的系统,除了自身开发话费的时间和精力以外成本几乎可以忽略不计,加上Android平台的开源,应用的后期维护的费用也相对比较低廉,应用一旦开发完成,后期的维护也相对简单,只需要在拥有基础上适当进行升级或者扩展即可,并且应用由一个人即可完成开发,因此本应用基本无经济开支,具有一定的可行性。
(3)在操作使用方面,应用界面清晰,操作简单,对用户并没有特殊的技能的要求。
使用者不需要通过特殊的培训或者学习。
不要求手机的品牌,价格等。
只要是安卓系统版本不是太低就可以。
因此在操作上也具有相当的可行性。
综上所述,本系统无论从技术上、经济上,还是操作上都具有相当的可行性。
3.2需求分析
3.2.1需求分析概述
在软件设计之前,要做的工作就是对电子词典的流程,操作等,做出详细的调查,从而了解系统需要实现的功能。
系统在开发过程中,经过比较长时间的设计阶段,可以说模型贴近生活,有很大的现实意义,一般学生或者上班族一般都都能较方便的使用本软件,考虑到软件本身具有较强的专业性,而这些知识普及率毕竟有限,所以在程序设计过程中一直遵循实际应用的原则。
因此它的操作界面会尽可能的简单,明了。
各种控件的布置也会非常的清晰,使用的控件种类不会太多且对控件的操作不会太复杂。
这样就能让不参与该软件设计的人也能够熟练的更好的使用。
根据用户查询单词和记忆单词的要求,和记录数据的一些习惯,该软件实现后,能达到
以下目标:
界面设计友好、数据存储安全,可靠。
基本的设置保证单词查询功能。
保证数据
查询的灵活性。
对增加、删除、修改,查询的信息进行精密设计,保证能及时处理信息。
.此软件包括两部分的设计,第一部分是离线的单词查询,Android自带的轻量级数据库SQLite来保存单词信息,系统通过SQLite数据库中保存的单词信息来查找到与指定英文相对应的单词的中文信息。
实现这样一个英文词典需要解决一系列技术问题。
例如,如何将保存英文单词信息的数据库随程序一起发布;发布后如何打开数据库;如何在输入前几个字母后,在AutoCompleteTextView组件提示裂变中显示以所输入字符串开头的所有单词。
在设计代码时,采用常用软件开发中常用的MVC模式,将操作界面和业务逻辑进行分离,降低代码的藕合度,便于软件的升级和维护。
在软件的具体功能实现时,使用Android布局技术完成UI的设计,使用Android数据存储技术内置的小型嵌入式数据库SQLite完成底层数据的读写。
同样在线英文词典也要解决一系列的技术问题。
例如,如何把选中的英文单词保存在手机上轻量级数据库中以及如何把保存在手机数据库中的单词信息查询出来。
3.2.2功能分析
经过以上的需求分析,基本可以确定系统设计必须达到的目标了。
分析的任务是确定系统必须在经过了多方的调查了解后,就可以确定电子词典的功能需求。
以下是电子词典系统具备的功能:
(1)设有单词查询界面,用户可以查询某个单词的解释或者进行模糊查询。
(2)设有单词解释显示界面,用来显示用户查询到的单词的解释。
(3)设有生词本管理界面,用户可以查看生词本中的单词与解释并对生词本进行增删。
(4)设有词库管理界面,用户可以查看词库中的单词并对词库中的单词进行增删。
结合应用的需求分析和应用的功能分析,可以的得出如图3.1所示的应用功能用例图:
图3.1应用功能用例图
3.2.3性能分析
系统的性能分析是确定系统的志向和系统实现的关键,通常人们只关注系统具体功能的实现,却忽略了系统的性能分析。
应用的性能分析主要关注的指标有响应时间,吞吐量,并发用户数,资源利用率:
CPU,内存,硬盘,配置等,信息专业英语词典应该具有以下性能要求:
(1)响应时间,应用响应的时间在人的感觉和视觉范围内,不会产生明显的延迟或卡顿等以满足用户的要求。
(2)在不同的运行环境或者不同的设备之上,应用不能产生如卡顿,闪退等,在改变软件接口,开发计划时,应用应该具有自适应能力而不影响用户的使用。
(3)应用应该保证在多个用户同时使用时应用的稳定性,吞吐量较大时数据的持续性。
(4)应用要求运行设备是Android2.3以上操作系统,对设备CPU,内存和硬盘配置等要求不需要太高。
3.2.4开发及运行环境
操作系统:
Windows10
开发环境:
Eclipse3.8ADT23.0.2
运行环境:
Android2.3-6.0版本
4系统设计
概要设计是根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。
这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。
概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。
设计软件结构的具体任务是:
将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
概要设计的原则确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系。
信息专业英语词典分为在线查询和本地查询两大模块,在手机没有接入互联网时,用户只能使用离线查询功能,只能查询本地数据库中的词汇和释义,在手机接入互联网时,用户不仅能使用本地查询,还能在线查询相关词汇和释义,离线查询和在线查询这两大模块下都有对单词的操作,都能将生词加入对应的生词本中,而对于生词本模块和词汇模块,都是使用本地数据库存储响应的数据,因此是建立在离线查询的基础之上的。
4.1功能模块设计
信息专业英语词典主要为信息专业从业人员和学生提供单词查询服务,用户应用词典可以查询单词释义,创建生词本,删除生词本,管理词库等。
应用的总体结构图如图4.1所示:
图4.1功能模块图
4.2操作流程设计
词典中有查询功能,在查询完之后,可以将单词添加到本地用户自己创建的生词本中。
词典还具有词库,用户可以自己在词库中添加单词或者删除单词。
应用的流程图如图4.2所示:
图4.2总体流程图
5数据库设计
5.1需求分析
需求分析是数据库设计的基础,只有在正确、充分的需求分析的基础上,对所有数据要求按一定方法进行抽象与综合处理,才能设计出依赖于某特定DBMS的、满足用户应用需求的信息结构。
需求分析的重点是调查收集分析用户在数据管理中获取信息的内容与性质。
由用户的信息要求可以导出数据要求,即在数据库中需要存储那些数据。
Android信息专业英语词典离线词典要求要能存储离线的英文单词和释义并在此基础上有生词本和词库设计,因此在数据库应该存储相关数据以供应用功能实现使用。
5.2概念结构设计
数据库的概念结构设计就是家将实体的信息抽象化为概念模型。
概念结构设计应该能真实、充分的反应现实世界,包括事物与事物之间的联系,能满足用户对数据的处理要求。
同时还要易于理解、易于更改,并易于向关系、网状、层次等各种数据模型转化。
概念模型的表示方法很多,最常用的设计方法为用E-R图来描述现实世界的概念模型,即用实体-联系方法对具体数据进行抽象加工,将实体集合抽象给类型,用实体间联系的类型反应现实世界事物间的内在联系。
如图5.1是应用的实体总体E-R图:
图5.1应用实体总体E-R图
5.3逻辑结构设计
数据库的逻辑结构设计是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQLServer或Oracle或MySql)。
由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。
以下是以关系数据模型设计的数据库逻辑结构设计:
单词表:
单词编号,英文释义,中文释义。
生词本表:
生词本编号,生词本名称。
词汇库表:
词汇库编号,词汇库名称。
生词本单词表:
编号,生词本编号,英文释义,中文释义。
词汇库单词表:
编号,词库表编号,英文释义,中文释义。
5.4物理结构设计
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,选择一个优化方案作为数据库物理结构。
在数据库物理设计中,最有效的方式是集中地存储和检索对象。
数据库的物理结构设计一般包含四方面的内容,分别是确定数据库的存储结构,设计数据的存储路径,确定数据的存放位置,确定系统配置等。
5.4.1数据库存储结构
以下是将应用的数据库逻辑结构设计为关系型数据库SQLlite,关系的属性对应了表的字段,关系框架对应了表的结构,关系元组对应了表记录。
所建立的数据库表结构如图:
单词表如表5.1所示:
表5.1单词表
字段名称
类型
说明
Id
Int
单词的唯一的编号
chinese
String
单词的中文释义
english
String
单词的英文释义
生词本表如表5.2所示:
表5.2生词本表
字段名称
类型
说明
noteid
Int
生词本的唯一编号
notename
String
生词本的名称
词汇表如表5.3所示:
表5.3词汇库表
字段名称
类型
说明
bookid
Int
词汇库的唯编号
bookname
String
词汇库的名称
生词本表如表5.4所示:
表5.4生词本单词表
字段名称
类型
说明
id
Int
生词本中单词编号
not