(精選)計算機專業(yè)畢業(yè)設計論文Word版_第1頁
(精選)計算機專業(yè)畢業(yè)設計論文Word版_第2頁
(精選)計算機專業(yè)畢業(yè)設計論文Word版_第3頁
(精選)計算機專業(yè)畢業(yè)設計論文Word版_第4頁
(精選)計算機專業(yè)畢業(yè)設計論文Word版_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄第一章緒論11.1 系統(tǒng)開發(fā)的背景11.2 軟件開發(fā)的策略11.3 軟件的開發(fā)方法31.4 系統(tǒng)開發(fā)環(huán)境的選取4第二章系統(tǒng)規(guī)劃72.1 軟件開發(fā)中的主要問題72.2 軟件開發(fā)目標7第三章 系統(tǒng)分析83.1 系統(tǒng)的初步調查83.2 系統(tǒng)的可行性分析83.3 對現(xiàn)存軟件的研究93.4 新系統(tǒng)邏輯方案的提出9第四章系統(tǒng)設計124.1 目的與任務124.2 系統(tǒng)的總體結構設計124.3 系統(tǒng)的物理結構設計134.4 系統(tǒng)運行的軟硬件環(huán)境144.5數(shù)據庫設計144.6用戶界面設計17第五章系統(tǒng)實現(xiàn)195.1 與數(shù)據庫的連接195.2 線程的設計215.3具體的功能實現(xiàn)225.4 系統(tǒng)測試34第六章系

2、統(tǒng)運行與維護366.1 系統(tǒng)的運行366.2 系統(tǒng)的維護36第七章結 論377.1本軟件的特點377.2本軟件的缺點37結 束 語38致 謝39參考文獻40第一章緒論1.1 系統(tǒng)開發(fā)的背景在科技日益發(fā)達的今天,社會對每個身處其中的分子要求越來越高,懂得一門外語只是基本的要求。而學習外語也要講究一定的方法,一些輔助的工具也是必不可少的?;仡欉^去背單詞的方式,大家都是對著一本厚厚的字典,用筆在紙上反來復去的寫,力求用次數(shù)來達到記憶的目的??蛇@種方式太浪費時間,一些單詞被背了又背,一些單詞卻未被問津,自己都不知道哪些是已經記下來的,哪些是還不會的。把時間都白白的浪費掉了,真是得不償失,因此,改變這種

3、方式勢在必行!使用計算機編寫的背單詞工具就改變了這種狀況,使背單詞也變得“輕松”起來。面對當前市場上背單詞工具質量的良莠不齊,因而提出了設計一個新的,功能更實用,操作更方便,界面更友好的英語背單詞工具“攻破單詞”。通過對此工具的使用,可以節(jié)省很多時間,提高記憶效率,加強學習上的靈活性,使記憶、測試和查單詞等各方面都很方便、輕松、快捷,相信它更能滿足學習英語的學習者的需要,提高學習的進程,增加學習的興趣。1.2 軟件開發(fā)的策略將程序看作是按照順序執(zhí)行的一系統(tǒng)指令,這通常稱為過程編程。過程化程序設計的典型特征是:程序中的數(shù)據對于所有過程都是可見的,因此也很容易造成混亂;過程與數(shù)據之間的關系是獨立的

4、,數(shù)據并沒有要求一定要用那些方法來處理,原則上任何過程都可以對數(shù)據進行操作。在面向過程的程序設計方法中,首先考慮的是程序的功能,即程序要解決的問題,通過將功能逐步細化,直到每一個小的功能模塊都能夠用函數(shù)或過程來實現(xiàn)。然后設計數(shù)據結構,編寫功能模塊(過程),最后將它們組合成一個復雜的程序。換句話說,面向過程的程序設計采用的是“算法+數(shù)據結構=程序設計”的思想,即首先考慮解決問題的算法,然后再設計適合的數(shù)據結構使得算法得以有效的實現(xiàn)。面向過程的程序設計方法對于小型程序來說是適合的,但是用它來開發(fā)大規(guī)模的、可重用的應用就顯得力不從心了。與過程編程相對的是面向對象的編程。面向對象編程(OOP)從另外角

5、度看待計算機程序,它將重點放在使用計算機所完成的任務上,而不是在計算機處理任務的方式上。在面向對象編程中,計算機程序概念化為一組對象,它們一起工作以完成一項任務。每個對象是程序的單獨一部分,以特定的嚴格控制的方式與其他部分互相交流。面向對象編程超越程序復雜,用客觀世界的對象模型自然地表示軟件開發(fā),用對象代表需要解決的問題的中心環(huán)節(jié),而不是以函數(shù)過程、數(shù)據結構為中心,從而使計算機程序的分析、設計和實現(xiàn)的過程和方法改變了過去的脫節(jié)和跳躍的狀態(tài),這就使人們對復雜系統(tǒng)的認識過程與系統(tǒng)的程序設計過程簡單化,并使兩者容易達到一致。面向對象編程具備了幾個優(yōu)點,比如:代碼維護方便、可擴展性好、支持代碼重用技術

6、等。這些優(yōu)點是過程編程語言所不具備的??梢允褂谩皩ο?消息=程序設計”來表示面向對象的理論。圖1-1、1-2為面向過程的程序設計與面向對象程序設計的圖示,在其中可以直觀地看到二者的區(qū)別。函數(shù)函數(shù)過程過程數(shù)據1-1面向過程的程序設計數(shù)據方法方法數(shù)據對象方法方法方法對象數(shù)據方法方法方法方法對象1-2 面向對象的程序設計本軟件的開發(fā)就使用面向對象的方法。1.3 軟件的開發(fā)方法面向對象的方法經由系統(tǒng)分析、設計和試驗等階段,遵從軟件生命周期的規(guī)律。所謂軟件的生命周期是指一個軟件從它的發(fā)生到其消亡的過程。以下是利用生命周期法開發(fā)軟件的各個階段的具體內容:(1)系統(tǒng)規(guī)劃階段:其主要任務是明確軟件開發(fā)的請求,

