Android平台英文单词学习系统.doc_第1页
Android平台英文单词学习系统.doc_第2页
Android平台英文单词学习系统.doc_第3页
Android平台英文单词学习系统.doc_第4页
Android平台英文单词学习系统.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

+ 本科生毕业设计(论文)学院(系): 软件学院 专 业: 软件工程 学 生: + 指导教师: + 完成日期 + 年 4 月+学院本科生毕业设计(论文)android平台英文单词学习系统 测试和挑战模块的设计与实现 english words learning system based on android platform the modules design and realization of testing and challenging总计: 毕业设计(论文)26页表 格: 1 个插 图 : 10 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)android平台英文单词学习系统 测试和挑战模块的设计与实现english words learning system based on android platform the modules design and realization of testing and challenging学 院(系): 软件学院 专 业: 软件工程 学 生 姓 名: + 学 号: + 指 导 教 师(职称): + 评 阅 教 师: + 完 成 日 期: + +android平台英文单词学习系统android平台英文单词学习系统 测试和挑战模块的设计与实现软件工程+摘 要android手机操作系统是google开发的基于linux平台的开源手机操作系统,是一个对第三方软件完全开放的平台。开发者在为其开发程序时拥有更大的自由度,使得android有着非常广泛的开发群体。本英语学习系统基于android平台开发,不仅实现英文单词的翻译结果、单词读音等功能,还实现单词测试功能。将本系统安装到android手机里,使边走边学、随时随地学习和交互学习真正成为可能。关键词android;英文单词;sqlite数据库english words learning system based on android platformthe modules design and realization of testing and challengingsoftware engineering major zhou jie abstract: the android mobile phone operating system is an open source phone os developed by google based on the linux platform, it is a completely open platform which is open to the third-party software. developers hava greate freedom when developing, android has very extensive development populations. this english words learning system based on the android platform. it has the functions of english words meanings and its pronunciations, it also has english words testing function. if you install the system into android mobile phone, you can study while walking, studying whenever and wherever, and study interactively. key words: android; english words; sqlite database目 录1 引言11.1 论文研究背景与意义11.2 本课题研究内容与目标11.3 手机应用程序的特点22 开发环境及相关技术的介绍22.1 android简介22.1.1 android的特点22.1.2 android的系统构架32.1.3 android adt插件52.2 sqlite数据库52.2.1 sqlite数据库的简介52.2.2 sqliteopenhelper简介62.3 tts简介62.4 开发环境的搭配63 系统分析83.1 可行性分析83.1.1 技术条件方面的可行性分析83.1.2 市场因素方面的可行性分析83.1.3 操作的可行性分析83.1.4 经济可行性分析93.2 用例图93.2.1 测试模块的用例图93.2.2 挑战模块的用例图93.3 用例描述103.3.1 测试模块用例描述103.3.2 挑战模块用例描述114 系统设计与实现124.1 系统模块功能的设计与实现124.1.1 系统功能模块图134.1.2 单词的朗读功能的设计与实现134.1.3 单词中文意思和缺失单词填写功能的设计与实现144.1.4 倒计时功能的设计与实现144.1.5 重做功能的设计与实现154.2 测试/挑战模块界面的设计与实现164.2.1 测试模块界面的设计与实现164.2.2 挑战模块界面的设计与实现174.3 数据库的设计与实现194.3.1 数据库的设计194.3.2 数据库的代码实现194.3.3 操作数据库的方法205 系统运行与测试215.1 测试的任务及目标215.2 测试方案225.2.1 模块测试225.2.2 测试结果22结束语24参考文献25致谢26iii1 引言随着移动通信技术的快速发展,宽带化、智能化、个性化、多媒体化、多功能化以及环保化将是世界移动通信发展的新趋势。其中,尤其以智能化最受各方的关注,它是世界移动通信发展的又一大趋势。越来越多的手机拥有电脑的常用处理功能,如上网、视频聊天、文档处理等,其智能程度正不断提高,在全球市场的占有率也不断提高。在本章中,浅析了论文的背景和意义以及课题的内容与目标,分析了手机应用的一系列特点。1.1 论文研究背景与意义如今的移动应用开发产业让人眼花缭乱,涉及到八大平台,它们各有特点,但不足之处也不少:比如symbian系统,它所采用的硬件配置较低,且各类机型采用的的处理器主频较低,虽然系统可以使其获得较高的处理效能,但是在多媒体、版本之间兼容性差等方面的表现依然不尽如人意。此外,iphone苹果的手机操作系统,不支持 flash,没有语音识别和语音拨号,在支持后台运行程序方面做得不足;微软的windows mobile手机操作系统,它对硬件要求较高,对不熟悉电脑的人来说操作较为复杂。android手机操作系统是google开发的基于linux平台的开源手机操作系统。google android智能手机平台自从发布后空前成功,获得了如htc、摩托罗拉、三星和索爱等知名手机制造商的支持。它采用webkit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、视频聊天、文档处理等;与其他手机相比,它更强调搜索功能。除上述之外,它最震撼人心之处在于android手机系统的开放性和服务免费。作为一款开放源代码软件,android向开发者开放,并免费提供给手机厂商使用。android手机操作系统是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iphone等只能添加为数不多的固定软件的枷锁,因此吸引了越来越多的用户和开发者加入其阵营,其流行和普及的程度已经逼近苹果的iphone手机平台。在日前英语学习热潮的大背景下,英语学习软件充分发挥了移动通讯和互联网的力量,使边走边学、随时随地学和交互学习真正成为可能,也使该类软件的前景相当看好。 然而,目前那些非android平台开发的英文学习软件仅仅提供了想要查询的词和句子的翻译结果,这类软件会智能发音,显示单词音标,单词意思。功能过于简单,使用起来也相当繁琐。1.2 本课题研究内容与目标本课题采用面向对象的设计,运用android、java、sqlite数据库等现有的技术,设计开发一个基于android的英文单词学习系统,该英文学习系统提供了想要查询的英文单词的翻译结果、单词读音和意思等,而且还可以测试和挑战所学过的单词的掌握效果。总体来看,该系统能够帮助用户学习记忆英语,并且留有相关接口,便于以后扩展。1.3 手机应用程序的特点 对于手机程序来说,由于机能限制,手机上的程序应该有以下几个特点:1.启动快,占用内存小;2.尽可能的反应快;3.优化手机键盘的操作;4.对流量进行控制;5.对于商务应用,手机程序是作为pc机程序的延伸,在没有pc机的情况下处理各种事务的工具,应该有强大的同步能力;6.对于个人应用,手机程序应该是各种web应用额便携终端,能方便进行手机与pc以及它们各自之间的无缝交流,纯粹的只在手机网络上的应用潜力不大。2 开发环境及相关技术的介绍当前,我国一直把英语放在了重中之重的地位,各大高校更是一直在给“英语热”持续加温。四六级、托福、雅思、出国、考研等,一系列都得用英语做奠基石。在当今计算机技术飞速发展,信息爆炸的时代,应该如何看待英语学习?又如何进行开发和应用呢?本章中介绍了实现英文学习系统所需要的一些技术以及开发环境的搭配。2.1 android简介android一词的本义指“机器人”,它是google于2007年11月5日宣布的基于linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件1。2.1.1 android的特点android的特点突出,灵活易用。它在界面开发中,应用构成、布局管理以及其生命周期都体现出超强的优势。android的主要特点有:1.应用程序无界限。android上的应用程序可以通过标准api访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。2 .开放性。google与开放手机联盟合作并开发android,通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。3.应用程序是在平台允许的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。4.应用程序可以并行运行。android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。5.应用程序可以轻松的嵌入网络。应用程序可以轻松地嵌入html、javascript和样式表,还可以通过webview显示网络内容3。2.1.2 android的系统构架android的体系结构总共分为4层,分别是应用层、应用框架层、系统运行层和linux内核层1。android系统架构如图2-1所示:homecontactsphonebrowseractivity managerxmppservicelocation managertelephonymanagerresource managerpackage managercontent providerview systemnotification managerwindow managerapplicationapplication frameworksurface manageropenglessglmedia frameworkfreetypesslwebkitsqlitelibcandroid runtimecore librariesdalvik vmlibrarieslinux kerneldisplay drivercamera driverbluetooth driverflash mem driverusb driverkeypad drivervifi driveraduio driverspower managemenbinder(ipc) driver 图2-1 android系统架构图1.应用层应用是基于java语言编写的,能够运行在虚拟机上的程序,即图中最上层的蓝色部分。google最早就在android系统中捆绑了一些核心应用程序,比如e-mail客户端、sms短消息程序、日历、地图、浏览器等等。2.应用框架层应用框架层就是编写google发布的核心应用时所需要的api框架,开发人员可以使用这些框架来开发应用,虽然这样简化了程序开发的架构设计,但是必须遵守其框架的开发原则。其主要内容有:绚丽多彩而又可扩展的视图(views):可以用来构建应用程序界面,它包括列表(lists)、网格(grids)、文本框(text boxes)、按钮(buttons)等。内容提供器(content providers):将应用数据与其他的应用共享。资源管理器(resource manager):提供非代码资源的访问,如本地字符串、图形和布局文件(layout files)。通知管理器(notification manager):应用可以在状态栏中显示自定义的提示信息。活动管理器(activity manager):用来管理应用程序的生命周期并且提供常用的导航退回功能。窗口管理器(window manager):管理所有的窗口程序。包管理器(package manager):android系统自身内部的程序管理。3.系统运行库(c/c+库以及android运行库)层在使用android 应用框架时,android系统会通过一些c/c+库来支持需要使用的各个组件,目的是为了使其能更好地为开发者服务。sqlite:用c语言编写的开源嵌入式关系数据库。bionic系统 c 库:c语言标准库,系统最底层的库,c库是通过linux系统来调用的。多媒体库(mediaframeword):android系统内的多媒体库,是基于 packetvideo opencore,该库支持多类常用的音频、视频格式的回放和录制以及一些图片,比如:mpeg4、aac、amr、jpg、mp3、png 等。sgl:2d图形引擎库。opengl es 1.0:支持3d效果。webkit:web浏览器引擎。ssl:位于tvp/ip协议和各种应用层协议之间,是为数据通讯提供支持的。4.linux内核层android的核心系统服务都是基于linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都是基于linux2.6内核。linux内核同时也作为硬件和软件栈之间的抽象层。在android中,更多的是需要一些与移动设备相关的驱动程序,主要的驱动如下:显示驱动(display driver):在linux的帧缓冲(frame buffer)的基础上开发的驱动。键盘驱动(keyboard driver):作为输入设备的键盘驱动。flash内存驱动(flash memory driver):基于mtd的flash驱动程序。照相机驱动(camera driver):常见的是基于linux的v4l2(video for linux)驱动。音频驱动(audio driver):常见的是基于alsa(advanced linux sound architecture)的高级linux声音体系驱动。蓝牙驱动(bluetooth driver):基于ieee 802.15.1标准的无线传输技术。wifi驱动(camera drive):基于ieee 802.11标准的驱动程序。binder ipc驱动:这是一个特殊的android驱动程序,具有单独的设备节点,提供进程之间的通讯。power management(能源管理):例如电池的电量等。2.1.3 android adt插件adt(android development tools)为android开发工具的简称,是在强大的、集成的eclipse ide环境中构建android应用程序的插件。adt扩展了eclipse的功能,快速建立新的android项目,创建一个应用程序的用户界面,加上android框架的api组件、调试应用程序使用android sdk工具,以便apk分发给应用程序9。2.2 sqlite数据库2.2.1 sqlite数据库的简介sqlite是用c语言编写的一款轻型的开源关系数据库,遵循acid,它的设计目标是嵌入式的。目前,已经在很多嵌入式产品中使用到它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k的内存就够了。它能够支持windows/linux/unix等等常用的操作系统,同时还能够与很多程序语言相结合,比如 tcl、c#、php、java等,还有odbc接口,与mysql、postgresql这两款世界著名的开源数据库管理系统相比,它的处理速度更快。sqlite具有如下特征:1.轻量级。因为sqlite是进程内的数据库引擎,所以不存在数据库的客户端和服务器。使用sqlite一般只需要带上它的一个动态库,就可以使用它的全部功能。不但如此,动态库的尺寸也相当的小。2.独立性。sqlite数据库的核心引擎自身不依赖于第三方软件,使用时不需要安装。所以在部署的时候省去了不少的麻烦。3.隔离性。sqlite数据库中的所有信息(比如表、视图、触发器等)都包含在一个文件内,方便管理和维护。4.跨平台。sqlite数据库能够支持大部分的操作系统,除了电脑上使用的操作系统之外,也支持很多手机操作系统。5.多语言接口。sqlite数据库支持很多语言编程接口,比如c/c+、java等,获得很多开发者的欢迎。6.安全性。sqlite数据库通过数据库级上的独占性和共享锁来实现独立事物处理。多个进程可以在同一时间同一数据库读取数据,但是只有一个可以写入数据1。2.2.2 sqliteopenhelper简介在编写数据库应用软件时,需要考虑开发的软件可能会安装在很多用户的手机上,如果应用使用到了sqlite数据库,必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,需要对数据表结构进行更新。那么,如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表?总不能在每个需要安装此软件的手机上通过手工方式创建数据库表?因为这种需求是每个数据库应用都要面临的,所以在android系统,提供了一个名为sqliteopenhelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求4。2.3 tts简介tts是text to speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。tts语音合成技术即将覆盖国标一、二级汉字,具有英文接口,自动识别中英文,支持中英文混读。基于老词汇应用的tts一般用纯软件实现,主要包括以下几部分:1.文本分析。对输入文本进行语言学分析,逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、数字的处理、缩略语的处理等。2.语音合成。把处理好的文本所对应的单字或短语从语音合成库中提取,把语言学描述转化成言语波形。3.韵律处理。合成音质(quality of synthetic speech)是指语音合成系统所输出的语音质量,一般从清晰度、自然度和连贯性等方面进行主观评价。清晰度是正确听辨有意义词语的百分率;自然度用来评价合成语音音质是否接近人说话的声音,合成词语的语调是否自然;连贯性用来评价合成语句是否流畅7。2.4 开发环境的搭配1.安装jdk。(1) 下载jdk 6 update 20,双击 jdk-6u20-windows-i586.exe 进行安装。(2) 安装完成后,在命令行中输入“java version”,若出现以下信息表示安装成功。java version 1.6.0_20java(tm) se runtime environment (build 1.6.0_20-b02)java hotspot(tm) client vm (build 16.3-b01, mixed mode, sharing)2.安装android sdk。(1) 下载android-sdk_r06-windows.zip。 (2) 解压android-sdk_r06-windows.zip到你想安装android sdk的目录。 (3) 在环境变量中的path中加入d:android-sdk-windowstools。(4) 由于google改变了下载安装方法,现在必须在线实时地从google网站上下载需要安装的文件来进行在线安装。双d:android-sdk-windowssdk setup.exe 运行android sdk and avd manager。(5) 在安装列表选择要安装的apis 版本、usb驱动、sdk例子程序和sdk文档等。3.创建一个新的android virtual device (avd)。4.下载并安装eclipse(/downlods)。5.安装 eclipse的android adt插件。通过eclipse自身的update功能进行下载:启动eclipse,选择help soft updates find and install,这时窗口中新增了“/android/eclipse/”项,选中该项,点击install按键即可下载。6.配置 eclipse和android adt插件。(1) 设置eclipse的java jdk属性设置。选择windowspreferences打开编辑属性窗口;选择java属性面板;选择java 编译器为6.0;点击apply和ok。 (2) 进行android sdk设置。选择windows preferences打开编辑属性窗口;选择android属性面板;加入android sdk的目录(点击browse进行选择目录)。7.测试开发环境。搭建好开发环境之后,创建一个hello world工程,运行程序。效果如图2-2所示:图2-2 运行hello world程序3 系统分析本章介绍了该英文学习系统各个模块的用例图以及用例分析,系统的可行性分析。测试模块:用户可以对单词的朗读、中文意思、缺失单词、重做功能进行操作。挑战模块:用户可以对单词的朗读、中文意思、缺失单词、重做、倒计时等功能进行操作。3.1 可行性分析软件工程项目大多是复杂的大型系统工程,在没有明确问题是否有行之有效的解决办法之前,不三思而行,有可能造成时间、人力、物力、财力等的巨大浪费。可行性分析的目的在于以最小的代价,在尽可能短的时间内得出软件项目是否能够开发、是否值得开发的结论。3.1.1 技术条件方面的可行性分析1.数据库方面:选用sqlite数据库。sqlite是一款轻型的数据库,它被大量的应用在嵌入式领域。2.系统整体方面:采用java编码,java语言具有简单、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等特点。采用android提供的控件进行相关控件的编写与部署。3.使用工具方面:利用eclipse开发工具,结合android 模拟器,采用java编码。4.操作系统方面:使用windows 7操作系统。3.1.2 市场因素方面的可行性分析1.秉承用户至上的思想,本软件采用了与用户交互的方式,由用户往数据库中存储数据,便于数据的随时更新。该软件还可以放入用户的手机中,更方便用户的使用,大大的提高了学习英语的效果和激情。2.测试模块是软件的一大特色,测试时,所选用的单词不按一定的顺序,完全是随机从数据库中读取。3.目前市场上学习英语的软件非常多,但是大多数都是在电脑上运行使用,不方便用户随时随地的学习。少数的软件能够在手机上运行,但是功能单一,没有扩展功能,用户不能往数据库里面添加数据,所以使本软件有很大的市场前景。3.1.3 操作的可行性分析本系统采用基于手机的图形用户界面,而该系统是大家熟悉的android操作系统,功能操作是大家常用的手机键盘,对于那些有手机的用户可以轻松上手。整个英文学习系统采用友好的交互界面,简洁明了,不需要对数据库进行深入的了解。3.1.4 经济可行性分析该系统带来的经济效益明显,最主要的是该系统是免费的,可以通过网络在网上下载安装到手机上。因为android是一个开放的系统,开发一个软件应用开发人员不需要任何费用。不限制该系统的任何功能,免费使用,靠广告赚钱。只要到某些网站上,下载一个广告接口开发包,嵌入到软件里,然后只要有人下载使用该软件,就能赚到广告费。3.2 用例图3.2.1 测试模块的用例图单词朗读中文意思缺失单词重做用户测试模块图3-1 测试模块用例图3.2.2 挑战模块的用例图单词朗读中文意思缺失单词重做用户倒计时挑战模块图3-2 挑战模块用例图3.3 用例描述3.3.1 测试模块用例描述1.单词朗读用例描述用例名称:单词的朗读参与者:用户简要说明:用户在点击朗读按钮时,能够把相应英文单词的读音读出来。前置条件:用户必须进入主菜单界面才能进入该模块。基本事件流:用户在主菜单界面上选择“测试”按钮时,用例开始。当进入测试页面后,用户点击“朗读”按钮,如果该读音与相应单词符合,则可以进入测试阶段,该用例结束。异常事件流:如果点击“朗读”按钮后没响应或者发音与该单词不符合,则点击“返回”按钮,退回到主菜单界面,用例结束。2.中文意思用例描述用例名称:英文单词的中文意思参与者:用户简要说明:显示出该英文单词的中文意思。前置条件:用户必须通过主菜单进入测试页面才能进行查看中文意思。基本事件流:用户通过主菜单的“测试”按钮进入测试页面,用例开始。在测试页面可以看到某个测试单词的中文意思后,进入测试阶段,该用例结束。异常事件流:在测试页面无法看到中文意思,点击“返回”按钮返回到主菜单界面,重新点击进行测试,用例结束。3.缺失单词填写用例描述用例名称:缺失英文单词的填写参与者:用户简要说明:在输入框内输入英文单词缺失部分的字母。前置条件:用户必须成功进入测试页面,并且有完整的中文意思和朗读。基本事件流:用户进入测试界面后,并在测试界面的编辑框内填入该测试单词的隐藏部分的字母后,用例开始。点击“提交”按钮后,如果所填的字母与该单词隐藏部分的字母相符合,则自动进入下个单词的测试,用例结束。异常事件流:点击“提交”按钮后,如果系统检测到所填字母与该单词隐藏部分字母不符合,则弹出一个对话框提示用户“测试失败,请重试”, 选择“重做”还是进行“下一个”单词测试,用例结束。4.重做用例描述用例名称:英文单词重做参与者:用户简要说明:如果填写的英文单词隐藏字母不正确,则进行重做。前置条件:用户在进行测试后选择是否重做。基本事件流:用户在点击“提交”按钮后,用例开始。如果答案错误,选择“重做”再一次进行对这单词进行测试,答案正确后进行下一个单词的测试,用例结束。异常事件流:如果点击“重做”,系统未响应,则提示重做失败,用例结束。3.3.2 挑战模块用例描述1.单词朗读用例描述用例名称:单词的朗读参与者:用户简要说明:用户在点击朗读按钮时,能够把相应英文单词的读音读出来。前置条件:用户必须进入主菜单界面才能进入该模块。基本事件流:用户在主菜单界面上选择“挑战”按钮时,用例开始。当进入挑战页面后,用户点击“朗读”按钮,如果该读音与相应单词符合,则可以进入挑战阶段,该用例结束。异常事件流:如果点击“朗读”按钮后没响应或者发音与该单词不符合,则点击“返回”按钮,退回到主菜单界面,用例结束。2.中文意思用例描述用例名称:英文单词的中文意思参与者:用户简要说明:显示出该英文单词的中文意思。前置条件:用户必须通过主菜单进入挑战页面才能进行查看中文意思。基本事件流:用户通过主菜单的“挑战”按钮进入测试页面,用例开始。在挑战页面可以看到某个挑战单词的中文意思后,进入挑战阶段,该用例结束。异常事件流:在挑战页面无法看到中文意思,点击“返回”按钮返回到主菜单界面,重新点击进行挑战,用例结束。3.缺失单词填写用例描述用例名称:缺失英文单词的填写参与者:用户简要说明:在输入框内输入英文单词缺失部分的字母。前置条件:用户必须成功进入挑战页面,并且有完整的中文意思和朗读。基本事件流:用户进入挑战界面后,并在测试界面的编辑框内填入该挑战单词的隐藏部分的字母后,用例开始。点击“挑战”按钮后,如果所填的字母与该单词隐藏部分的字母相符合,则自动进入下个单词的挑战,用例结束。异常事件流:点击“提交”按钮后,如果系统检测到所填字母与该单词隐藏部分字母不符合,则弹出一个对话框提示用户“测试失败,请重试”, 选择“重做”还是进行“下一个”单词挑战,用例结束。4.重做用例描述用例名称:英文单词重做参与者:用户简要说明:如果填写的英文单词隐藏字母不正确,则进行重做。前置条件:用户在进行挑战后选择是否重做。基本事件流:用户在点击“提交”按钮后,用例开始。如果答案错误,选择“重做”再一次进行对这单词进行挑战,答案正确后进行下一个单词的挑战,用例结束。异常事件流:如果点击“重做”,系统未响应,则提示重做失败,用例结束。5.倒计时用例描述用例名称:倒计时参与者:用户简要说明:用户在挑战每一个英文单词的时候都有时间限制。前置条件:用户必须进入挑战页面,并且开始对某个单词挑战。基本事件流:用户开始对某个单词进行挑战的时候,倒计时自动启动,用例开始。在规定事件内提交该单词隐藏字母答案后,如果答案正确,则进行下一个单词的挑战,用例结束。异常事件流:如果答案错误,选择重做后,倒计时则重新开始,在规定时间内提交正确答案,进行下一个单词挑战,用例结束8。4 系统设计与实现详细设计阶段,要为每个模块进行详细的算法设计,用某种图形、表格等工具将每个模块处理过程的详细算法描述出来;为模块内的数据结构进行设计,对于需求分析、概要设计确定的概念行的数据类型进行确切的定义;对数据结构进行物理设计,确定数据库的物理结构。4.1 系统模块功能的设计与实现4.1.1 系统功能模块图英文单词学习系统单词信息测试模块挑战模块编号英文单词中文意思系统时间单词朗读缺失管理重做管理中文意思单词朗读缺失管理重做管理中文意思倒计时图4-1 系统功能模块图单词朗读功能:把英文单词的英文发音朗读出来。中文意思功能:显示相应英文单词的中文翻译。缺失单词功能:随机确定英文单词隐藏字母的位置,把该位置的字母用下划线代替。倒计时功能:限制用户操作单词的时间,时间结束停止用户对该单词的操作。重做功能:重新对该单词进行操作。4.1.2 单词的朗读功能的设计与实现android自身提供系统所需要朗读的资源进行智能识别并且进行朗读,所以不需要在数据库单独设计一列存储音频文件。当用户点击“朗读”按钮时,系统智能的对输入框内的单词进行朗读。具体实现的主要实现代码如下:public void oninit(int status) / tts engine初始化完成if (status = texttospeech.success) int result = mtts.setlanguage(locale.us);/ 设置发音语言if (result = texttospeech.lang_missing_data| result = texttospeech.lang_not_supported)/ 判断语言是否可用log.v(tag, language is not available);speak_btn.setenabled(false); elsemtts.speak(this is an example of speech synthesis.,texttospeech.queue_add, null);speak_btn.setenabled(true);4.1.3 单词中文意思和缺失单词填写功能的设计与实现在测试/挑战阶段,用户可以根据单词的读音或者中文意思来判断输入框内应该填入单词缺失部分的字母。首先通过loaddate方法对webview控件添加单词的中文意思,在控件上显示出来。实现单词随机字母隐藏方法:首先获取一个显示该单词的textview控件,然后用randomindex变量获取这个单词随机隐藏的那个字母的下标位置,确定该下标的位置是通过用随机数对单词长度进行求余,用求余结果确定下标位置,用_one_char_word变量代表该字母,再用下划线代替该字母。具体实现的主要实现代码如下:private void showwordandmean() word_tv = (textview) this.findviewbyid(r.id.word_tv);final webview translate_wv = (webview) this.findviewbyid(r.id.translate_means_wv);string temp_word_name = wordlist.get(curwordindex).getword_name();/ 单词中的某一个字母隐藏 randomindex该字母的下标randomindex = new random().nextint() % temp_word_name.length();/ _代表的字母_one_char_word = temp_word_name.charat(randomindex);word_tv.settext(temp_word_name.replacefirst(_one_char_word + , _);translate_wv.loaddata(wordlist.get(curwordindex).getword_mean(),text/html, utf-8);this.restarttimer(timer);4.1.4 倒计时功能的设计与实现本系统未使用传统的进度条来实现倒计时功能,而是用更新图片的方式来实现,图片内容是数字0-9,这样效果更明显、更直观。当用户挑战时,在对每个单词进行挑战时都有时间规定,如果未在规定时间内提交答案,则自动跳转至下一个单词进行挑战;在规定的时间内提交答案,则倒计时停止图片的更新。在进行下一个单词挑战时,初始化倒计时并重新启动倒计时。具体实现的主要实现代码如下:1.重新开始计时器:private void restarttimer(timer timer) timer.schedule(new timertask() public void run() if (curindex 0) this.cancel();mhandler.sendemptymessage(update_image);-curindex;, 0, 1);2.更新倒计时:public void handlemessage(message msg) / 更新 倒计时时间if (msg.what = update_image) if (curindex = 0) / 直接跳到下一个challengemoduleactivity.this.showwordandmean();/ 记录为错误 else time_iv.setimageresource(sheduletimecurindex);4.1.5 重做功能的设计与实现用户在对某个单词进行测试/挑战的时候,如果在文本框内输入答案后,点击“提交”按钮后,如果系统检测到提交的答案与_one_char_word代表的字母不相符,则自动弹出一个对话框,让用户选择“重做”还是进行“下一个”单词的测试/挑战。选择“重做”,此时指向该单词的游标已经指向下一个单词了,因此需要使指向wordlist单词列表中的单词的游标curwordindex自减1,重新指向该单词,让用户重新进行这个单词的测试/挑战。选择“下一个”则自动调用next()方法,进行下一个单词的测试/挑战。具体实现主要实现代码如下:new alertdialog.builder(challengemoduleactivity.this).settitle(r.string.please_choose).setnegativebutton(r.string.next,new oncli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论