版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 英漢互譯系統(tǒng)是基于J2EE開發(fā)的,在J2SDK和Eclipse平臺上使用java與Microsoft Access開發(fā)的,主要是解決個人及廣大的朋友們實現(xiàn)英譯漢、漢譯英的功能,本系統(tǒng)實現(xiàn)對生詞、錯詞進行添加、刪除和修改。之所以選擇J2EE來開發(fā)本系統(tǒng)有諸多的優(yōu)越性,下面分別介紹:</p><p>
2、<b> J2EE的優(yōu)越性:</b></p><p> J2EE是一套全然不同于傳統(tǒng)應用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。</p><p> Java語言的優(yōu)越性和前景:</p><p> java是以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由Sun Micros
3、ystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。</p><p><b> 作
4、品的選材:</b></p><p> 現(xiàn)在我們處于一個信息的時代,隨著時代的進步,語言也伴隨這進步,我們處在一個形形色色的語言大家庭中,會其他國家的語言變得尤為重要,而英語在這些語言中又顯得突出了,之所以選擇做一個英漢互譯的翻譯軟件是為了幫助自己和他人能學習更多的英語詞匯,提升自己的技能水平。</p><p> 系統(tǒng)用程序的方式解決了那些非常復雜的操作,比如翻越詞典,所有的
5、步驟只需在電腦或者手機上安裝即可查詢。只需要查詢,添加,刪除和修改簡單的幾步操作就可以完成,非常簡單實用。</p><p> 【關(guān)鍵詞】 java技術(shù);英漢互譯;查詢;刪除;修改;添加</p><p><b> Abstract</b></p><p> Translation system is based on J2EE develo
6、pment, developed using java the J2SDK and Eclipse platform and Microsoft Access, mainly to solve personal and the majority of the friends realized English to Chinese and Chinese to English functionality of the system to
7、achieve the new words,wrong word to add, delete, and modify. Chose J2EE to develop the system has many advantages, the following were introduced:The superiority of J2EE: J2EE is a set of completely different from t
8、raditional applica</p><p> 【Key Words】java technology; Translation; queries; delete; modified; Add</p><p><b> 目 錄</b></p><p> 第一章 問題定義及內(nèi)容簡介1</p><p>
9、1.1問題的定義1</p><p> 1.2 內(nèi)容簡介1</p><p> 第二章 研究背景與研究意義2</p><p> 2.1 研究背景2</p><p> 2.2 研究意義2</p><p> 第三章 開發(fā)平臺與語言簡介4</p><p> 3.1 Eclipse簡
10、介4</p><p> 3.2 java 簡介4</p><p> 3.3 Access 簡介5</p><p> 第四章 系統(tǒng)需求分析及可行性分析6</p><p> 4.1 系統(tǒng)需求分析6</p><p> 4.1.1 現(xiàn)狀分析6</p><p> 4.1.2 功能需
11、求分析6</p><p> 4.1.3 數(shù)據(jù)庫需求分析6</p><p> 4.1.4 系統(tǒng)數(shù)據(jù)流程分析7</p><p> 4.2 系統(tǒng)總體功能介紹8</p><p> 4.3 模塊功能介紹8</p><p> 4.3.1 主界面功能8</p><p> 4.3.2 英
12、譯漢功能9</p><p> 4.3.3 漢譯英功能9</p><p><b> 4.4 數(shù)據(jù)項9</b></p><p> 4.5 系統(tǒng)難點分析10</p><p> 第 五 章 系統(tǒng)設(shè)計11</p><p> 5.1系統(tǒng)的總體設(shè)計11</p><p&g
13、t; 5.1.1系統(tǒng)的功能模塊設(shè)計11</p><p> 5.2 系統(tǒng)的詳細設(shè)計12</p><p> 5.2.1 概念設(shè)計12</p><p> 5.3 系統(tǒng)的物理設(shè)計14</p><p> 第 六 章 總體設(shè)計15</p><p> 6.1 算法的實現(xiàn)15</p><p&
14、gt; 6.2 字符串的聯(lián)系15</p><p> 6.3 數(shù)據(jù)庫設(shè)計15</p><p> 6.3.1 數(shù)據(jù)庫圖15</p><p> 6.3.2 數(shù)據(jù)庫的約束與關(guān)系15</p><p> 6.4 系統(tǒng)的實現(xiàn)16</p><p> 6.4.1 主界面功能實現(xiàn)16</p><
15、p> 6.4.2 英譯漢功能實現(xiàn)17</p><p> 6.4.3 漢譯英功能及詞庫備份實現(xiàn)18</p><p> 6.4.4 查詢類的實現(xiàn)及數(shù)據(jù)庫綁定19</p><p> 6.4.5 添加類的實現(xiàn)及數(shù)據(jù)庫綁定20</p><p> 6.4.6 修改類的實現(xiàn)及數(shù)據(jù)庫綁定21</p><p>
16、 6.4.7 刪除類的實現(xiàn)及數(shù)據(jù)庫綁定22</p><p> 第 七 章 Socket編程25</p><p> 7.1 Socket編程25</p><p> 7.2 Socket的實現(xiàn)25</p><p> 第 八 章 程序總結(jié)29</p><p> 8.1 本系統(tǒng)的優(yōu)點29</p&g
17、t;<p> 8.2 本系統(tǒng)的不足及改良29</p><p> 8.3 設(shè)計和實現(xiàn)過程中的收獲29</p><p><b> 參考文獻30</b></p><p><b> 參考書籍:30</b></p><p><b> 謝辭31</b>&l
18、t;/p><p> 第一章 問題定義及內(nèi)容簡介</p><p><b> 1.1問題的定義</b></p><p> 解決英譯漢、漢譯英以及傳統(tǒng)的英漢互譯的軟件缺陷進行以下的改變:</p><p> 1.實現(xiàn)添加生詞到數(shù)據(jù)庫,方便下次查詢,備份詞庫、避免數(shù)據(jù)丟失。</p><p> 2.修改
19、錯誤的詞匯,漢英解釋和單詞的性質(zhì)。</p><p> 3.對不必要的詞匯進行刪除,大大的減少了數(shù)據(jù)冗余和重復。</p><p> 4.考慮數(shù)據(jù)庫的選擇和數(shù)據(jù)庫連接、配置等問題、減少不必要的問題出現(xiàn)</p><p><b> 1.2 內(nèi)容簡介</b></p><p> 通過設(shè)計實踐,達到以下目的:</p>
20、;<p> 1.培養(yǎng)學生嚴謹務實的工作態(tài)度,并在老師的指導下,提高分析問題和解決問題的能力,促進理論聯(lián)系實際學風養(yǎng)成。 </p><p> 2.鞏固和加深對面向?qū)ο蟪绦蛟O(shè)計的基本概念、基本理論和實現(xiàn)技術(shù)的理解。</p><p> 3.掌握Java開發(fā)的主要環(huán)境與工具,掌握面向?qū)ο蟮某S每丶氖褂梅椒ā?lt;/p><p> 4.初步掌握面向?qū)ο?/p>
21、系統(tǒng)分析與設(shè)計的基本方法和步驟,并能針對簡單的實際應用問題進行初步地分析和設(shè)計。</p><p> 5.掌握Java編程語言,并針對具體應用問題進行編程實現(xiàn)。</p><p> 6.通過撰寫課程設(shè)計論文,鍛煉學生科技論文寫作能力。</p><p><b> 英漢互譯的實現(xiàn):</b></p><p> 功能要求:能
22、夠編輯詞典庫中的信息,能夠?qū)崿F(xiàn)英譯漢,漢譯英(要考慮一詞多義)。</p><p> 該系統(tǒng)主要用于實現(xiàn)英漢互譯的功能,先選擇是英譯漢還是漢譯英然后再查詢框中查詢,該系統(tǒng)會自動彈出匹配信息。</p><p> 第二章 研究背景與研究意義</p><p><b> 2.1 研究背景</b></p><p> 電子引詞
23、典是一種將傳統(tǒng)的印刷詞典轉(zhuǎn)成數(shù)碼方式、進行快速查詢的數(shù)字學習工具。電腦辭典以輕便易攜、查詢快捷、功能豐富等特點,成為21世紀學生學習生活、社會人士移動辦公的掌上利器。電腦辭典主要有五大板塊功能,分別為:辭典查詢學習功能、電子記事功能、計算功能、參考資料功能以及數(shù)據(jù)傳輸功能。目前市場上的電子辭典內(nèi)置的辭典有學習詞典如英漢、雅思等,也有專業(yè)詞典如電子、醫(yī)藥、信息等。不同的消費者應根據(jù)自己的實際情況選擇最適合自己的電子辭典,標準的電子辭典內(nèi)置
24、英漢、漢英、英英、雅思、托福等學習型詞典,是為大學、高初中以及小學生量身定制的學習辭典。</p><p> 我們在學習英語的時候會經(jīng)常碰到很多的生詞,有時,為了讀懂一篇文章,經(jīng)常是讀文章用一小時,但是其中卻有半個小時都在翻閱英語字典。所以我們小組為了解決這一問題,才將選材方向定位于電子詞典的功能實現(xiàn),主要的目的就是為同學們解決這一問題。</p><p> 在做電子詞典功能實現(xiàn)的時候,主
25、要從以下幾個方面入手,即:英漢互譯、漢英互譯。</p><p> 在英譯漢、漢譯英這兩個功能模塊上,我們首先提供了一個查詢界面,即使用者需要輸入要查詢的關(guān)鍵字,點擊確定按鈕,屏幕上就會出現(xiàn)其對應的答案。在做這個模塊的時候,我們主要解決了Java與數(shù)據(jù)庫的鏈接問題,進而實現(xiàn)其功能。從系統(tǒng)的可擴展性方面考慮,我們在系統(tǒng)中加入了對單詞庫的添加、刪除、修改功能。有了這個功能模塊,將給予使用者帶來很大的方便。</p
26、><p> 當然也存在一種情況,即剛開始接觸而不懂得如何去使用電子詞典,為此我們加入了幫助界面,幫助界面是用Java小程序完成的。</p><p><b> 2.2 研究意義</b></p><p> 在于鞏固所學Java語言編輯基本功,掌握Jdk,Editplus,Eclipse,Jcreator等開發(fā)工具的運用,拓寬常用類庫的應用。Jav
27、a語言是當今流行的網(wǎng)絡編程語言,它具有面向?qū)ο?,跨平臺,分布應用等特點,它貼近自然的語言,而且有利于軟件的維護和繼承。我們通過該教學環(huán)節(jié)與手段,把所學課程及相關(guān)知識加以融會貫通,全面掌握Java語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計的方法,為今后從事實際工作打下堅實的基礎(chǔ)。為了體現(xiàn)它的可擴展性,使用者也可以自己添加、刪除或修改其單詞庫,為我們的學習帶來了很多方便。</p><p> 第三章 開發(fā)平臺與語言簡介<
28、/p><p> 3.1 Eclipse簡介</p><p> Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。 </p><p> 雖然大多數(shù)用戶很樂于將
29、Eclipse當作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse的目標卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse環(huán)境無縫集成的工具。由于 Eclipse中的每樣東西都是插件,對于給 Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有
30、工具開發(fā)人員都具有同等的發(fā)揮場所。 </p><p> 這種平等和一致性并不僅限于 Java開發(fā)工具。盡管 Eclipse是使用 Java 語言開發(fā)的,但它的用途并不限于 Java語言;例如,支持諸如 C/C++ 和 COBOL 等編程語言的插件已經(jīng)可用,或預計將會推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。 </p><p> 基于
31、Eclipse的應用程序的一個突出例子是 IBM Rational Software Architect,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ)。</p><p> 同時,從2006年起,Eclipse基金會每年都會安排同步發(fā)布(simultaneous release)。至今,同步發(fā)布主要在6月進行,并且會在接下來的9月及2月釋放出SR1及SR2版本。</p><p> 3.
32、2 java 簡介</p><p> Java的名字的來源:Java是印度尼西亞爪哇島的英文名稱,因盛產(chǎn)咖啡而聞名。Java語言中的許多庫類名稱,多與咖啡有關(guān):如JavaBeans(咖啡豆)、NetBeans(網(wǎng)絡豆)以及ObjectBeans (對象豆)等等。</p><p> Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計語言(以下簡
33、稱Java語言)和Java平臺的總稱。由James Gosling 和同事們共同研發(fā),并在1995年正式推出。用Java實現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態(tài)的Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。另一方面,Java技術(shù)也不斷更新。(2010年Oracle公司收購了SUN) </p>
34、<p> 由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(Java API)。</p><p> 3.3 Access 簡介</p><p> Microsoft Office Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個數(shù)據(jù)庫管理系統(tǒng)。它是微軟 Office的一個成員, 在包括專業(yè)版和更高版本的Of
35、fice版本里面被單獨出售。2010年5月12日,最新的微軟Office Access 2010在微軟Office 2010里發(fā)布,微軟Office Access 2007 是前一個版本。</p><p> MS ACCESS以它自己的格式將數(shù)據(jù)存儲在基于Access Jet的數(shù)據(jù)庫引擎里。它還可以直接導入或者鏈接數(shù)據(jù)(這些數(shù)據(jù)存儲在其他應用程序和數(shù)據(jù)庫)。</p><p> 第四章
36、系統(tǒng)需求分析及可行性分析</p><p> 4.1 系統(tǒng)需求分析</p><p> 4.1.1 現(xiàn)狀分析</p><p> 當今時代是信息化時代,而信息的數(shù)字化也越來越被人們所重視,所以,數(shù)字化技術(shù)的重要性也逐漸體現(xiàn)了出來,主要體現(xiàn)在以下幾個方面:數(shù)字化是數(shù)字計算機的基礎(chǔ),數(shù)字化是軟件技術(shù)的基礎(chǔ),是智能技術(shù)的基礎(chǔ),數(shù)字化是信息社會的技術(shù)基礎(chǔ),數(shù)字化是信息社會的
37、經(jīng)濟基礎(chǔ)。</p><p> 詞典作為一種為大眾服務的工具書,已經(jīng)漸漸退居二線了,進而出現(xiàn)了另一種查找方式更加簡便,更加精確,詞匯量更加豐富而且隨身攜帶更加方便的工具,那就是電子詞典,應該說這是一個新舊交替的過程,電子詞典取代傳統(tǒng)詞典只是時間的問題。</p><p> 4.1.2 功能需求分析</p><p> 本系統(tǒng)在單詞查閱方面主要完成了英譯漢、漢譯英功能
38、,詞庫備份;在系統(tǒng)性能方面主要完成了單詞庫的插入、修改、刪除功能以及幫助系統(tǒng)。</p><p> 4.1.3 數(shù)據(jù)庫需求分析</p><p> 目前電子詞典的應用很廣泛,其體積小、價格低、實用性強,作為學習工具,有著很廣泛的市場。在以前,同學們學習英語時都要用人工的方法去查閱生詞,不僅浪費了大量的學習時間,學習效率無法提高。查閱英語生詞成為了很多學習英語同學在學習方面的瓶徑。電子詞典的
39、出現(xiàn),就是針對這一問題。這里的設(shè)計就是實現(xiàn)英漢互譯、單詞發(fā)音,為了體現(xiàn)它的可擴展性,使用者也可以自己添加、刪除或修改其單詞庫。</p><p> 下面是數(shù)據(jù)庫表設(shè)計:</p><p> 表4.1 英語詞匯表</p><p> 4.1.4 系統(tǒng)數(shù)據(jù)流程分析</p><p> 數(shù)據(jù)流程是數(shù)據(jù)的采集、輸入、處理、加工和輸出的全過程。信息原始
40、數(shù)據(jù)經(jīng)采集后,輸入計算機系統(tǒng),進行模式或統(tǒng)計運算,或按用戶的特殊要求編制某種專門程序來加工處理數(shù)據(jù),然后輸出結(jié)果數(shù)據(jù)。</p><p> 分析電子詞典的總體情況,劃分系統(tǒng)邊界,識別系統(tǒng)的數(shù)據(jù)來源和去處,確定外部實體,得出系統(tǒng)的頂層數(shù)據(jù)流程圖;然后劃分出幾個主要的信息管理功能,本系統(tǒng)的主要數(shù)據(jù)的工作流包括以下幾個方面:</p><p><b> 1.英漢詞典;</b>
41、;</p><p><b> 2.漢英詞典; </b></p><p><b> 3.添加詞匯;</b></p><p><b> 4.修改詞匯;</b></p><p><b> 5.幫助;</b></p><p> 各
42、功能之間的聯(lián)系,繪出數(shù)據(jù)流程圖,如下圖所示:</p><p> 圖4.1 英譯漢數(shù)據(jù)流程圖</p><p> 圖4.2 漢譯英數(shù)據(jù)流程圖</p><p> 4.2 系統(tǒng)總體功能介紹</p><p> 系統(tǒng)在單詞查閱方面完成了英譯漢、漢譯英;完成了單詞庫的插入、修改、刪除功能以及幫助系統(tǒng)。</p><p> 4
43、.3 模塊功能介紹</p><p> 4.3.1 主界面功能</p><p> 該模塊的主要功能為:由于將組員所做的各模塊組合在一起。使用戶可以在一個界面下調(diào)用組內(nèi)成員的功能模塊。方便用戶使用又方便用戶的學習。而且不但可以通過菜單欄調(diào)用各功能模塊,還可以通過按鈕調(diào)用。</p><p> 主界面主要由兩個面版,五個按鈕,一個文本框,一個文本區(qū),一個標簽和一個菜單
44、欄組成。在文本框中輸入要查詢的數(shù)據(jù)。文本區(qū)中顯示查詢的結(jié)果。</p><p> 4.3.2 英譯漢功能</p><p> 該模塊的主要功能為:當用記遇到陌生的單詞或記不清解釋的單詞時,用戶可以通過本功能查找,還通過本模塊完成單詞的再一次記憶。</p><p> 4.3.3 漢譯英功能</p><p> 該模塊的主要功能為:當用戶進行漢
45、譯英翻譯時難難免遇到不會的詞或記不請的記。這時用記就可以通過本功能實現(xiàn)詞匯的查找。它不但可以查到想要查的詞還可以找到和該詞相關(guān)的單詞。</p><p><b> 4.4 數(shù)據(jù)項</b></p><p> 數(shù)據(jù)項又稱數(shù)據(jù)元素,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)的最小單位,是數(shù)據(jù)記錄中最基本的、不可分的有名數(shù)據(jù)單位。數(shù)據(jù)項可以是字母、數(shù)字或兩者的組合。通過數(shù)據(jù)類型(邏輯的、數(shù)值的、字符
46、的等)及數(shù)據(jù)長度來描述。數(shù)據(jù)項用來描述實體的某種屬性。</p><p> 本系統(tǒng)的數(shù)據(jù)項的定義如下:</p><p> 表4.2系統(tǒng)數(shù)據(jù)項的定義</p><p><b> 數(shù)據(jù)結(jié)構(gòu)的定義</b></p><p> 數(shù)據(jù)結(jié)構(gòu)描述了某些數(shù)據(jù)項之間的關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成;
47、還可以由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)組成。</p><p> 4.5 系統(tǒng)難點分析</p><p> 本系統(tǒng)最大的難點有:對各個面板和功能之間的相互連接、實現(xiàn)數(shù)據(jù)的共享;實現(xiàn)對每個類的方法之間的調(diào)用,配置數(shù)據(jù)庫的連接,完成英譯漢、漢譯英。</p><p> 第 五 章 系統(tǒng)設(shè)計</p><p> 5.1系統(tǒng)的總體設(shè)計</p>
48、<p> 5.1.1系統(tǒng)的功能模塊設(shè)計</p><p> 系統(tǒng)模塊設(shè)計分為3大項,分別是:文件模塊,編輯模塊和幫助模塊。</p><p><b> 1.文件模塊:</b></p><p> 文件模塊分為4小項:漢譯英模塊,漢譯英模塊,詞庫備份,退出系統(tǒng)模塊。</p><p><b> 2.編
49、輯模塊:</b></p><p> 編輯模塊分為3小項:添加詞匯模塊,修改詞匯模塊,刪除詞匯模塊。</p><p><b> 3.幫助模塊:</b></p><p> 幫助模塊分為2小項,分別是:幫助模塊,關(guān)于模塊</p><p><b> 系統(tǒng)的功能模塊圖:</b></p
50、><p> 圖5.1系統(tǒng)的功能模塊圖</p><p> 5.2 系統(tǒng)的詳細設(shè)計</p><p> 5.2.1 概念設(shè)計</p><p> 概念設(shè)計即是利用設(shè)計概念并以其為主線貫穿全部設(shè)計過程的設(shè)計方法。概念設(shè)計是完整而全面的設(shè)計過程,它通過設(shè)計概念將設(shè)計者繁復的感性和瞬間思維上升到統(tǒng)一的理性思維從而完成整個設(shè)計。如果說概念設(shè)計是一篇文章,
51、那么設(shè)計概念則是這篇文章的主題思想。概念設(shè)計圍繞設(shè)計概念而展開,設(shè)計概念則聯(lián)系著概念設(shè)計的方方面面。</p><p> 下面是各模塊的E-R圖:</p><p> 圖5.2 文件模塊子E-R圖</p><p> 圖5.2編輯模塊子E-R圖 </p><p> 圖5.3幫助模塊子E-R圖</p><p> 5.
52、3 系統(tǒng)的物理設(shè)計</p><p> 數(shù)據(jù)庫物理設(shè)計階段的任務是根據(jù)具計算機系統(tǒng)(硬件等)的特點,為給定的數(shù)據(jù)庫模型確定合理的存儲結(jié)構(gòu)和存取方法。有兩個含義:一個是要使設(shè)計出的物理數(shù)據(jù)庫占用較少的存儲空間,另一個對數(shù)據(jù)庫的操作具有盡可能高的速度。</p><p> 為了設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu),設(shè)計人員必須充分了解所用硬件的內(nèi)部特征;充分了解數(shù)據(jù)系統(tǒng)的實際應用環(huán)境,特別是數(shù)據(jù)應用處理的頻率
53、和響應時間的要求;充分了解外存儲設(shè)備的特性。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計大致包括:確定數(shù)據(jù)的存取方法、確定數(shù)據(jù)的存儲結(jié)構(gòu)。</p><p> 物理結(jié)構(gòu)設(shè)計階段實現(xiàn)的是數(shù)據(jù)庫系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個系統(tǒng)的性能。因此在確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法之前,對數(shù)據(jù)庫系統(tǒng)所支持的事務要進行仔細分析,獲得優(yōu)化數(shù)據(jù)庫物理設(shè)計的參數(shù)。</p><p> 對于數(shù)據(jù)庫查詢事務,需要得到如下信息:<
54、;/p><p><b> 1.要查詢的關(guān)系。</b></p><p> 2.查詢條件(即選擇條件)所涉及的屬性。</p><p> 3.連接條件所涉及的屬性。</p><p> 4.查詢的投影屬性。</p><p> 對于數(shù)據(jù)更新事務,需要得到如下信息:</p><p&g
55、t;<b> 1.要更新的關(guān)系。</b></p><p> 2.每個關(guān)系上的更新操作的類型。</p><p> 3.刪除和修改操作所涉及的屬性。</p><p> 4.修改操作要更改的屬性值。</p><p> 5.確定數(shù)據(jù)庫的存儲結(jié)構(gòu)。</p><p> 6.確定系統(tǒng)存儲參數(shù)的配置。
56、</p><p> 第 六 章 總體設(shè)計</p><p><b> 6.1 算法的實現(xiàn)</b></p><p> 起初連接數(shù)據(jù)庫的語句全部都是在調(diào)用頁一句一句的書寫,這樣一來不僅做了很多重復的工作,而且使頁面看起來很繁瑣,經(jīng)過翻閱書籍發(fā)現(xiàn)可以將連接數(shù)據(jù)庫的語句統(tǒng)一放到一個頁面里,然后在需要調(diào)用連接數(shù)據(jù)庫語句的頁面調(diào)用就可以了,這樣既節(jié)省時
57、間,又避免出現(xiàn)書寫錯誤。</p><p> 6.2 字符串的聯(lián)系</p><p> 在測試數(shù)據(jù)查詢模塊時,發(fā)現(xiàn)對字符串的比較存在大小寫之分,所以要先將要比較的兩個字符串轉(zhuǎn)化成相同的格式或者強行限制輸入的字符串大小寫相同,然后再進行比較;如果查詢的結(jié)果為空,那么應該給出提示信息,這樣才能真正做到人機界面的交互。</p><p><b> 6.3 數(shù)據(jù)庫
58、設(shè)計</b></p><p> 6.3.1 數(shù)據(jù)庫圖</p><p> 表6.1英譯漢詞匯表</p><p> 6.3.2 數(shù)據(jù)庫的約束與關(guān)系</p><p> 本系統(tǒng)的數(shù)據(jù)庫采用的是access簡單的數(shù)據(jù)庫,之前在電腦上嘗試過使用SQL和MYSQL等都因系統(tǒng)兼容性不能正常使用。Access數(shù)據(jù)庫只選擇了一張表建立了單詞的
59、英文單詞、解釋、詞性。</p><p> 通過算法的設(shè)計、實現(xiàn)了英譯漢、漢譯英、單詞查詢、添加、修改和刪除的各項功能的相互轉(zhuǎn)換。</p><p><b> 6.4 系統(tǒng)的實現(xiàn)</b></p><p> 6.4.1 主界面功能實現(xiàn)</p><p> 在此模塊內(nèi),用戶如果想使用組內(nèi)其他成員的功能時,有兩種實現(xiàn)方法。一
60、種是在編輯菜單下選擇添加詞匯;另一種是通過主界面下面的按鈕調(diào)用其他成員的功能模塊。主界面主要由主界面主要由兩個面版,五個按鈕,一個文本框,一個文本區(qū),一個標簽和一個菜單欄組成。在文本框中輸入要查詢的數(shù)據(jù)。文本區(qū)中顯示查詢的結(jié)果。</p><p> 主要方法包括:DataWindow()為構(gòu)造方法,創(chuàng)建用戶添加詞匯界面;與actionPerformed()為接口方法,處理ActionEvent事件。下面是主界面程
61、序部分源代碼:</p><p> this.setBounds(250,250,600,400);//設(shè)置面板大小</p><p> this.setVisible(true); //設(shè)置面板可見</p><p> getContentPane().add(new JScrollPane(chinesetext));</p><p>
62、 mbar = new JMenuBar();</p><p> setJMenuBar(mbar);</p><p> mbar.setOpaque(true);</p><p> mfile = new JMenu("文件");</p><p> medit = new JMenu("編輯"
63、);</p><p> mhelp = new JMenu("幫助");</p><p> mbar.add(mfile);mbar.add(medit);mbar.add(mhelp);</p><p> edic = new JMenuItem("英漢詞典");</p><p> cdic
64、= new JMenuItem("漢英詞典");</p><p> back_data = new JMenuItem("備份詞庫");</p><p> quit = new JMenuItem(" 退出");//文件菜單</p><p> addedit = new JMenuItem(&quo
65、t;添加詞匯");</p><p> modedit = new JMenuItem("修改詞匯");</p><p> deledit = new JMenuItem("刪除詞匯");//編輯菜單</p><p> hhelp = new JMenuItem("幫助");</p>
66、;<p> about = new JMenuItem("關(guān)于...");//幫助菜單</p><p><b> 圖 6.1 主界面</b></p><p> 6.4.2 英譯漢功能實現(xiàn)</p><p> 此功能模塊主要是針對已經(jīng)存在于單詞庫中的單詞,通過編輯菜單中的英漢詞典功能,在主界面的文本框中輸入
67、要查詢的單詞,單擊查詢按鈕進行查詢。結(jié)果顯示在主界面的文本區(qū)中。</p><p><b> 下面是部分源代碼:</b></p><p> else if(e.getSource()==edic) //英漢</p><p><b> {</b></p><p> label.setText(&
68、quot;輸入要查詢的英語單詞:");</p><p> b1.setVisible(true);</p><p> b5.setVisible(true);</p><p><b> }</b></p><p><b> 圖 6.2 查詢圖</b></p>&l
69、t;p> 6.4.3 漢譯英功能及詞庫備份實現(xiàn)</p><p> else if(e.getSource()==cdic) //漢英</p><p><b> {</b></p><p> label.setText("輸入要查詢的漢語意思:");</p><p> b1.setVis
70、ible(true);</p><p> b5.setVisible(true);</p><p><b> }</b></p><p> else if(e.getSource()==back_data) //備份</p><p><b> {</b></p><p&g
71、t; File fromfile = new File("english\\english.mdb");</p><p> FileInputStream fis = null;</p><p> filedialog_save.setVisible(true);</p><p><b> try{</b><
72、;/p><p> fis = new FileInputStream(fromfile);</p><p> int bytesRead; //定義變量來存儲輸入流中讀取出來的文件</p><p> byte[] buf = new byte[4*1024]; //4K buffer</p><p> File tofile = ne
73、w File(filedialog_save.getDirectory(),filedialog_save.getFile());</p><p> FileOutputStream fos = new FileOutputStream(tofile);</p><p> while((bytesRead = fis.read(buf))!=-1)</p><p&g
74、t;<b> {</b></p><p> fos.write(buf,0,bytesRead);</p><p><b> }</b></p><p> fos.flush();</p><p> fos.close();</p><p> fis.close(
75、);</p><p><b> }</b></p><p> catch(IOException e2){ }</p><p><b> }</b></p><p><b> 圖 6.3查詢圖</b></p><p> 6.4.4 查詢類的實
76、現(xiàn)及數(shù)據(jù)庫綁定</p><p> public void Listwords() throws SQLException //實現(xiàn)查詢功能</p><p><b> {</b></p><p> String cname,ename;</p><p><b> try{</b></p
77、><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//數(shù)據(jù)庫的連接</p><p><b> }</b></p><p> catch(ClassNotFoundException e){}</p><p><b> //建立橋接器&
78、lt;/b></p><p> Connection Ex1Con = DriverManager.getConnection("jdbc:odbc:fanyi");</p><p> Statement Ex1Stmt = Ex1Con.createStatement();</p><p> if(label.getText().e
79、quals("輸入要查詢的英語單詞:"))</p><p><b> {</b></p><p> ResultSet rs = Ex1Stmt.executeQuery("SELECT * FROM 表1");</p><p> while( rs.next())</p><p
80、><b> {</b></p><p> ename = rs.getString("單詞");</p><p> cname = rs.getString("解釋");</p><p> if(ename.equals(englishtext.getText()))</p>
81、<p><b> {</b></p><p> chinesetext.append(cname+'\n');</p><p><b> }</b></p><p><b> }</b></p><p> Ex1Con.close(); /
82、/關(guān)閉數(shù)據(jù)庫</p><p> 6.4.5 添加類的實現(xiàn)及數(shù)據(jù)庫綁定</p><p> public void 添加() throws SQLException //實現(xiàn)添加功能</p><p><b> {</b></p><p> String cname, ename;</p><p&g
83、t;<b> try {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p><b> }</b></p><p> catch (ClassNotFoundException e) {</p>&
84、lt;p><b> }</b></p><p> Con = DriverManager.getConnection("jdbc:odbc:fanyi");</p><p> Stmt = Con.createStatement();</p><p> ResultSet rs = Stmt.executeQu
85、ery("SELECT * FROM 表1");</p><p> boolean boo = false;</p><p> while ((boo = rs.next()) == true) {</p><p> ename = rs.getString("單詞");</p><p> cn
86、ame = rs.getString("解釋");</p><p> if (ename.equals(添加英語單詞_文本條.getText())) {</p><p> JOptionPane.showMessageDialog(this, "此詞匯已存在!", "警告",</p><p> JOp
87、tionPane.WARNING_MESSAGE);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
88、> 圖 6.4單詞添加運行圖</p><p> 6.4.6 修改類的實現(xiàn)及數(shù)據(jù)庫綁定</p><p> Connection Con = null;//連接對象</p><p> Statement Stmt = null;</p><p> ModifyWin() {</p><p> super(
89、"修改");</p><p> this.setBounds(250, 250, 250, 200);</p><p> this.setVisible(true);</p><p> JPanel p = new JPanel();</p><p> p.add(new Label("輸入英語單詞:&q
90、uot;));</p><p> 修改英語單詞_文本條 = new JTextField(20);</p><p> p.add(修改英語單詞_文本條);</p><p> p.add(new Label("輸入該單詞修改的漢語解釋:"));</p><p> 修改漢語解釋_文本條 = new JTextField
91、(20);</p><p> p.add(修改漢語解釋_文本條);</p><p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == modifybtn) {</p><p> if (修改英語單詞_文本條.getText().equ
92、als("") ||</p><p> 修改漢語解釋_文本條.getText().equals(""))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this, "修改的單詞或解釋不能為空!", "
93、警告",JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p> public void 修改() throws SQLException //實現(xiàn)修改功能</p><p><b> {</b></p><p> Strin
94、g cname, ename;</p><p><b> try {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p><b> }</b></p><p> catch (ClassN
95、otFoundException e) {</p><p><b> }</b></p><p> Con = DriverManager.getConnection("jdbc:odbc:fanyi");</p><p> Stmt = Con.createStatement();</p><p&
96、gt; ResultSet rs = Stmt.executeQuery("SELECT * FROM 表1");</p><p><b> }</b></p><p> Con.close();</p><p> if (boo == false) {</p><p> JOptionPa
97、ne.showMessageDialog(this, "不存在此單詞!", "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p><b> }</b></p><p&g
98、t;<b> }</b></p><p> 圖 6.5 修改詞匯圖</p><p> 6.4.7 刪除類的實現(xiàn)及數(shù)據(jù)庫綁定</p><p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == delbtn) {&
99、lt;/p><p> if (刪除單詞_文本條.getText().equals("")) {</p><p> JOptionPane.showMessageDialog(this, "刪除的單詞不能為空!", "警告",</p><p> JOptionPane.WARNING_MESSAGE);&l
100、t;/p><p><b> }</b></p><p> public void 刪除() throws SQLException //實現(xiàn)刪除功能</p><p><b> {</b></p><p> String cname, ename;</p><p><
101、b> try {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p><b> }</b></p><p> catch (ClassNotFoundException e) {</p><p&g
102、t;<b> }</b></p><p> Con = DriverManager.getConnection("jdbc:odbc:fanyi");</p><p> Stmt = Con.createStatement();</p><p> ResultSet rs = Stmt.executeQuery(&q
103、uot;SELECT * FROM 表1");</p><p> boolean boo = false;</p><p> while ((boo = rs.next()) == true) {</p><p> ename = rs.getString("單詞");</p><p> cname =
104、rs.getString("解釋");</p><p> if (ename.equals(刪除單詞_文本條.getText())) {</p><p> String s1 = "'" + 刪除單詞_文本條.getText().trim() + "'";</p><p> Strin
105、g temp = "DELETE FROM 表1 WHERE 單詞=" + s1;</p><p> Stmt.executeUpdate(temp);</p><p> JOptionPane.showMessageDialog(this, "成功刪除記錄!", "恭喜",</p><p> JOp
106、tionPane.WARNING_MESSAGE);</p><p> dispose();</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> Con.
107、close();</p><p> if (boo == false) {</p><p> JOptionPane.showMessageDialog(this, "不存在此單詞!", "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p>&l
108、t;b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> 圖 6.6 刪除詞匯圖</p><p> 第 七 章 Socket編程</p><p> 7.1 Socket編程</p&
109、gt;<p> socket是“open—write/read—close”模式的一種實現(xiàn),那么socket就提供了這些操作對應的函數(shù)接口。程連接該客戶端是記錄線程ID和socket套接字,將這兩個數(shù)據(jù)保存到map容器里,當客戶端退出時刪除map容器里該客戶端數(shù)據(jù),遍歷map容器就知道連接了多少客戶端,通過訪問服務器的線程從而實現(xiàn)聯(lián)網(wǎng)查詢。</p><p> 7.2 Socket的實現(xiàn)</
110、p><p> Service(服務器):</p><p><b> try{</b></p><p> ServerSocket server=null;</p><p><b> try{</b></p><p> server=new ServerSocket(47
111、00);// 創(chuàng)建一個ServerSocket在端口4700監(jiān)聽客戶請求</p><p><b> }</b></p><p> catch(Exception e) {</p><p> System.out.println("can not listen to:"+e);</p><p>&
112、lt;b> }</b></p><p> Socket socket=null;</p><p><b> try{</b></p><p> socket=server.accept();</p><p> // 使用accept()阻塞等待客戶請求,有客戶</p><p
113、> // 請求到來則產(chǎn)生一個Socket對象,并繼續(xù)執(zhí)行</p><p> }catch(Exception e) </p><p><b> {</b></p><p> System.out.println("Error."+e);</p><p><b> }</
114、b></p><p> String line;</p><p> BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));</p><p> // 由Socket對象得到輸入流,并構(gòu)造相應的BufferedReader對象</p>
115、;<p> PrintWriter os=new PrintWriter(socket.getOutputStream());</p><p> // 由Socket對象得到輸出流,并構(gòu)造PrintWriter對象</p><p> BufferedReader sin=new BufferedReader(new InputStreamReader(System.in
116、));</p><p> // 由系統(tǒng)標準輸入設(shè)備構(gòu)造BufferedReader對象</p><p> System.out.println("Client:"+is.readLine());</p><p> // 在標準輸出上打印從客戶端讀入的字符串</p><p> line=sin.readLine();
117、</p><p> // 從標準輸入讀入一字符串</p><p> while(!line.equals("bye")){</p><p> // 如果該字符串為 "bye",則停止循環(huán)</p><p> os.println(line);</p><p> // 向客
118、戶端輸出該字符串</p><p> os.flush();</p><p> // 刷新輸出流,使Client馬上收到該字符串</p><p> System.out.println("Server:"+line);</p><p> // 在系統(tǒng)標準輸出上打印讀入的字符串</p><p>
119、 System.out.println("Client:"+is.readLine());</p><p> // 從Client讀入一字符串,并打印到標準輸出上</p><p> line=sin.readLine();</p><p> // 從系統(tǒng)標準輸入讀入一字符串</p><p><b> }
120、</b></p><p><b> // 繼續(xù)循環(huán)</b></p><p> os.close(); // 關(guān)閉Socket輸出流</p><p> is.close(); // 關(guān)閉Socket輸入流</p><p> socket.close(); // 關(guān)閉Socket</p>&
121、lt;p> server.close(); // 關(guān)閉ServerSocket</p><p> }catch(Exception e){</p><p> System.out.println("Error:"+e);</p><p><b> }</b></p><p> Clie
122、nt(客戶端):</p><p><b> try{</b></p><p> Socket socket=new Socket("127.0.0.1",4700);// 向本機的4700端口發(fā)出客戶請求</p><p> BufferedReader sin=new BufferedReader(new InputS
123、treamReader(System.in));// 由系統(tǒng)標準輸入設(shè)備構(gòu)造BufferedReader對象</p><p> PrintWriter os=new PrintWriter(socket.getOutputStream());// 由Socket對象得到輸出流,并構(gòu)造PrintWriter對象</p><p> BufferedReader is=new Buffere
124、dReader(new InputStreamReader(socket.getInputStream()));// 由Socket對象得到輸入流,并構(gòu)造相應的BufferedReader對象</p><p> String readline;</p><p> readline=sin.readLine(); // 從系統(tǒng)標準輸入讀入一字符串</p><p>
125、 while(!readline.equals("bye")){// 若從標準輸入讀入的字符串為"bye"則停止循環(huán)os.println(readline);//將從系統(tǒng)標準輸入讀入的字符串輸出到Serveros.flush();</p><p> // 刷新輸出流,使Server馬上收到該字符串System.out.println("Client:"
126、;+readline);</p><p> // 在系統(tǒng)標準輸出上打印讀入的字符串</p><p> System.out.println("Server:"+is.readLine());// 從Server讀入一字符串,并打印到標準輸出上</p><p> readline=sin.readLine(); // 從系統(tǒng)標準輸入讀入一字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計----基于vb英漢互譯系統(tǒng)
- 畢業(yè)論文設(shè)計java網(wǎng)上考試系統(tǒng)
- java論壇管理系統(tǒng)——畢業(yè)論文
- java畢業(yè)論文--倉庫管理系統(tǒng)
- java信息系統(tǒng)畢業(yè)論文
- java酒店管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——java
- java畢業(yè)論文
- java實現(xiàn)圖書管理系統(tǒng)畢業(yè)論文設(shè)計
- 畢業(yè)論文-java學生管理系統(tǒng)設(shè)計與實現(xiàn)
- 畢業(yè)論文-基于java聊天系統(tǒng)設(shè)計與實現(xiàn)
- java課程案例設(shè)計【畢業(yè)論文】
- java程序設(shè)計畢業(yè)論文
- 超市收銀管理系統(tǒng)的設(shè)計畢業(yè)設(shè)計畢業(yè)論文java
- 網(wǎng)上花店系統(tǒng)java---畢業(yè)論文
- java資格認證測評系統(tǒng)【畢業(yè)論文】
- 畢業(yè)論文---基于java新聞發(fā)布系統(tǒng)
- 畢業(yè)設(shè)計(論文)+手機游戲開發(fā)-java畢業(yè)論文
- 畢業(yè)論文---基于java的在線考試系統(tǒng)的設(shè)計
- 英漢互譯練習
評論
0/150
提交評論