7、并進行初步的調查,通過可行性研究確定下一階段的實施??尚行苑治龅娜蝿帐谴_定項目開發(fā)是否必要和可行。也就是要對問題定義階段中所提出的問題進行分析,以決定所提出的問題是否有“可行”的解。所謂可行,首先在技術上要可行,即現(xiàn)有技術能否解決所提出的問題;其次是經濟上可行,即用戶能否支付實施項目所需要的費用,項目建成后能否取得預期的經濟效益;最后進行操作上和法律上的可行性研究。綜合這些方面的論證,最終決定是否實施該項目。當然,這項工作就是建立在初步調查的基礎上。(2)用戶需求分析階段:在這個階段中,就是了解用戶的需求,準確的確定用戶需要的功能,明確為了實現(xiàn)這些功能,需要哪些處理,需要處理什么數(shù)據;需要存儲

8、哪些數(shù)據文件;得到哪些信息;輸入輸出數(shù)據的格式以及有關處理的具體算法等。此外需要找出為了實現(xiàn)既定功能所需要的約束條件,典型的約束為成本約束和時間約束。另一個重要任務是要規(guī)定系統(tǒng)的生效準則,規(guī)定在目標系統(tǒng)建成后驗收目標系統(tǒng)的一些原則以及具體的驗收方法等。具體工作包括: 詳細調查其具體的調查內容包括:清楚當前市面上現(xiàn)存的背單詞工具所具備的功能和實現(xiàn)方法,了解使用者在使用過程中存在的問題和希望使用的功能。 提出新系統(tǒng)的邏輯設計系統(tǒng)分析結束時,應完成系統(tǒng)分析報告,交上級審批系統(tǒng)分析報告是系統(tǒng)設計的依據,是與用戶交流的工具,是應用軟件的重要組成部分。其內容包括:原系統(tǒng)分析部分、新系統(tǒng)邏輯模型、新系統(tǒng)信息

9、量的估計。(3)系統(tǒng)設計階段:其任務是在系統(tǒng)分析的基礎上,按照邏輯模型的要求,科學合理地進行系統(tǒng)的總體設計和具體的物理設計,為下一階段的系統(tǒng)實施提供必要的技術資料。具體分為:總體設計階段和詳細設計階段。 總體設計階段:這個階段中的主要任務是得到一個能夠實現(xiàn)用戶需求的理想的系統(tǒng)結構。所謂理想的結構指的是:能夠實現(xiàn)需求階段中規(guī)定的功能;系統(tǒng)容易設計和實現(xiàn);系統(tǒng)易于維護。設計內容包括劃分子系統(tǒng)、設計規(guī)范制定、數(shù)據流程圖設計、功能結構圖設計、系統(tǒng)物理配置方案設計。 詳細設計階段:在這個階段中的任務是進行系統(tǒng)所需要的數(shù)據結構設計和數(shù)據庫的物理設計。輸入輸出設計、編寫程序模塊設計說明書。系統(tǒng)設計工作結束后

10、,要提交系統(tǒng)設計報告。若系統(tǒng)設計被審查批準,整個系統(tǒng)開發(fā)工作便進入系統(tǒng)實施階段。(4)系統(tǒng)實施階段:這是軟件系統(tǒng)的實現(xiàn)階段,要進行模塊編碼和模塊測試。模塊測試又稱為單元測試。模塊編碼要嚴格按詳細設計階段開發(fā)的模塊邏輯進行。模塊程序設計完成之后,應經過嚴格的測試。程序測試應該采用科學的方法。主要是黑盒法和白盒法進行測試,從而盡可能多地發(fā)現(xiàn)模塊中錯誤,并加以改正。把經過徹底測試的模塊組裝起來形成需要的應用系統(tǒng)。再進行集成測試,采用的是黑盒測試方法,集成的方法可采用自頂向下集成或自底向上集成,或者二者結合的方法。(5)維護階段:主要包括改正性維護、適應性維護和完善性維護:改正性維護是改正程序中所遺漏

11、的錯誤,保證用戶程序能正常運行;完善性維護是增加程序的功能以滿足用戶的進一步需求;適應性維護是當用戶改變硬件或軟件支持環(huán)境時,滿足程序需要的修改工作。維護階段是一個非常重要的階段,維護工作的好壞直接影響到用戶的滿意程度6。1.4 系統(tǒng)開發(fā)環(huán)境的選取根據軟件所要完成的功能和結合當前情況,我選擇了Java語言。Java語言誕生于1991年,是由SUN MicroSystem公司的Jame Gosling,Bill Joe等人為在電視、控制烤面包箱等家用電子產品上進行交互式操作而開發(fā)的一個名為Oak的軟件,1995年下半年正式以Java這個名字推出,并引起轟動2。Java語言是一種完全的面向對象的編

12、程語言。在Java語言中,對象是表現(xiàn)事物,消息傳遞是事物間的相互關系,類和繼承分別是相似行為對象的抽象和類之間的關系,方法是允許作用于類對象上的各種操作。面向對象程序設計有三個基本的特征:封裝(Encapsulation)、繼承(Inheritance)與多態(tài)(Polymorphism)2。所謂封裝,就是用一個自主式框架把對象的數(shù)據和方法連在一起形成一個整體??梢哉f,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為 Java無全程變量,無主方法,在Java中絕大部分成員是對象,只有簡單的數(shù)字類型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應的對象類型以便與

