版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢必設(shè)計(jì)f論丈j基于android平臺(tái)韓語單詞記憶設(shè)計(jì)(論文)題目軟件姓 名: 學(xué) 號(hào): 學(xué) 院: 專 業(yè): 年 級:指導(dǎo)教師摘s3一刖 s5二、胃求射斤6(一)系統(tǒng)功能61. 手機(jī)客戶端功能需求62. 服務(wù)器端功能需求63. 其它需求6(二)系統(tǒng)建模71. 系統(tǒng)用例圖72. 系統(tǒng)活動(dòng)圖8三、系統(tǒng)設(shè)計(jì)10(一)總體結(jié)構(gòu)圖10(二)子系統(tǒng)設(shè)計(jì)101. 手機(jī)端功能設(shè)計(jì)102. 服務(wù)器端功能模塊圖n(三)類設(shè)計(jì)11(四)數(shù)據(jù)庫設(shè)計(jì)131.2.3.(五)(一)2345學(xué)習(xí)用戶資料表設(shè)計(jì)13排名表設(shè)計(jì)14用戶歷史記憶表設(shè)計(jì)14單詞資料存儲(chǔ)設(shè)計(jì)15開發(fā)環(huán)境手機(jī)端服務(wù)器端相關(guān)主要技術(shù)rsa公鑰加密算法記憶算
2、法關(guān)鍵功能實(shí)現(xiàn)匹配不同設(shè)備android 直連 sql server 數(shù)據(jù)庫手機(jī)端自動(dòng)登錄實(shí)現(xiàn)手機(jī)和服務(wù)器通信五、參5結(jié)語.玄獻(xiàn).21手機(jī)端音頻和文件加載22謝 辭.摘要現(xiàn)代社會(huì)對知識(shí)的獲取效率要求越來越高。此次基于android平 臺(tái)韓語單詞記憶軟件正是本著讓韓語學(xué)習(xí)者能快速、高效地記憶韓語 詞匯的原則來設(shè)計(jì)的。使用手機(jī)端軟件能讓用戶有系統(tǒng),有步驟地學(xué) 習(xí)韓語單詞。此次設(shè)計(jì)的記憶算法參考y艾賓浩斯對人類記憶的研宄 來實(shí)現(xiàn)。并且通過調(diào)研了一部分優(yōu)秀韓語學(xué)習(xí)者的學(xué)習(xí)經(jīng)驗(yàn)來設(shè)計(jì)。 期間還參考了多本相關(guān)學(xué)習(xí)書籍。系統(tǒng)采用了 c/s架構(gòu),數(shù)據(jù)通信和 存儲(chǔ)采用rsa公鑰加密算法,保證用戶信息安全。同時(shí)對
3、于用戶的學(xué) 習(xí)進(jìn)行記錄,統(tǒng)計(jì)和分析。便于用戶在不同客戶端進(jìn)行進(jìn)度同步,自 我評價(jià),同時(shí)還可以和其它學(xué)習(xí)者進(jìn)行比較,還能幫助在后期幫助改 進(jìn)軟件。關(guān)鍵詞android,韓語,單詞記憶,c/s架構(gòu),外語學(xué)習(xí)abstractnowadays,the extraciton efficiency of the knowledage have becoming increasingly demanding. the priciple of this android - based software design is to let korean learners learn vocabularies qu
4、ickly and efficiently. using the mobile client software allows users to learn korean words systematically and step by step. the design of the memory algorithm references ebbinghaus memory method and some excellent learners experience. absolutely, references some relevant books. the system uses the c
5、 / s architecture and some datas be encrypted,such as password and personal informations in order to ensure security. at the same time, to record, collect and analysis in order to synchronize in different client and self-evaluation. also help learns to compare with each other and improve the softwar
6、e.keywordsandroid, korean, word remember, c/s architecture, foreignlanguage learning、月曰現(xiàn)代社會(huì),是學(xué)習(xí)型,知識(shí)型的社會(huì),國際交流頻繁。人們對外語學(xué)習(xí)的需 求也逐漸提升,掌握一門或幾門外語是大家都在努力追求的。但是,社會(huì)發(fā)展步 伐太快,對人們的知識(shí)量要求増高,需要短時(shí)間消化,吸收很多。這對每個(gè)人的 學(xué)習(xí)能力及學(xué)習(xí)技巧提出了新的考驗(yàn)。傳統(tǒng)的一些學(xué)習(xí)方式和技巧己經(jīng)無法滿足 要求。于是,更新的,更科學(xué)的學(xué)習(xí)技巧應(yīng)運(yùn)而生。在當(dāng)今世界,英語是最流行的外語。學(xué)習(xí)英語的風(fēng)潮一直未縮減。針對人們 零散的時(shí)間和不確定的的學(xué)習(xí)環(huán)
7、境。各類英語單詞記憶軟件層出不窮,但是,針 對小語種韓語,相應(yīng)的單詞記憶軟件寥寥無幾。國a僅有的就是滬江網(wǎng)校推 出的“幵心詞場”單詞記憶軟件。但“開心詞場”并非是專門的用于記憶韓語單詞軟 件,而是多語種單詞記憶軟件。我們知道,不同的語言,其特點(diǎn)是相異的。因此 其記憶手段當(dāng)然要針對語言木身來定制,這樣才能高效記憶。在本課題中,通過自身對韓語單詞的學(xué)習(xí)經(jīng)歷和通過調(diào)研其它韓語學(xué)習(xí)者單 詞記憶經(jīng)歷,并結(jié)合相關(guān)書籍。針對韓語單詞特點(diǎn),針對性地設(shè)計(jì)該單詞記憶軟 件。當(dāng)然,該單詞記憶軟件是針對母語為漢語的人群。通過該軟件,用戶能通過 零散的時(shí)間,記憶大量單詞。軟件中采取了高效的艾賓浩斯記憶曲線,但并非完 全
8、相同。只是整體記憶時(shí)間安排參考了該研究成果。在軟件中,學(xué)習(xí)者經(jīng)過注冊后,能擁冇屬于自己的學(xué)習(xí)檔案。其中記錄自己 的學(xué)習(xí)歷史,當(dāng)前學(xué)習(xí)進(jìn)度。軟件采用c/s結(jié)構(gòu)進(jìn)行設(shè)計(jì)。學(xué)習(xí)檔案存儲(chǔ)于服務(wù) 端。手機(jī)客戶端也存儲(chǔ)有學(xué)習(xí)進(jìn)度,是為了方便在不連接網(wǎng)絡(luò)情況下進(jìn)行學(xué)習(xí)進(jìn) 度的記錄。軟件設(shè)計(jì)的整體思路是,所有單詞配有文本,配音和例句。記憶時(shí)以 問答式方式學(xué)習(xí),階段式學(xué)習(xí)。每一階段的學(xué)習(xí)資料存于一個(gè)階段包中。用戶將 階段包下載好后,開始學(xué)習(xí)。如果當(dāng)前階段記憶未完成。無法進(jìn)入下一階段的學(xué) 習(xí)。每個(gè)階段必須一次性學(xué)習(xí)完成。手機(jī)客戶端和服務(wù)器端對學(xué)習(xí)進(jìn)度進(jìn)行同步。手機(jī)客戶端軟件基于android平臺(tái),采用java語言
9、編寫。服務(wù)器端平臺(tái)是 基于windows平臺(tái),部署tomcat,數(shù)據(jù)庫使用sql server。為了保證用廣信息 安全性,用戶資料和密碼等信息采用128位rsa公鑰加密算法。存儲(chǔ)在服務(wù)器 端的密碼信息是加密存儲(chǔ)的,無法獲取原值。當(dāng)用戶忘記口令時(shí),可以重置,無 法找回。因?yàn)椴扇‰A段式學(xué)習(xí),所以只有當(dāng)一個(gè)階段學(xué)習(xí)完畢,手機(jī)客戶端和服 務(wù)器端冰會(huì)進(jìn)行一次學(xué)習(xí)進(jìn)度同步通信,在軟件打開時(shí)進(jìn)行一次同步通信??偟?來說,手機(jī)端和服務(wù)器端在這方面通信很少,故對于該部分采取加密傳輸。對于 學(xué)習(xí)資料階段包部分,采取明文傳輸。學(xué)習(xí)資料包下載到木地后,自行解壓到手 機(jī)存儲(chǔ)空間,其中包含單詞文本,采用txt文件存儲(chǔ)。單
10、詞咅頻,采用mp3格 式存儲(chǔ)。最后為了軟件體驗(yàn)較好,對android手機(jī)系統(tǒng)版本作了限定,只能在 android4.0以上版本中運(yùn)行。而且手機(jī)屏幕分辨率在480x800以上。軟件為了能 更好改進(jìn),設(shè)置有反饋功能,并且有自動(dòng)檢測更新功能。二、需求分析在對目前韓語詞匯學(xué)習(xí)作了一些調(diào)研后,用面向?qū)ο蠓椒▉矸治龊驮O(shè)計(jì)軟件。(一)系統(tǒng)功能韓語單詞記憶系統(tǒng)分兩部分,后臺(tái)服務(wù)器端和手機(jī)客戶端,采用c/s結(jié)構(gòu)。 手機(jī)客戶端存放有當(dāng)前用戶登滎信息,學(xué)習(xí)資料包和當(dāng)前用戶學(xué)習(xí)進(jìn)度記滎。而 在服務(wù)器端存放全部的學(xué)習(xí)資料包和所有用戶注冊資料數(shù)據(jù)和學(xué)習(xí)進(jìn)度記錄。1. 手機(jī)客戶端功能需求用戶注冊,用戶登錄。用戶基木資料管理
11、。當(dāng)用戶第一次注冊時(shí)只要求填入 用戶名,密碼和用于密碼找冋的郵箱。對用戶名進(jìn)行在線檢測,看是否冇重復(fù)。 同時(shí)對密碼進(jìn)行加密后存儲(chǔ)到后臺(tái)服務(wù)器。用戶登錄時(shí)可以勾選自動(dòng)登錄功能, 方便以后打開軟件直接進(jìn)行登錄。在聯(lián)網(wǎng)情況下,用戶可以修改基本資料。比如 密碼,昵稱,出生年月,所在地等。用戶學(xué)習(xí)資料管理。客戶端可以從服務(wù)器端獲取學(xué)習(xí)資料包,對下載的資料 包進(jìn)行解壓、瀏覽,刪除處理。同時(shí)在手機(jī)本地存在一個(gè)txt文本用于存儲(chǔ)用 戶當(dāng)前學(xué)習(xí)進(jìn)度。當(dāng)存在時(shí),如果在離線情況下,根據(jù)本地學(xué)習(xí)進(jìn)度學(xué)習(xí)。聯(lián)網(wǎng) 時(shí),與服務(wù)器端比較,同步學(xué)習(xí)記錄,以最先的進(jìn)度進(jìn)行學(xué)習(xí)。當(dāng)不存在時(shí),自 動(dòng)從服務(wù)器端獲取進(jìn)度,并創(chuàng)建該txt
12、文件,將進(jìn)度存儲(chǔ)其中。用戶學(xué)習(xí)方式管理。學(xué)習(xí)方式采用問答的形式。學(xué)習(xí)形式是固定的,用戶不 能定制。記憶算法是一開始就設(shè)計(jì)好應(yīng)用于資料包中。用戶反饋管理。允許用戶對軟件存在問題進(jìn)行反饋,用于后期的完善和優(yōu)化。詞匯記錄排行榜。顯示前25名詞匯記憶最多的用戶進(jìn)行顯示。可以點(diǎn)擊相 應(yīng)的排名用戶獲取該用戶的資本資料和聯(lián)系方式(如果用戶公開)。歷史詞匯記憶列表。顯示用戶歷史記憶詞匯,方便用戶復(fù)習(xí)查看。2. 服務(wù)器端功能需求學(xué)習(xí)資料管理功能。提供學(xué)習(xí)資料的下載,更新,刪除,更改等操作。學(xué)習(xí)用戶信息管理。用戶信息加密存儲(chǔ)。用戶基本信息的更改,刪除,增加 等操作。用戶學(xué)習(xí)進(jìn)度記錄存儲(chǔ)、同步等操作。系統(tǒng)管理。提供
13、手機(jī)客戶端的更新。系統(tǒng)日志管理。文件訪問權(quán)限管理。系 統(tǒng)用戶管理。數(shù)據(jù)庫管理。密鑰管理。連接管理。3. 其它需求系統(tǒng)交互。手機(jī)客戶端與用戶交互界面要盡量美觀、簡介還有重點(diǎn)突出。數(shù)據(jù)傳輸。手機(jī)客戶端需要下載的學(xué)資料采取壓縮包的形式,減少數(shù)據(jù)傳 輸。資料下載到手機(jī)本地后再進(jìn)行解壓。系統(tǒng)穩(wěn)定。在程序代碼中,對盡可能多的情況進(jìn)行出錯(cuò)處理,并提示用戶。 努力做到程序穩(wěn)定運(yùn)行。(二)系統(tǒng)建模1.系統(tǒng)用例圖用例圖是指由參與者(actor)、用例(use case)以及它們之間的關(guān)系構(gòu)成 的用于描述系統(tǒng)功能的動(dòng)態(tài)視圖。111通過用例可以對系統(tǒng)功能作一個(gè)總體描述。對于手機(jī)客戶端,參與者是學(xué)習(xí)用戶。學(xué)習(xí)者可以瀏覽
14、歷史學(xué)習(xí)詞匯,瀏覽 當(dāng)前階段詞匯,學(xué)習(xí)當(dāng)前階段詞匯,學(xué)習(xí)資料管理,軟件設(shè)罝等。如圖2-1。在 下圖中列出了學(xué)習(xí)者可能會(huì)用到的所有功能,及一些功能的細(xì)分。在軟件實(shí)現(xiàn)時(shí) 主要是根據(jù)該圖提示的功能來編碼的,這也是手機(jī)端應(yīng)該實(shí)現(xiàn)的基本功能。突科蝥改注*資科管a廉戶注螭單龍孝:?x(盅甿階長譯二竽3莩刁看史鈄下蕺史圖2-1學(xué)習(xí)者用例圖對于服務(wù)器端,參與者是系統(tǒng)管理員。數(shù)據(jù)庫管理員。系統(tǒng)管理員管理軟件 更新,服務(wù)器維護(hù),手機(jī)客戶端和服務(wù)器端通信維護(hù),系統(tǒng)所有用戶管理。如圖 2-2。數(shù)據(jù)庫管理員負(fù)責(zé)學(xué)4者用戶管理,學(xué)習(xí)資料管理,數(shù)據(jù)庫系統(tǒng)管理,如 圖2-3。在設(shè)計(jì)服務(wù)器端時(shí)是根據(jù)下圖來設(shè)計(jì)主要功能的,同時(shí)分
15、配不同角色的 職責(zé),管理權(quán)限。軟件更新服幫麵戶系統(tǒng)菅理員通信維護(hù)系統(tǒng)用戶菅理圖2-2系統(tǒng)管理員用例圖韻者用p飽學(xué)聰斗荀里數(shù)捤庫菅理員數(shù)據(jù)庫系統(tǒng)養(yǎng)理圖2-3數(shù)據(jù)庫管理員用例圖2.系統(tǒng)活動(dòng)圖活動(dòng)圖(activity diagram,動(dòng)態(tài)圖)是闡明了業(yè)務(wù)用例實(shí)現(xiàn)的工作流程。業(yè)務(wù) 工作流程說明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需的價(jià)值而必須完成的工作。手機(jī)客戶端與用戶交互時(shí)。主要活動(dòng)如圖2-4。在該活動(dòng)圖中把用戶和手機(jī) 端作為一個(gè)整體看待,這個(gè)整體在一個(gè)學(xué)習(xí)周期里所產(chǎn)生的活動(dòng)。開尨掌石保存并t步乏度圖2-4手機(jī)端活動(dòng)圖服務(wù)器端接受到用戶請求會(huì)響應(yīng)相應(yīng)動(dòng)作。如圖2-5所示。該圖主要展示用 戶登錄時(shí)對服務(wù)
16、器來說會(huì)產(chǎn)生的活動(dòng),根據(jù)不同活動(dòng)會(huì)返回不同數(shù)據(jù)。圖2-5服務(wù)器端活動(dòng)圖三、系統(tǒng)設(shè)計(jì)(一)總體結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖反映的是系統(tǒng)屮模塊的調(diào)用關(guān)系和層次關(guān)系,誰調(diào)用誰,冇一個(gè) 先后次序(時(shí)序)關(guān)系.3在該基于android平臺(tái)的軟件開發(fā)時(shí)采用了 c/s架構(gòu)設(shè)計(jì)。其整體系統(tǒng)結(jié)構(gòu) 圖如圖3-1。如圖中所示,手機(jī)客廣端是直接和服務(wù)器通信的。這樣能夠減輕服 務(wù)器運(yùn)行時(shí)傳輸?shù)臄?shù)據(jù)負(fù)荷。對于客戶端的響應(yīng)時(shí)間也相對與b/s架構(gòu)快速。 因?yàn)榭紤]到實(shí)際情況,和只在單一的android平臺(tái)開發(fā)客戶端。故采取這種形式 是比較符合實(shí)際的。系統(tǒng)數(shù)據(jù)庫服務(wù)器端手機(jī)客戶端手機(jī)客戶端手機(jī)客戶端圖3-1系統(tǒng)整體結(jié)構(gòu)圖(二)子系統(tǒng)設(shè)計(jì)1.
17、 手機(jī)端功能設(shè)計(jì)手機(jī)端功能設(shè)計(jì)包括注冊登錄模塊,同步模塊,學(xué)習(xí)資料管理模塊,注冊資 料管理模塊,軟件設(shè)置模塊和學(xué)習(xí)模塊。如圖3-2所示。注冊登錄模塊學(xué)習(xí)資料管理模塊同步摸塊學(xué)習(xí)摸塊注冊資14管理模塊軟件設(shè)g模塊圖3-2手機(jī)端功能模塊圖user-nameuscrpassworddatanamepackagehamemcontextselfoataogetuserdata()2. 服務(wù)器端功能模塊圖服務(wù)器端功能設(shè)計(jì)氈括系統(tǒng)用戶管理模塊,學(xué)習(xí)資料管理模塊,學(xué)習(xí)用戶 管理模塊,連接通信管理模塊,id志管理模塊,軟件管理模塊。如圖3-3所示。圖3-3服務(wù)器功能模塊圖(三)類設(shè)計(jì)手機(jī)客戶端所用類初始注冊登
18、錄界面類loginandregisteractivity,學(xué)習(xí)類是learnactivity,主界 而類是mainactivity,個(gè)人資料類是selfdata, sd卡操作和文件讀寫類是 getsdcardlnfoandfileoperation,如圖3-4。其中列出了主要的類成員變量和成員方法olearnactivityuser nameuscr_passworduser_cmailoncreateq ondicklocinbutton onclickregisterbutton onclickconfirm buttondatanamepacksgenamecurrentwordself
19、oatsoncreate)onclickoonclickstartleambuttonoinitialcurrentstudyview()getsdcardlnfoandfileoperationselfdatadatanamepackagenamecurrentwordaudiofilestrarraywordsfilestrarrayminnumbermediaplayermaxnumberoncreateoupdatemediaplayerf)inrtialwordslnfo()randomsettexttobutton()filepathsdcirdpathgetsdardpath()
20、filelsexists()getfilellstofilearray()wrrtcfiledreadfile()圖3-4手機(jī)端設(shè)計(jì)類圖主要成員變量和方法說明。loginandregisteractivity 中。user_name :用戶名。user_password:登錄密碼。user_email :用戶郵箱,當(dāng)用戶初次注冊時(shí)使用。oncreate()方法:初始手機(jī)客戶端,初始數(shù)據(jù)。onclickloginbutton()方法:用戶選擇登錄,切換到登錄界面。onclickregisterbutton()方法:用戶選擇注冊,切換到注冊界面。 onclickconfirmb utton()方法
21、:用戶選擇了確認(rèn)注冊或登錄,完成相關(guān)操作。mainactivity 中。dataname:用戶當(dāng)前學(xué)習(xí)的單詞包名。 packagename:用戶當(dāng)前學(xué)習(xí)的階段包名。 currentword:記錄用戶當(dāng)前學(xué)習(xí)到的單詞位置。sehdata:用戶個(gè)人相關(guān)數(shù)據(jù)類的實(shí)例,存儲(chǔ)有個(gè)人用戶數(shù)據(jù),方便操作。 oncreate()方法:讀取相關(guān)信息,初姑化主界面。onclicko方法:接收用戶在主界面上的點(diǎn)擊事件,根據(jù)不同控件做出不同響應(yīng)。onclickstartlearnbuttono方法:用戶點(diǎn)擊開始學(xué)習(xí)按鈕后,初始化學(xué)習(xí)界面, 開始學(xué)習(xí)。initialcurrentstudyview()方法:初始化用戶學(xué)
22、習(xí)進(jìn)度相關(guān)信息并顯示。learnactivity 中。dataname :用戶當(dāng)前學(xué)的單詞包名。 packagename:用戶當(dāng)前學(xué)習(xí)的階段包名。 currentword:記錄用戶當(dāng)前學(xué)習(xí)到的革詞位置。 audiofilestr array:存放學(xué)習(xí)資料音頻文件名。 wordsfilestrarray:存放學(xué)習(xí)資料文木文件名。 mi nn umber :用學(xué)階段,所冇單詞的最小編號(hào)。 maxnumber:用戶學(xué)習(xí)階段,所有單詞的最大編號(hào)。mediaplayer :當(dāng)前正在學(xué)習(xí)的卑詞的音頻播放實(shí)例,根據(jù)不同的牢詞更換不 同的音頻源。oncreate()方法:根據(jù)學(xué)習(xí)進(jìn)度初始化學(xué)習(xí)界面。 upda
23、temediaplayer()方法:根據(jù)學(xué)単詞不m,更替音頻源。 initialwordsinfo()方法:初始化學(xué)習(xí)資料,將單詞存放的文本和音頻文件名等信息加載進(jìn)內(nèi)存中,并且創(chuàng)建六個(gè)hashmap,分別用鍵值對方式存放單詞音頻 文件名,單詞韓語文本,漢語文本,韓語例句文本,漢語例句翻譯。randomsettexttobutton()方法:從hashmap中取出韓語或漢語文木,然后隨 機(jī)設(shè)置進(jìn)四個(gè)button按鈕中,供用戶選擇。getsdcardlnfoandfileoperation 中。filepath:學(xué)習(xí)資料文件存儲(chǔ)路徑。sdcardpath: sd卡的絕對路徑。getsdcardpa
24、th()方法:因?yàn)閍ndroid系統(tǒng)中,不同的手機(jī)中,sd card路徑可能不一樣,所以用該方法得到當(dāng)前的手機(jī)中的sd card路徑。 filelsexistso方法:判斷h標(biāo)文件或文件夾是否存在。 getfilelisto方法:得到指定文件夾中的所有文件,返回類型為文件。 filearrray()方法:得到指定文件夾中所有文件,返冋類型為文件名。 writefile()方法:將指定字符串寫入文件。 readfiie()方法:從指定文件讀取內(nèi)容。selfdata 中:mcontext:程序的上下文,用于得到存儲(chǔ)在手機(jī)中的sharedpreferences中的 配置信息。selfdata()方法
25、:類的構(gòu)造函數(shù),初始化所有成員變量,并賦值。 getuserdata()方法:返回所有的用戶數(shù)據(jù)。(四) 數(shù)據(jù)庫設(shè)計(jì)1. 學(xué)習(xí)用戶資料表設(shè)計(jì)設(shè)計(jì)用戶表(userdatatable),便于對學(xué)習(xí)用戶進(jìn)行管理。如卜*表3-5。 表3-5用戶資料表名稱類型是否為空備注user namenvarchar(20)not null用戶名user_passwordnvarchar(20)not null密碼,加密存 儲(chǔ)user gendernvarchar(2)not null用戶性別user idintnot null用戶識(shí)別碼u ser regis t一timedatenot null注冊時(shí)間user
26、emailnvarchar(30)not null用戶郵箱user qqnvarchar(20)null用戶qq號(hào)碼user_wechatnvarchar(30)null用戶微信號(hào) 碼user一phonenvarchar(30)null用戶電話號(hào) 碼u ser remembered wordintnot null記住單詞數(shù)u ser_current_wordintnot null當(dāng)前記憶單 詞位罝u ser_current_packagenvarchar(lo)not null當(dāng)期階段學(xué) 習(xí)包u ser selfintroducenvarchar(loo)null自我介紹user curren
27、t rankintnot null目前排名user othernvarchar(loo)null用戶備注表關(guān)鍵字段詳細(xì)說明:user_name:用戶名,相當(dāng)于用戶昵稱,可以更改,但是要求是唯一的。但 在系統(tǒng)內(nèi)部是用userjd來唯一表示用戶的。user_password:用戶密碼,對密碼強(qiáng)度沒有規(guī)定,用戶可根據(jù)自己喜好設(shè) 置密碼強(qiáng)度。userjd:用戶標(biāo)識(shí)碼,在系統(tǒng)內(nèi)部唯一標(biāo)識(shí)用戶的,從用戶注冊后就不可 更改。該字段是用于更方便管理用戶信息,在表之間建立聯(lián)系的。user_current_word:用戶當(dāng)前記住的單詞在總的計(jì)劃屮的位置標(biāo)號(hào)。因?yàn)樗?有單詞是照記憶曲線方式重復(fù)排序的。所以每個(gè)單詞是
28、重復(fù)出現(xiàn)多次的。這個(gè) 字段是為記錄用戶進(jìn)度設(shè)罝的。因?yàn)楹笃谟脩綦A段學(xué)習(xí)包可能回更改,所以用該 字段能準(zhǔn)確定位。user_current_package:當(dāng)前階段學(xué)包字段,用于記錄用戶學(xué)的階段包 名,也用與記錄用戶進(jìn)度,和user_current_word配合使用。user_cuitent_rank:用戶排名¥段,記i用戶在所有用戶中記憶單詞的排名 情況。之所以會(huì)在用戶資料表中有該字段,是為了方便用戶自己后其它用戶在查 看資料時(shí)能更快方便。user_other:用于后期可能拓展用戶相關(guān)信息的字段。2. 排名表設(shè)計(jì)排名表(ranktable)用于記錄所有用戶單詞記憶排名。該表每周更新一次
29、。如下表3-6。該表是為了方便展示排名,在實(shí)際展示排名時(shí)只取前25名展示。 表3-6每周排名表名稱類型是否為空備注rank orderintnto null排名rank_remembered_wordintnot null單詞記憶 數(shù)rank user namenvarchar(20)not null用戶名rank_user_idintnot null用戶識(shí)別 碼rank_datedatenot null執(zhí)行排名 時(shí)間rank一othernvarchar(loo)null備注表關(guān)鍵字段說明:rank_order:用戶在所有用戶中的排名。rank_remembered_word:用廣在排名執(zhí)行前
30、一周內(nèi)記憶的所有單詞數(shù)量。 rank_date:排名執(zhí)行時(shí)間。一周進(jìn)行一次排名。執(zhí)行時(shí)間在每周hd晚00:00執(zhí)行。rank_other:保留字段,用于后期可能增加的字段。3. 用戶歷史記憶表設(shè)計(jì)用戶歷史記憶表(histroyrecordtable)記錄每一個(gè)用戶歷史記憶單詞最大記 錄,如下表。表3-7歷史記憶表名稱類型是否為空備注rem user idintnot null用戶識(shí)別碼rem user namenvarchar(20)not null用戶名rem_max_wordintnot null用戶記住最多 單詞數(shù)rem_max_packagenvarchar(20)not null用戶
31、記憶到最 高的學(xué)習(xí)包rem_total_timeintnot null用戶記憶單詞 總的時(shí)間(以 秒為單位)rem 一 total_loginintnot null用戶歷史登錄 次數(shù)rem othernvarchar(loo)null備注表關(guān)鍵字段說明:rem_max_word:用戶從使用該軟件以來記住的所有單詞的數(shù)量。實(shí)際每個(gè) 單詞是對應(yīng)一個(gè)唯一的int型的數(shù)值的。所以也可以通過該字段知道用戶記憶了 那些單詞。rem_max_package:用戶記憶到的最高學(xué)習(xí)ti,該字段是為了用戶在不同的 客戶端登錄使用時(shí)來快速同步學(xué)習(xí)記錄。后期有可能舍棄。和rem_max_word 配合使用。rem_t
32、otal_tiem:用戶從注冊使用軟件記憶的總時(shí)間。這是為丫方便統(tǒng)計(jì)分 析和方便用戶自己對自己作評價(jià)的字段。(五)單詞資料存儲(chǔ)設(shè)計(jì)每一學(xué)習(xí)階段單詞資料分音頻和文本。對于文本,每個(gè)單詞有唯一一個(gè)txt 文檔,存儲(chǔ)有單詞編號(hào),韓語單詞本身,漢語意思,韓語例句,韓語例句翻譯。 每一項(xiàng)屮間用英文句號(hào)分隔。文本都存儲(chǔ)在words文件夾屮。單詞自身文本命名 方式“number.txt”,其中number為單詞編號(hào)。如單詞“外中的文本命名為“ 10.txt”, 對于的文本內(nèi)容是“10.石m外呌.【動(dòng)詞】穿過,越過.省省石m外呌.穿過馬路” 和應(yīng)單詞音頻存儲(chǔ)在audios文件夾中,分別以單詞編號(hào)命名,格式為m
33、p3音頻。如“10.mp3”。每一階段的audios文件夾和words文件夾都是存放布階段中的。四、系統(tǒng)實(shí)現(xiàn)(一)開發(fā)環(huán)境1.手機(jī)端以android操作系統(tǒng)為平臺(tái)進(jìn)行開發(fā)。android是自由及開放源代碼的操作 系統(tǒng)。可用于移動(dòng)設(shè)備,比如平板電腦和智能手機(jī)。也可用于家電,如智能電視。 當(dāng)然還能用于其它設(shè)備。在本課題中軟件設(shè)計(jì)的運(yùn)行平臺(tái)只針對android智能手 機(jī)。因?yàn)榭紤]到軟件運(yùn)行的流暢度,界面的美觀,軟件整體運(yùn)行效果。對android 智能手機(jī)要求是andmid 4.0及以上平臺(tái)。對屏幕分辨率耍求是480x800及以上。 如果基本條件不符合,程序會(huì)提示,并且自動(dòng)退出。開發(fā)手機(jī)端所用的開發(fā)工
34、具采用了比較流行的eclipse ide,然后配置好java 環(huán)境變量和用于android應(yīng)用程序開發(fā)的sdk。分別用不同配罝的虛擬android 設(shè)備和真實(shí)的android智能手機(jī)對手機(jī)端軟件進(jìn)行測試,盡可能保證程序在不同 設(shè)備上能良好運(yùn)行。2. 服務(wù)器端服務(wù)器端暫時(shí)是基于windows平臺(tái)。采用tomcat作為web服務(wù)器。tomcat 服務(wù)器是一個(gè)免費(fèi)開源的輕量級應(yīng)用服務(wù)器,對于該韓語單詞記憶軟件來說,用 戶訪問量相對小,并發(fā)性不高,故采用tomcat比較合適。該程序中tomcat采 用了最新8.0版本。對于數(shù)據(jù)管理軟件采用了 sql server 2012。sql server是由微軟
35、推出的關(guān) 系型的數(shù)據(jù)庫管理系統(tǒng)。在該軟件開發(fā)中,之所以采用sql server是因?yàn)槠溆?好的管理界面和方便的操作。(二)相關(guān)主要技術(shù)1. rsa公鑰加密算法rsa算法基于一個(gè)十分簡單的數(shù)論事實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,但 是想要對其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰?!?】在本次軟件開發(fā)屮,對存儲(chǔ)在手機(jī)本地的用戶信息進(jìn)行加密處理。同時(shí)對于 客戶端和服務(wù)器的通信部分信息進(jìn)行加密。如用戶登錄,學(xué)習(xí)記錄同步等通信信 息。對于學(xué)習(xí)資料下載等通信信息采取明文傳輸。加密通信的大致流程是在手機(jī) 客戶端程序中存有服務(wù)器端的公鑰,用廣需要傳送的信息先用公鑰加密后再發(fā)送 給服務(wù)器。在用
36、戶第一次注冊時(shí),客戶端會(huì)把由用戶密碼計(jì)算得來的公鑰發(fā)送給 服務(wù)器,這樣每次服務(wù)器需要向客戶端發(fā)送加密信息時(shí)也用用戶的公鑰加密后發(fā) 送回客戶端。2.記憶算法記憶算法根據(jù)德國心里學(xué)家艾賓浩斯的研究制定。根據(jù)人們在不同的吋間間 隔對事物的遺忘百分比,采用不同時(shí)間段后重復(fù)記憶來達(dá)到強(qiáng)化記憶,永久記憶 的效果。在記憶復(fù)習(xí)點(diǎn)的確定上采用了下面的策略。第一個(gè)記憶周期:5分鐘第二個(gè)記憶周期:30分鐘第三個(gè)記憶周期:8小時(shí)第四個(gè)記憶周期:1天第五個(gè)記憶周期:2天第六個(gè)記憶周期:4天第七個(gè)記憶周期:8天第八個(gè)記憶周期:15天對于記憶時(shí)間安排基本按上面的時(shí)間間隔來確定。在軟件中,將要記憶的所 有單詞劃分為大致相同個(gè)
37、數(shù)的很多伍。每一個(gè)包的學(xué)習(xí)算作學(xué)習(xí)者學(xué)習(xí)的一個(gè)階 段。學(xué)4者只冇將一個(gè)包學(xué)完畢后才能進(jìn)入下一個(gè)包學(xué)軟件會(huì)記錄每一個(gè) 包的學(xué)習(xí)完成時(shí)間,當(dāng)?shù)絫一個(gè)記憶周期時(shí)會(huì)提醒學(xué)習(xí)者復(fù)習(xí),并且只能復(fù)習(xí), 替換當(dāng)前學(xué)習(xí)包。在該軟件設(shè)計(jì)中,對單詞的學(xué)習(xí)采用一個(gè)問答形式學(xué)習(xí)。同時(shí) 記憶充分調(diào)動(dòng)用戶思考,聯(lián)想與詞匯和關(guān)的事物,以此強(qiáng)化記憶。3. 單詞排序規(guī)則及記憶對于單詞包屮單詞的先后順序不是無序的,而是按照韓語單詞的詞根來進(jìn)行 的。相當(dāng)不同詞根的單詞排序相對來說是無序的。在本次軟件編寫中,主要參考 李妍彤主編的絕對不借給人的韓語單詞書這本書來進(jìn)行單詞的排列的。主要 記憶算法里是按詞根進(jìn)行單詞的分類記憶。這里的詞根分
38、為韓語詞根和漢字詞根 兩大類。在安排上把所有的韓語詞根的單詞排在前面。這樣學(xué)習(xí)到一定階段,再 學(xué)習(xí)漢語詞根的單詞,學(xué)習(xí)者能快速拓展詞匯量,并且能根據(jù)詞根猜測一些從來 沒有見過的單詞。最后,還根據(jù)不同種類事物來分類單詞。這三種方式都是通過 一定的聯(lián)系讓單詞串聯(lián)起來,使學(xué)習(xí)者有系統(tǒng),有規(guī)律地學(xué)習(xí),做到高效記憶。(三) 關(guān)鍵功能實(shí)現(xiàn)1.匹配不同設(shè)備對于andmid設(shè)備,因?yàn)槭忻嫔嫌泻芏嗖煌渲?。一般來說,現(xiàn)在的手機(jī)都 達(dá)到了軟件運(yùn)行所需要的硬件要求。影響軟件運(yùn)行效果的主要障礙來自設(shè)備不同 分辨率的屛幕。同時(shí)也為了界面運(yùn)行的穩(wěn)定性。先是在android程序設(shè)計(jì)的布局 文件(一種xml文件)中,對手機(jī)端
39、界面進(jìn)行良好的布局設(shè)置。主要采用了線性 亦局linearlayout和相對介局relativelayout相結(jié)合的形式。同時(shí)由于部分子視 閣需耍頻繁更替,采用了 fragment元素。程序運(yùn)行前先用如下代碼獲取屏幕分 辨率信息。根據(jù)得到的分辨判斷手機(jī)是否適合運(yùn)行該程序。windowmanager wm = getwindowmanager();display d = wm.getdefaultdisplayo;point size = new point(); d.getsize(size); int screen_x = size.x; int screen_y = size.y;2. an
40、droid 直連 sql server 數(shù)據(jù)庫由于在該程序設(shè)計(jì)時(shí)采用c/s架構(gòu)設(shè)計(jì)。android t機(jī)客戶端需要直連sql server數(shù)據(jù)庫。在程序中采用了 jtds來實(shí)現(xiàn)android手機(jī)客戶端與sql server數(shù)據(jù)庫的直連。jtds是開放源碼的純java實(shí)現(xiàn)的jdbc驅(qū)動(dòng)。可用 于連接sqlserver和sybase。是可企業(yè)級應(yīng)用的sql server驅(qū)動(dòng)程序。jtds不需要安裝,只需k載好后把jar文件放在classpath路徑屮就可以。所用的連接關(guān)鍵代碼如下ciass.forname( hnet.sourceforge.jtds.jdbc.drivern);con = dri
41、vermanager.getconnection( njdbc:jtds:sqlserver:/27.208.124.98:1433/ korean word,username,password);在以上代碼屮,第一行代碼是加載jtds驅(qū)動(dòng)程序。接著第二行代碼建立連接。 其中27.208.124.98是sql server數(shù)據(jù)庳運(yùn)行所在服務(wù)器ip地址,可以根據(jù)實(shí) 際更改。1433是所在的端口號(hào),這里也可以更改。koreanword是數(shù)據(jù)庫文件。 username和password分別是連接數(shù)據(jù)庫需要的用戶名和密碼。當(dāng)然這里的用戶 是數(shù)據(jù)庫用戶里的一般用戶,只有很少的權(quán)限。在android直連s
42、ql server的時(shí)候很重要的是對服務(wù)器端的防火墻和系毒 軟的設(shè)置。如果設(shè)置不當(dāng),連接是不會(huì)成功的。3. 手機(jī)端自動(dòng)登錄實(shí)現(xiàn)android提供了五種方式用于存儲(chǔ)數(shù)據(jù)。分別是使用sharedpreferences存儲(chǔ), 文件存儲(chǔ),sqlite數(shù)據(jù)庫存儲(chǔ),contentprovider存儲(chǔ)和網(wǎng)絡(luò)存儲(chǔ)。比較這五種方 式,對于自動(dòng)登榮信息的存儲(chǔ)采用sharedpreferences存儲(chǔ)是最方便,簡潔的。 sharedpreferences存儲(chǔ)方式是android提供的用丁存儲(chǔ)一些簡革配置信息的機(jī)制。 采用了 map數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)數(shù)據(jù),以鍵值對的方式存儲(chǔ),可實(shí)現(xiàn)簡單的讀寫操 作。在android系統(tǒng)中
43、,sharedpreferences中的信息是以xml文件形式保存的。 位于/data/data/package_name/shared_prefs 目錄卜。一般 android 手機(jī)在沒有 獲取mot權(quán)限的情況下,是無法用文件管理軟件斉看data目錄的。所以是比較 安全的。另外,在存儲(chǔ)登錄密碼時(shí)是采用加密存儲(chǔ)的方式。關(guān)鍵代碼實(shí)現(xiàn)如下,存數(shù)據(jù)editor userlocaldata = getsharedpreferencesc'userdata", o).edit();userlocaldata.putstring('user_name','user
44、_name_string);userlocaldmit();取數(shù)據(jù)sharedpreferences userlocaldata = getsharedpreferencesc'userdata", 0);string user_name = userlocaldata.getstring(“user_name”,null);4. 手機(jī)和服務(wù)器通信在手機(jī)和服務(wù)器進(jìn)行一部分信息交互時(shí),比如下載資料包請求,同步請求等。 通信中表示信息的格式是使用json(javascript object notation)格式。因?yàn)閖son 是輕量級的數(shù)據(jù)交換格式,有利于讀寫,易于解析和生成。
45、冋吋能減少對機(jī)器性 能的依賴。json中的信息都是以鍵/值對的形式存在的,鍵/值對組成了有序的列表。在本次開發(fā)中主耍用到的是android sdk提供的jsonarray和jsonobject兩個(gè)類來處理json數(shù)據(jù)的。另外,對于學(xué)習(xí)資料數(shù)據(jù)包的下載通信,在手機(jī)端處理吋,采用異步通信方 式。這樣做是因?yàn)?,k載學(xué)習(xí)資料包是費(fèi)時(shí)的,但是android主線程屮如果5秒 內(nèi)控件沒反映的話就會(huì)認(rèn)為無響應(yīng),提示用戶是否結(jié)束。對于普通用戶來說并不 了解程序?qū)嶋H還在工作,所以會(huì)選擇結(jié)束程序。所以在下載資料時(shí)使用了 android 提供的asynctask來處理。5. 手機(jī)端咅頻和文件加載對于存儲(chǔ)在手機(jī)外部存儲(chǔ)器上的音頻和文本數(shù)據(jù),在用戶學(xué)習(xí)時(shí)要及時(shí)加載 進(jìn)內(nèi)存中并播放和顯示,尤其是音頻。如果每次需要時(shí)才去存儲(chǔ)設(shè)備上讀取,這 無疑是很耗時(shí)的,在性能比較差點(diǎn)的設(shè)備上就會(huì)更明顯。因?yàn)槊恳浑A段單詞數(shù)人 概30個(gè)左右,所以選擇丫使用android屮的soundpool類來一次性加載所有的 音頻,用一個(gè)hashmap對象audiold來存放所有音頻加載后在soundpool中的id。 如下代碼:soundpool = new soundpool(wordsnumber,0, 5); f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023六年級數(shù)學(xué)下冊 二 圓柱和圓錐第四課時(shí) 圓柱的體積教案 蘇教版
- 租賃倉庫合同(2篇)
- 自擔(dān)風(fēng)險(xiǎn)的合同(2篇)
- 西南林業(yè)大學(xué)《城市規(guī)劃原理》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《藝術(shù)鑒賞》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《攝影攝像基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 別克新一代君威按鍵操作課件
- 西京學(xué)院《電子系統(tǒng)綜合設(shè)計(jì)實(shí)訓(xùn)》2021-2022學(xué)年期末試卷
- 風(fēng)力發(fā)電 課件
- 浣溪沙課件圖片
- 酒店直播方案
- 安徽省合肥市第五十中學(xué)西校區(qū)2024-2025學(xué)年期中考試七年級數(shù)學(xué)試題(無答案)
- 湖北省恩施市沙地初中2024-2025學(xué)年八年級數(shù)學(xué)上學(xué)期期中考試題卷(含答案)
- 國開2024年秋《大數(shù)據(jù)技術(shù)概論》形考作業(yè)1-4答案
- 旅游景區(qū)旅游安全風(fēng)險(xiǎn)評估報(bào)告
- 部編2024版歷史七年級上冊第三單元《第14課 絲綢之路的開通與經(jīng)營西域》說課稿
- 合同模板 交稅
- 期中測試卷(試題)2024-2025學(xué)年蘇教版數(shù)學(xué)六年級上冊
- 人音版音樂三年級上冊全冊教案
- 2024年新人教版四年級數(shù)學(xué)上冊《第5單元第1課時(shí) 平行與垂直》教學(xué)課件
- 期中易錯(cuò)卷(第1-4單元)(試題)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
評論
0/150
提交評論