13、其他對象交互操作。多態(tài)性就是多種表現(xiàn)形式,具體來說,可以用一個對外接口,多個內在實現(xiàn)“方法”表示。繼承是指一個對象直接使用另一對象的屬性和方法。Java提供給用戶一系列類(class),Java的類有層次結構,子類可以繼承超類的屬性和方法。與另外一些面向對象編程語言不同,Java只支持單一繼承。作為一種計算機語言,Java相當?shù)膬?yōu)秀,最為顯著的優(yōu)點是它與平臺無關,同樣的代碼可以不用改動就可以在各種軟硬件平臺上運行。這種平臺無關性對于開發(fā)Internet應用程序來說是非常重要的。Java有以下基本特點:簡單性:“我們用Java來設計應用系統(tǒng)時,程序員不需要非常專業(yè)的訓練,并且這種語言應該和當前所

14、流行的技術一致,因此,雖然我們發(fā)現(xiàn)C+并不是這樣的語言,但Java還是被設計成為盡可能和C+類似。只有這樣Java才易于理解。我們將C+中那些很少使用、難于理解以及令人迷惑的東西去掉形成Java,這些被去掉的C+特性在我們看來,帶來的好處遠不如它們可能造成的痛苦。”Java語言白皮書面向對象:Java語言是一種完全的面向對象的編程語言。分布式:分布式包括數(shù)據分布和操作分布。數(shù)據分布是指數(shù)據可以分散在網絡的不同主機上,操作分布是指把一個計算分散在不同主機上處理。強健性:Java最初設計目的是應用于電子類消費產品,因此要求較高的可靠性。Java雖然源于C+,但它消除了許多C+的不可靠因素,可以防止

15、許多編程錯誤。安全性:一種編程語言,尤其是網絡編程語言,與跨平臺性隨之而來的還有另一大特性:安全性。在網絡上,如果網絡語言不十分可靠,極有可能被人有意或無意地造成惡果。為防止利用Java程序攻擊其他人的系統(tǒng),Java主要的編譯和運行時系統(tǒng)中采取了防護措施,為Java代碼筑起了兩道堅實的防護屏障??缙脚_:所謂跨平臺,就是指應用程序與計算機系統(tǒng)硬件結構的無關性,更直觀的說就是用Java編寫的應用程序不和修改就可在不同的軟硬件平臺同樣的運行??梢浦残裕和w系結構無關的特性使得Java應用程序可以在配備了Java解釋器和運行環(huán)境的任何計算機系統(tǒng)上運行,這成為Java應用軟件便于移植的良好基礎。解釋方式

16、執(zhí)行:Java字節(jié)碼可以在任何裝有Java解釋器的機器上直接執(zhí)行。高效率:“雖然字節(jié)碼的運行效率通常已經能夠滿足應用要求,但還有一些要求很高運行效率的場合,在這些情況下,字節(jié)碼可以即時地被翻譯為特定宿主機的機器碼?!盝ava語言白皮書多線程:Java語言的多線程機制使應用程序能夠并發(fā)執(zhí)行,而且,它的同步機制保證了對共享數(shù)據的正確操作,動態(tài)可擴充性:Java的設計使它適合于一個不斷發(fā)展的環(huán)境。在類庫中可以自由地加入新的方法和實例變量而不會影響應用程序的執(zhí)行。并且Java通過接口來支持多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。Java的眾多優(yōu)點,使我對它產生了濃厚的興趣,讓我覺得不去學

17、習它是不行的。也許編寫工具軟件并不能完全體現(xiàn)Java語言的優(yōu)勢,但我想通過此次實踐走進Java?!肮び破涫拢叵壤淦鳌?,使用合適的工具是提高軟件開發(fā)效率的重要途徑。Java的開發(fā)工具分成三大類,分別為:文本編輯器、Web開發(fā)工具和集成開發(fā)工具8。我采用的是美國Borland公司推出的可視化集成開發(fā)工具JBuilder ,以及文本編輯工具UltraEdit。Jbuilder是目前使用最廣泛的Java開發(fā)工具之一,支持開發(fā)人員構建標準的Java應用系統(tǒng)。其開放的環(huán)境、豐富的Java開發(fā)向導和基于組件的開發(fā)方式,極大地簡化了開發(fā)人員的工作,使得開發(fā)更為快捷和簡便,加快了項目的進度。數(shù)據庫方面采用

18、Microsoft Access, Access功能足夠強大,足以應付一般的數(shù)據管理及處理需要,而且它易于掌握。采用Windows200中文版作為開發(fā)、測試和運行的平臺。硬件選擇Intel Pentium,256內存,40G硬盤等。第二章系統(tǒng)規(guī)劃2.1 軟件開發(fā)中的主要問題凡事預則立,不預則廢??茖W的規(guī)劃對于任何需要經過較長時間努力才能實現(xiàn)的事情都是非常重要的。規(guī)劃,一般是指對較長時期的活動進行總體的、全面的計劃。作為一個背單詞的工具,是一名英語學習者學習的助手。而無論是誰,習慣一旦養(yǎng)成就不容易改變使用背單詞工具也是一樣,選擇好了,在之后很長一段時間之內也不會更換。所以說如何使使用者能使用的方

19、便、舒服,并且真正實現(xiàn)“助手”的含義就是重中之重??紤]到學習者的水平不同,要求掌握的單詞級別也就不同,所以就要有詞庫選擇的功能;考慮到避免重復練習的問題,所以就要有改變單詞出現(xiàn)次序和記錄不同用戶的測試進度的功能;考慮到要有反饋練習成效的問題,所以就要有測試的功能;考慮到要有單詞查找的問題,所以就要有字典的功能;考慮到不可能將所有單詞都收錄到庫中,所以就要有詞庫維護的功能,另外還需要加設一些聽力方面的輔助功能。在現(xiàn)存的一些背單詞軟件中,往往對以上問題考慮的或多或少有一些欠缺,其中一個主要原因就是人們更多地關心軟件的經濟效益,用很多花俏的東西代替了切實有用的功能,而對于使用者的需求又了解過少,對于

20、軟件的具體方案考慮較少,對總體方案與發(fā)展戰(zhàn)略問題不夠重視??傊浖_發(fā)中,往往缺乏科學的、有效的系統(tǒng)規(guī)劃。2.2 軟件開發(fā)目標力求實現(xiàn)一個小巧精悍的綠色英語單詞輔助記憶軟件。擁有一定的信息量,軟件功能具有人性化,可以設定單詞瀏覽速度的自動瀏覽,又可手動瀏覽;按照正序/逆序/隨機/默認瀏覽記憶;隨時查找單詞和進行測試;能夠播放聽力文件;可以進行詞庫維護,使其成為您背誦英語單詞的“利器”。世界上有許多難事,但是沒有完成不了的難事,背單詞就是其中的一種,只要努力,人定勝天,人生終將輝煌!第三章 系統(tǒng)分析3.1 系統(tǒng)的初步調查系統(tǒng)的初步調查是系統(tǒng)分析階段的第一項活動,初步調查階段的主要目標是從分析人

21、員的角度看新項目開發(fā)有無必要和可能。初步調查的內容包括兩方面:調查內容和分析內容。前者包括調查有關工作的信息,包括主要輸入、主要輸出、主要處理功能;后者主要分析現(xiàn)有什么,需要什么、在現(xiàn)有資源下能提供什么、此項目有無必要和可能進一步的調查與開發(fā)。本軟件開發(fā)的初步調查采用的主要方式是與英語學習者(包括使用和未使用過背單詞工具的)進行交流,把握第一手資料。經過初步調查了解到,現(xiàn)在很多學習者還停留在“字典紙筆”的古老背單詞方式上,用書寫次數(shù)來達到記住的目的,這種方式不但花的功夫多,而且收效還不好,可以說是事倍功半。而那些現(xiàn)在正在使用計算機背單詞的學習者,從不同方面反映了他們在使用背單詞工具中所存在的問

22、題,總覺得在不同程度上不夠理想?,F(xiàn)存背單詞軟件的主要問題包括:有些設計的過于繁瑣,難于操作,并不實用或是使用起來不夠靈活;有些則又過于簡單,不能滿足使用者的需求,比如說單詞從頭到尾,順序固定,即不能變換次序又不能分級別記憶,反來復去總是記開頭那么幾個;測試功能不夠健全,無法真正檢測使用者的學習情況等等。所以說,各方面的人,都需要一個切實好用的英語背單詞工具,提高英語學習效率。3.2 系統(tǒng)的可行性分析 可行性研究是以相對短的時間和相對低的成本來確定給定的問題是否有解。這里相對短和相對低是指和實現(xiàn)建議系統(tǒng)所需時間和成本相比較而言??尚行匝芯恐饕獜南率?個方面進行研究:技術可行性、經濟可行性、操作可

23、行性和調度可行性5。(1) 技術可行性:技術可行性的考慮集中在現(xiàn)存的計算機硬件能否支持被研究的系統(tǒng),首先關心的是該組織是否有相應的軟件和硬件能夠支持處理建議的應用程序。其次考慮在規(guī)定平臺之上,利用現(xiàn)有的成熟技術是否能夠實現(xiàn)這個應用?,F(xiàn)代計算機硬、軟件技術的飛速發(fā)展,為系統(tǒng)建設提供了技術條件。計算機等基礎設施的更新?lián)Q代也緊跟潮流的發(fā)展,這就為開發(fā)系統(tǒng)提供了堅實基礎。(2) 經濟可行性:這是經典的并且是最常使用的評價計算機系統(tǒng)的方法。這個評價的結果稱為成本效益分析。簡單地說,經濟可行性研究是確定得自新系統(tǒng)的節(jié)省和利益,將這些利益和系統(tǒng)的實現(xiàn)成本相比較,如果利益超過成本,則開發(fā)新系統(tǒng)的決策是肯定的;

24、否則的話,除非有其他特殊原因,這個決策將是否定的。本軟件的實現(xiàn)是作為考核學生學習情況的手段,不存在經濟可行性的問題。(3) 操作可行性:是指人員的手工操作而不是指計算機系統(tǒng)操作是否可行,也就是說在實現(xiàn)了建議的計算機系統(tǒng)后,所需要的配合的手工操作是否可行。作為新時代的學生,幾乎人人都具備計算機的基本操作能力,而本軟件的使用又十分簡單方便,所以具備操作可行性。(4) 調度可行性:指的是建議的計算機系統(tǒng)能否在規(guī)定的期限內交付給用戶?;诒拒浖?,經過上述的分析,可以在規(guī)定的期限內完成。除了上面討論的4個方面的可行性論證,有些產品的開發(fā)可能會涉及現(xiàn)存法律方面的問題,即需要進行法律可行性論證。從當前情況來

25、看,本軟件的開發(fā)是可行的。3.3 對現(xiàn)存軟件的研究對現(xiàn)存軟件進行詳細研究是了解系統(tǒng)需求和進行系統(tǒng)分析與設計的重要基礎工作,因此要進行全面、細致而充分的研究。通過研究,發(fā)現(xiàn)現(xiàn)存背單詞工具各自存在以上一點或幾點問題:(1) 單詞一起存放,不能根據不同層次的用戶選擇詞庫;(2) 單詞練習方式單一;(3) 沒有單詞測試功能,或測試功能不全面;(4) 沒有記錄用戶個人信息的功能;(5) 沒有單詞查詢的功能;(6) 無法向庫中添加單詞;通過分析,可以看出這些問題,都是需要進行改進的。3.4 新系統(tǒng)邏輯方案的提出建議的計算機系統(tǒng)是基于現(xiàn)存軟件之上建立的,這應該是現(xiàn)行系統(tǒng)的完善與提高。用戶所提供的信息往往是現(xiàn)

26、行系統(tǒng)的缺陷,而不是整個系統(tǒng)的功能與行為。在問題定義階段對建議的功能、規(guī)模和約束條件等已經作了規(guī)定。在可行性研究階段通過和使用者的交流,對用戶的需求有了初步的了解。因此在這個階段中,設計者應該進一步澄清問題定義中的模糊部分,更正錯誤部分。通過這個活動,清楚地描述新系統(tǒng)的主要功能,主要的數(shù)據輸出與輸入數(shù)據的來源,以及所需要的特殊處理。本軟件的邏輯模型主要是以數(shù)據流程圖為主要描述工具。(1)數(shù)據流程圖 (簡稱為DFD)數(shù)據流程圖是在對系統(tǒng)調研階段繪制的業(yè)務流程圖進行分析的基礎上,從系統(tǒng)的科學性、管理的合理性、實際運行的可行性角度出發(fā),將信息處理功能和彼此之間的聯(lián)系自頂向下、逐層分解,從邏輯上精確地

27、描述新系統(tǒng)應具有地數(shù)據加工功能、數(shù)據輸入、數(shù)據輸出、數(shù)據存儲及數(shù)據來源和去向。數(shù)據流圖是組織中信息運動的抽象,是邏輯模型的主要形式5。數(shù)據流程圖的圖例如下:數(shù)據的源點或終點 數(shù)據處理數(shù)據存儲 數(shù)據流“攻破單詞” 數(shù)據流程圖如圖3-1所示。 7. 0添 加4. 0測 試5. 0選 擇6. 0查 詢第四章系統(tǒng)設計4.1 目的與任務此階段的任務就是根據用戶需求分析階段得到的目標系統(tǒng)的物理模型確定一個合理的軟件系統(tǒng)的體系結構。這個體系結構的確定包括合理地劃分組成系統(tǒng)的模塊,模塊間的調用關系及模塊間的接口關系。軟件的體系結構從總的方面決定了軟件系統(tǒng)的可擴充性、可維護性以及系統(tǒng)的性能。并考慮到經濟、技術和

28、運行環(huán)境等方面的條件,確定系統(tǒng)的總體結構和系統(tǒng)各組成部分的技術方案,合理選擇計算機和通信的軟、硬件設備,提出系統(tǒng)的實施計劃,確??傮w目標的實現(xiàn)。4.2 系統(tǒng)的總體結構設計總體設計的任務是確定軟件的體系結構,軟件體系結構指的是軟件的總體結構以及該結構提供系統(tǒng)的功能的方式,也說是說軟件體系結構是程序的一些部件(模塊)的層次結構,這些部件相互作用的方式以及這些部件使用的數(shù)據結構5?!肮テ茊卧~”的功能結構圖如圖4-1所示。如圖所示,系統(tǒng)由用戶信息管理、單詞和美音賞析三大模塊組成。其中各功能模塊又包含子模塊。下面對各大模塊分別進行描述。(1) 用戶管理模塊:這個模塊主要是進行用戶進入的身份驗證和記錄用戶

29、的個人信息。新用戶必須進行注冊,方可使用本軟件;原有用戶也要在輸入了用戶ID和密碼之后才能進入練習階段,當然,作為一名已注冊用戶是可以進行密碼修改的。加入此功能目的是為了讓系統(tǒng)能記錄不同用戶的練習情況,統(tǒng)計測試成績,這樣一來,使用者可以很方便的知道自己在何時進行了測試,并且取得了怎樣的成績。方便用戶了解自己的學習情況,統(tǒng)籌安排。(2) 單詞模塊:這是本軟件的核心部分,也是關鍵所在。其中包括四個子模塊: 詞庫設置模塊:在這里用戶可以選擇詞庫、選擇開始位置、確定每次的練習單詞個數(shù)、選擇自動瀏覽的瀏覽速度、單詞的排列次序:分為順序逆序隨機幾在種。在單詞練習方面,可以選擇單詞的顯示模式,分為隱藏單詞隱

30、藏詞攻 破 單 詞美音欣賞單詞用戶信息管理字典詞庫維護測試詞庫設置個人信息管理用戶登陸新用戶注冊用戶修改密碼關閉選擇文件圖4-1“攻破單詞”功能模塊圖義單詞大寫幾種。瀏覽方式分為自動和手動兩種。 測試模塊:用于進行單詞測試,并統(tǒng)計測試結果。 字典模塊:用于進行單詞查找,分為“英譯漢”和“漢譯英”,其中“漢譯英”支持模糊查詢。 維護模塊:用于向詞庫中添加單詞。(3) 美音賞析模塊:用于播放英語聽力文件,通過打開文件對話框,選擇一個文件進行播放。因為目前JAVA支持的音頻文件格式有:AIFF、AU、WAV、type0和type1的MIDI,以及RMF1。所以在程序中對文件選擇的格式進行了限制,只有

31、符合格式的,才可能被選定。4.3 系統(tǒng)的物理結構設計從系統(tǒng)本身看,只需要制作成單機使用即可,使用者在自己的計算機上運行本軟件,就可以進行單詞的練習和使用相關功能。數(shù)據庫是數(shù)據管理的最新技術,是計算機科學的重要分支?,F(xiàn)在普遍使用的大中型數(shù)據庫有IBM DB2,Oracle, SQL Server, SyBase, Informix等。常用的小型數(shù)據庫有Access, Paradox, foxpro等。個人用戶常用的主要是基于中小型數(shù)據庫的MicroSoft SQL和Access。由于微軟的Access使用簡單,而且又是世界上最流行的桌面數(shù)據管理系統(tǒng)5,更加因為它適用于本軟件,所以本軟件使用Acc

32、ess數(shù)據庫完成單詞的存儲等多項任務。4.4 系統(tǒng)運行的軟硬件環(huán)境考慮到本系統(tǒng)的運行的穩(wěn)定及性能要求,本系統(tǒng)系統(tǒng)配置如下:硬件配置:CPU: Pentium以上 內存:64M以上硬盤:剩余空間 以上多媒體機器(若無聲卡,則無法收聽聲音文件)。軟件環(huán)境需求:操作系統(tǒng):數(shù)據庫:MicroSoft Access軟件:裝有JDK4.5數(shù)據庫設計(1) 數(shù)據庫設計的主要任務是針對一個給定的應用環(huán)境,在給定的硬件環(huán)境、操作系統(tǒng)、以及數(shù)據庫管理信息系統(tǒng)等軟件環(huán)境下,創(chuàng)建一個性能良好的數(shù)據庫模式,建立數(shù)據庫及其應用系統(tǒng),使之能有效地收集、存儲、操作和管理數(shù)據,滿足用戶地各類需求5。(2) 概念設計在系統(tǒng)的數(shù)據

33、庫設計中, 先要對系統(tǒng)分析得到的數(shù)據存儲進行分析,分析數(shù)據存儲之間的關系,然后得出系統(tǒng)關系模式。(3) 邏輯結構設計邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R 圖, 轉換為與選用的具體機器上的數(shù)據庫管理系統(tǒng)產品所支持的數(shù)據模型相符合的邏輯結book_idword_engword_chnbook_info word_id Belong toBOOKWORDword_numm n1mbood_nametest_iduser_pwsUSERDo_Testtest_datentest_error_count user_nameuser_idtest_right_count圖4-2 “攻

34、破單詞”數(shù)據庫的E-R圖構。本系統(tǒng)的E-R 圖如圖4-2所示:(4) 物理結構設計本系統(tǒng)數(shù)據庫中設計4張表,各表基本結構信息如下,分別為:表4-1單詞表,表4-2書目表,表4-3測試記錄表,表4-4用戶注冊表。表4-1 單詞表(t_word)列名數(shù)據類型寬度主鍵外鍵是否允許為空說明word_id文本8YESNONO單詞號word_eng文本100NONONO單詞word_chn文本100NONONO詞義word_num數(shù)字長整型NONONO單詞數(shù)bood_id文本4NOYESNO書號表4-2 書目表(t_book)列名數(shù)據類型寬度主鍵外鍵是否允許為空說明book_id文本8YESNONO書號b

35、ook_name文本 30NONONO書名book_info文本100NONONO書目信息表4-3 測試記錄表(t_test)列名數(shù)據類型寬度主鍵外鍵是否允許為空說明test_id文本8YESNONO測試號test_right_cound數(shù)字長整型NONONO測試正確數(shù)數(shù)test_error_cound數(shù)字長整型NONONO測試錯誤數(shù)user_id文本50NOYESNO用戶號bood_id文本50NOYESNO書號test_date文本8NONONO測試日期word_num_f數(shù)字整型NONONO開始位置表4-4 用戶注冊表(t_user)列名數(shù)據類型寬度主鍵外鍵是否允許為空說明user_id

36、文本8YESNONO用戶號user_name文本8NONONO用戶名user_pwd文本8NONONO密碼 4.6用戶界面設計為了使用者使用方便,提高學習效率,本軟件將采用命令按鈕和菜單選擇相結合的設計方法,做到界面風格一致,并且界面樸素大方,任何人都能夠接受。本軟件可以管理個人用戶,所以進入系統(tǒng)之前必須通過驗證。簡潔、清晰、友好是此界面應具有的設計風格。用戶只需填寫用戶ID和密碼,然后點擊【確定】按鈕,就可進入主界面。主界面是用戶進行單詞練習的地方,也是進行功能選擇的地方。當用戶做出選擇以后,系統(tǒng)就進入相應的窗口界面。本系統(tǒng)主要界面設計圖樣:(1) 登錄界面圖樣如圖4-3所示圖4-3 “攻破

37、單詞”登錄界面圖樣登錄界面設計思路:如圖4-3所示,本界面是用戶使用本軟件首先呈現(xiàn)給用戶的界面,用于用戶登陸信息的管理。當【登陸】按鈕被點擊后,通過在數(shù)據庫的t_user表中查找,如果用戶ID和密碼輸入合法有效將可進入系統(tǒng),出現(xiàn)主界面;當【取消】按鈕被點擊后便可以退出該操作界面;當【修改密碼】按鈕被點擊后則出現(xiàn)修改密碼對話框,用于已注冊用戶的密碼修改;如果是一位新用戶,則要點擊【注冊】,進行新用戶注冊環(huán)節(jié)。(2) 系統(tǒng)主界面圖樣如圖4-4-1所示。主界面設計思路:如圖4-4-1所示,菜單條上的各菜單項與本系統(tǒng)實現(xiàn)的各種功能的窗體界面相連接,當用戶進入系統(tǒng)后,用戶可以通過選擇菜單中的菜單項進入相

38、應的界面。主界面也是用戶進行單詞練習的地方。練習界面如圖4-4-2所示。在界面上可以通過對復選框的選擇,實現(xiàn)“隱藏單詞”/“隱藏詞義”/“單詞大寫”的不同顯示單詞方式;并且通過滾動條的設置,確定自動瀏覽的速度,速度范圍為50毫秒10000毫秒/個,還可以手動瀏覽單詞。在“單詞”菜單下,分別有:“詞庫設置”、“測試”、“字典”、“詞庫維護”和“退出”子菜單。在“美音賞析”菜單下,有“選擇”和“返回”子菜單。圖4-6-1 “攻破單詞”主界面圖樣圖4-6-2 “攻破單詞”顯示單詞后的主界面圖樣其它界面與功能實現(xiàn),將在下一章中詳細介紹。第五章系統(tǒng)實現(xiàn)在軟件的生命周期中,經過了系統(tǒng)規(guī)劃、系統(tǒng)分析和系統(tǒng)設

39、計等階段以后,便開始了系統(tǒng)實施階段。在系統(tǒng)分析和設計階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術設計上,工作成果是以各種系統(tǒng)分析與設計文檔來體現(xiàn)的。系統(tǒng)實施階段要繼承此前各階段的工作成果,將技術設計轉化為物理實現(xiàn),因此系統(tǒng)實施的成果是系統(tǒng)分析和設計階段的結晶5。5.1 與數(shù)據庫的連接在Java語言中,保持數(shù)據有幾種方法,分別為:利用平面文件、串行化對象和使用數(shù)據庫11。使對象串行化意味著可以把該對象寫入某個流中,然后從該流中把它讀取回來。流處理的一個例子是把輸出結果發(fā)送到磁盤文件中,或通過網絡連接發(fā)送給另一臺計算機。此方法在本程序中不適用;當需要存儲的只是一些配置設置,以后才打印的文本文檔或

40、要傳輸給世界上其他某個地方的XML文檔時,平面文件是一種可行的選擇,本程序就應用文件的方式存儲聽力文件;數(shù)據庫是一種復雜的存儲技術,它可以處理大量的數(shù)據,并且能方便的進行修改和查詢,用數(shù)據庫來存儲單詞是一個不錯的選擇。數(shù)據庫可以被定義為是在計算機存儲設備上合理存放的,相互關聯(lián)的數(shù)據集合,這種集合具有以下特點:·以一定的數(shù)據模型來組織數(shù)據,數(shù)據盡可能的不重復。·以最優(yōu)方式為某個特定組織的多種應用服務。·其數(shù)據結構獨立于使用它的應用程序。·對數(shù)據的定義、操縱和控制,由數(shù)據庫管理信息系統(tǒng)統(tǒng)一管理。SQL(Structured Query Language,結構

41、化查詢語言)是一種介于關系代數(shù)與關系演算之間的結構化查詢語言,它是一個通用的、功能極強的關系數(shù)據庫語言,集數(shù)據查詢、數(shù)據操縱、數(shù)據定義和數(shù)據控制功能于一體。雖然很多數(shù)據庫都對SQL語句進行了再開發(fā)和擴展,但是包括Select,Insert,Update,Delete,Create,以及Drop在內的標準的SQL命令仍然可以被用來完成幾乎所有的數(shù)據庫操作2。而實現(xiàn)Java語言與SQL結合起來的編程接口就是JDBC(Java DataBase Connection,Java數(shù)據庫連接)。JDBC允許開發(fā)人員使用一個與數(shù)據庫無關的公用API來編寫應用程序。軟件開發(fā)人員把數(shù)據寫在API上,而不是寫在底

42、層數(shù)據庫上。JDBC的中心在于執(zhí)行基本的SQL聲明和取回結果。Java JDBC代碼能在數(shù)據庫之間移植,是因為那些數(shù)據庫特定的代碼被包含在了一個叫做驅動程序的Java類中,如果需要改變數(shù)據庫,我們只需要改變Java代碼使用的驅動程序,就立即可以在新數(shù)據庫上運行。JDBC API被設計成了能在盡可能多的關系數(shù)據庫平臺上使用。JDBC API通過提供封裝具體功能的大量Java類和接口,是我們能輕松地編寫訪問關系數(shù)據庫的代碼。我們可以: 使用一個Driver Manager(驅動程序管理器)類來裝載一個驅動程序。 使用一個Connection(連接)對象(實現(xiàn) Connection接口的一個類實例)

43、來建立與數(shù)據的連接。 使用一個Statement(語句)對象來封裝SQL語言,并把它們發(fā)送給數(shù)據庫與執(zhí)行。 使用一個ResultSet(結果集)對象來檢索查詢結果等等3。其中,JDBC驅動程序可分為以下4個種類: JDBC-ODBC橋加ODBC驅動程序程序。這類驅動程序把JDBC轉換成ODBC驅動器,靠ODBC驅動器和數(shù)據庫通信。 本地API此類型的驅動程序,將運用Java包裝由數(shù)據庫廠商所提供、用于操作數(shù)據庫的API函數(shù)。 純Java客戶庫驅動程序這種驅動程序將JDBC轉換為與數(shù)據庫無關的網絡協(xié)議,之后這種協(xié)議又被某個服務器轉換為一種數(shù)據庫協(xié)議。這是最為靈活的JDBC驅動程序,可移植性最好。

44、 本地協(xié)議純Java驅動程序。這種類型的驅動程序不通過任何額外的中介軟件,而是直接通過Java程序并利用網絡協(xié)議,將操作數(shù)據庫的需求,傳遞給數(shù)據庫2。本軟件通過JDBC-ODBC橋訪問數(shù)據庫。其實現(xiàn)數(shù)據庫連接的代碼段如下:try user = "" password = "" url = "jdbc:odbc:word" Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn= DriverManager.getConnection(url,user,password

45、); sqlStatement = conn.createStatement(); catch (Exception e) System.out.println("DbWord initialize:" + e); 5.2 線程的設計在傳統(tǒng)操作系統(tǒng)中,“進程”是一個重要的概念。進程是一個內核級的實體,并且操作系統(tǒng)以它為執(zhí)行單元進行調度。進程由PCB(Process Control Block)、程序代碼、數(shù)據組成。在計算機中,可能有多個程序在運行。通常,將一個正運行的程序的實例稱作一個進程,它不僅執(zhí)行著自身的指令序列,擁有自己的數(shù)據空間,而且還占用著一定的系統(tǒng)資源,如CPU

46、時間、內存空間以及一些設備的使用權等。進程之間是相互獨立的,即使是啟動兩個相同的程序,系統(tǒng)都會啟動兩個獨立的進程,它們分別占用不同的系統(tǒng)資源。隨著操作系統(tǒng)的發(fā)展,出現(xiàn)了線程的概念。線程是對進程的擴展。在現(xiàn)代操作系統(tǒng)中,都支持多線程。所謂線程,是一個邏輯概念,是指程序中的一個執(zhí)行流。在一個進程中,可以有多個線程。它和線程一樣,有一個入口、一個出口和一個順序執(zhí)行序列。這些線程在操作系統(tǒng)的調度下并發(fā)執(zhí)行。使得每個線程都好像在獨占整個系統(tǒng)資源。線程是操作系統(tǒng)的最小高度單元。Java中的線程有五種狀態(tài),分別是新生態(tài)(newborn)、可執(zhí)行態(tài)(runnable)、執(zhí)行態(tài)(running)、阻塞態(tài)(blo

47、cked)和死亡態(tài)(dead),通過程序控制實現(xiàn)狀態(tài)間的轉換。線程與進程的區(qū)別主要體現(xiàn)在如下幾個方面:(1) 同樣作為基本的執(zhí)行單元,線程的劃分比進程小。因此,支持多線程的系統(tǒng)要比只支持多過程的系統(tǒng)并發(fā)度高。(2) 進程將內存作為自己獨有的資源,每個進程都有自己的內存。與此相反,線程卻共享內存單元,并通過共享內存交換信息。(3) 線程的創(chuàng)建和進程的創(chuàng)建不同。創(chuàng)建進程要把程序段和數(shù)據從磁盤交換數(shù)據。因此多線程利于提高效率。(4) 進程是相對靜態(tài)的,代表代碼和數(shù)據存放的地址空間。而線程是動態(tài)的,每個線程代表進程內的一個執(zhí)行流。啟動線程占用較少的系統(tǒng)資源,并且線程共享進程資源??梢钥闯觯€程具有輕便

48、的特性,因此線程也稱為輕線程。目前,多線程編程已經成為編程的一個有效的工具。利用多線程可以編出界面友好、效率高的應用程序,已得到了廣泛的應用。生成線程有兩種方法,一種是通過繼承Thread類實現(xiàn)線程體,另一種是通過實現(xiàn)Runnable接口來實現(xiàn)線程體。由于Java中不支持多繼承,利用Runnable接口是子類做線程模板的唯一方法。在本軟件中也應用了線程的概念,主要的應用表現(xiàn)在“美音賞析”部分,使菜單的響應事件類實現(xiàn)Runnable接口,在其中重寫的 run()方法中實現(xiàn)聲音文件的播放,當選中【選擇】菜單項時就創(chuàng)建一個線程,調用 run()方法。這樣即使是在播放聲音文件的同時也可以進行其它的操作

49、,體現(xiàn)Java的多線程的優(yōu)勢。以上為菜單響應事件中,run()方法的實現(xiàn)源代碼:class MenuItemListener implements ActionListener,Runnable private FileInputStream ff=null; public void run() try locate = new JavaSoundAudioClip(ff); locate.play(); catch (IOException e) 5.3具體的功能實現(xiàn)程序流程圖又稱程序框圖,是詳細設計過程中使用最廣泛的工具,具有直觀、形象、容易理解的特點;程序設計又稱編碼,是系統(tǒng)生命周期中繼

50、詳細設計之后的階段,這個階段的任務是使用選定的程序設計語言,把程序設計說明書體現(xiàn)的信息處理過程描述后,轉化成能在計算機系統(tǒng)上運行的程序源代碼。由于篇幅有限,在介紹部分界面功能時,為便于講解,本人附上該功能模塊的程序流程圖或實現(xiàn)相應功能的代碼段。(1) “登陸”的功能實現(xiàn)界面如圖4-3所示,用戶輸入信息,點擊【登陸】按鈕后,創(chuàng)建兩個String類型對象,其值分別為文本輸入框和密碼輸入框的內容,創(chuàng)建一個數(shù)據庫連接的對象,通過Select語句,在數(shù)據庫的t_user表中進行查找,如果存在相應記錄,則進入主界面。其程序流程圖如圖5-1所示。以下為“登陸”界面的【登陸】按鈕的事件處理的程序編碼。 Str

51、ing strUser = this.jTextField1.getText(); String strPwd = this.jPasswordField1.getText(); DbWord dw = new DbWord(); dw.DbWord(); String strSql = "Select user_id,user_pwd from t_user where " strSql = strSql + "user_id='"+strUser+"' and user_pwd='" +strPwd+ &q

52、uot;'" ; try ResultSet rs = dw.runSelect(strSql); if (rs.next() Words_in_mind window = new Words_in_mind(); window.setTitle("攻破單詞"); window.pack(); Dimension ScrDim=window.getToolkit().getScreenSize(); Dimension WinDim=window.getSize(); int x=(int)(ScrDim.getWidth()-WinDim.getWidth()/2); int y=(int)(ScrDim.getHeight()-WinDim.getHeight()/2); window.setLocation(x,y); LogOn.strUserId = strUser ; window.setVisible(true); this.setVisible(false); else this.jLabel3.setText("The UserID or Password is Error"); this.jTex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論