版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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ā)目標(biāo)7第三章 系統(tǒng)分析83.1 系統(tǒng)的初步調(diào)查83.2 系統(tǒng)的可行性分析83.3 對(duì)現(xiàn)存軟件的研究93.4 新系統(tǒng)邏輯方案的提出9第四章系統(tǒng)設(shè)計(jì)124.1 目的與任務(wù)124.2 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)124.3 系統(tǒng)的物理結(jié)構(gòu)設(shè)計(jì)134.4 系統(tǒng)運(yùn)行的軟硬件環(huán)境144.5數(shù)據(jù)庫設(shè)計(jì)144.6用戶界面設(shè)計(jì)17第五章系統(tǒng)實(shí)現(xiàn)195.1 與數(shù)據(jù)庫的連接195.2 線程的設(shè)計(jì)215.3具體的功能實(shí)現(xiàn)225.4 系統(tǒng)測試34第六章系
2、統(tǒng)運(yùn)行與維護(hù)366.1 系統(tǒng)的運(yùn)行366.2 系統(tǒng)的維護(hù)36第七章結(jié) 論377.1本軟件的特點(diǎn)377.2本軟件的缺點(diǎn)37結(jié) 束 語38致 謝39參考文獻(xiàn)40第一章緒論1.1 系統(tǒng)開發(fā)的背景在科技日益發(fā)達(dá)的今天,社會(huì)對(duì)每個(gè)身處其中的分子要求越來越高,懂得一門外語只是基本的要求。而學(xué)習(xí)外語也要講究一定的方法,一些輔助的工具也是必不可少的?;仡欉^去背單詞的方式,大家都是對(duì)著一本厚厚的字典,用筆在紙上反來復(fù)去的寫,力求用次數(shù)來達(dá)到記憶的目的??蛇@種方式太浪費(fèi)時(shí)間,一些單詞被背了又背,一些單詞卻未被問津,自己都不知道哪些是已經(jīng)記下來的,哪些是還不會(huì)的。把時(shí)間都白白的浪費(fèi)掉了,真是得不償失,因此,改變這種
3、方式勢在必行!使用計(jì)算機(jī)編寫的背單詞工具就改變了這種狀況,使背單詞也變得“輕松”起來。面對(duì)當(dāng)前市場上背單詞工具質(zhì)量的良莠不齊,因而提出了設(shè)計(jì)一個(gè)新的,功能更實(shí)用,操作更方便,界面更友好的英語背單詞工具“攻破單詞”。通過對(duì)此工具的使用,可以節(jié)省很多時(shí)間,提高記憶效率,加強(qiáng)學(xué)習(xí)上的靈活性,使記憶、測試和查單詞等各方面都很方便、輕松、快捷,相信它更能滿足學(xué)習(xí)英語的學(xué)習(xí)者的需要,提高學(xué)習(xí)的進(jìn)程,增加學(xué)習(xí)的興趣。1.2 軟件開發(fā)的策略將程序看作是按照順序執(zhí)行的一系統(tǒng)指令,這通常稱為過程編程。過程化程序設(shè)計(jì)的典型特征是:程序中的數(shù)據(jù)對(duì)于所有過程都是可見的,因此也很容易造成混亂;過程與數(shù)據(jù)之間的關(guān)系是獨(dú)立的
4、,數(shù)據(jù)并沒有要求一定要用那些方法來處理,原則上任何過程都可以對(duì)數(shù)據(jù)進(jìn)行操作。在面向過程的程序設(shè)計(jì)方法中,首先考慮的是程序的功能,即程序要解決的問題,通過將功能逐步細(xì)化,直到每一個(gè)小的功能模塊都能夠用函數(shù)或過程來實(shí)現(xiàn)。然后設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),編寫功能模塊(過程),最后將它們組合成一個(gè)復(fù)雜的程序。換句話說,面向過程的程序設(shè)計(jì)采用的是“算法+數(shù)據(jù)結(jié)構(gòu)=程序設(shè)計(jì)”的思想,即首先考慮解決問題的算法,然后再設(shè)計(jì)適合的數(shù)據(jù)結(jié)構(gòu)使得算法得以有效的實(shí)現(xiàn)。面向過程的程序設(shè)計(jì)方法對(duì)于小型程序來說是適合的,但是用它來開發(fā)大規(guī)模的、可重用的應(yīng)用就顯得力不從心了。與過程編程相對(duì)的是面向?qū)ο蟮木幊?。面向?qū)ο缶幊蹋∣OP)從另外角
5、度看待計(jì)算機(jī)程序,它將重點(diǎn)放在使用計(jì)算機(jī)所完成的任務(wù)上,而不是在計(jì)算機(jī)處理任務(wù)的方式上。在面向?qū)ο缶幊讨?,?jì)算機(jī)程序概念化為一組對(duì)象,它們一起工作以完成一項(xiàng)任務(wù)。每個(gè)對(duì)象是程序的單獨(dú)一部分,以特定的嚴(yán)格控制的方式與其他部分互相交流。面向?qū)ο缶幊坛匠绦驈?fù)雜,用客觀世界的對(duì)象模型自然地表示軟件開發(fā),用對(duì)象代表需要解決的問題的中心環(huán)節(jié),而不是以函數(shù)過程、數(shù)據(jù)結(jié)構(gòu)為中心,從而使計(jì)算機(jī)程序的分析、設(shè)計(jì)和實(shí)現(xiàn)的過程和方法改變了過去的脫節(jié)和跳躍的狀態(tài),這就使人們對(duì)復(fù)雜系統(tǒng)的認(rèn)識(shí)過程與系統(tǒng)的程序設(shè)計(jì)過程簡單化,并使兩者容易達(dá)到一致。面向?qū)ο缶幊叹邆淞藥讉€(gè)優(yōu)點(diǎn),比如:代碼維護(hù)方便、可擴(kuò)展性好、支持代碼重用技術(shù)
6、等。這些優(yōu)點(diǎn)是過程編程語言所不具備的??梢允褂谩皩?duì)象+消息=程序設(shè)計(jì)”來表示面向?qū)ο蟮睦碚?。圖1-1、1-2為面向過程的程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)的圖示,在其中可以直觀地看到二者的區(qū)別。函數(shù)函數(shù)過程過程數(shù)據(jù)1-1面向過程的程序設(shè)計(jì)數(shù)據(jù)方法方法數(shù)據(jù)對(duì)象方法方法方法對(duì)象數(shù)據(jù)方法方法方法方法對(duì)象1-2 面向?qū)ο蟮某绦蛟O(shè)計(jì)本軟件的開發(fā)就使用面向?qū)ο蟮姆椒ā?.3 軟件的開發(fā)方法面向?qū)ο蟮姆椒ń?jīng)由系統(tǒng)分析、設(shè)計(jì)和試驗(yàn)等階段,遵從軟件生命周期的規(guī)律。所謂軟件的生命周期是指一個(gè)軟件從它的發(fā)生到其消亡的過程。以下是利用生命周期法開發(fā)軟件的各個(gè)階段的具體內(nèi)容:(1)系統(tǒng)規(guī)劃階段:其主要任務(wù)是明確軟件開發(fā)的請(qǐng)求,
7、并進(jìn)行初步的調(diào)查,通過可行性研究確定下一階段的實(shí)施。可行性分析的任務(wù)是確定項(xiàng)目開發(fā)是否必要和可行。也就是要對(duì)問題定義階段中所提出的問題進(jìn)行分析,以決定所提出的問題是否有“可行”的解。所謂可行,首先在技術(shù)上要可行,即現(xiàn)有技術(shù)能否解決所提出的問題;其次是經(jīng)濟(jì)上可行,即用戶能否支付實(shí)施項(xiàng)目所需要的費(fèi)用,項(xiàng)目建成后能否取得預(yù)期的經(jīng)濟(jì)效益;最后進(jìn)行操作上和法律上的可行性研究。綜合這些方面的論證,最終決定是否實(shí)施該項(xiàng)目。當(dāng)然,這項(xiàng)工作就是建立在初步調(diào)查的基礎(chǔ)上。(2)用戶需求分析階段:在這個(gè)階段中,就是了解用戶的需求,準(zhǔn)確的確定用戶需要的功能,明確為了實(shí)現(xiàn)這些功能,需要哪些處理,需要處理什么數(shù)據(jù);需要存儲(chǔ)
8、哪些數(shù)據(jù)文件;得到哪些信息;輸入輸出數(shù)據(jù)的格式以及有關(guān)處理的具體算法等。此外需要找出為了實(shí)現(xiàn)既定功能所需要的約束條件,典型的約束為成本約束和時(shí)間約束。另一個(gè)重要任務(wù)是要規(guī)定系統(tǒng)的生效準(zhǔn)則,規(guī)定在目標(biāo)系統(tǒng)建成后驗(yàn)收目標(biāo)系統(tǒng)的一些原則以及具體的驗(yàn)收方法等。具體工作包括: 詳細(xì)調(diào)查其具體的調(diào)查內(nèi)容包括:清楚當(dāng)前市面上現(xiàn)存的背單詞工具所具備的功能和實(shí)現(xiàn)方法,了解使用者在使用過程中存在的問題和希望使用的功能。 提出新系統(tǒng)的邏輯設(shè)計(jì)系統(tǒng)分析結(jié)束時(shí),應(yīng)完成系統(tǒng)分析報(bào)告,交上級(jí)審批系統(tǒng)分析報(bào)告是系統(tǒng)設(shè)計(jì)的依據(jù),是與用戶交流的工具,是應(yīng)用軟件的重要組成部分。其內(nèi)容包括:原系統(tǒng)分析部分、新系統(tǒng)邏輯模型、新系統(tǒng)信息
9、量的估計(jì)。(3)系統(tǒng)設(shè)計(jì)階段:其任務(wù)是在系統(tǒng)分析的基礎(chǔ)上,按照邏輯模型的要求,科學(xué)合理地進(jìn)行系統(tǒng)的總體設(shè)計(jì)和具體的物理設(shè)計(jì),為下一階段的系統(tǒng)實(shí)施提供必要的技術(shù)資料。具體分為:總體設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。 總體設(shè)計(jì)階段:這個(gè)階段中的主要任務(wù)是得到一個(gè)能夠?qū)崿F(xiàn)用戶需求的理想的系統(tǒng)結(jié)構(gòu)。所謂理想的結(jié)構(gòu)指的是:能夠?qū)崿F(xiàn)需求階段中規(guī)定的功能;系統(tǒng)容易設(shè)計(jì)和實(shí)現(xiàn);系統(tǒng)易于維護(hù)。設(shè)計(jì)內(nèi)容包括劃分子系統(tǒng)、設(shè)計(jì)規(guī)范制定、數(shù)據(jù)流程圖設(shè)計(jì)、功能結(jié)構(gòu)圖設(shè)計(jì)、系統(tǒng)物理配置方案設(shè)計(jì)。 詳細(xì)設(shè)計(jì)階段:在這個(gè)階段中的任務(wù)是進(jìn)行系統(tǒng)所需要的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫的物理設(shè)計(jì)。輸入輸出設(shè)計(jì)、編寫程序模塊設(shè)計(jì)說明書。系統(tǒng)設(shè)計(jì)工作結(jié)束后
10、,要提交系統(tǒng)設(shè)計(jì)報(bào)告。若系統(tǒng)設(shè)計(jì)被審查批準(zhǔn),整個(gè)系統(tǒng)開發(fā)工作便進(jìn)入系統(tǒng)實(shí)施階段。(4)系統(tǒng)實(shí)施階段:這是軟件系統(tǒng)的實(shí)現(xiàn)階段,要進(jìn)行模塊編碼和模塊測試。模塊測試又稱為單元測試。模塊編碼要嚴(yán)格按詳細(xì)設(shè)計(jì)階段開發(fā)的模塊邏輯進(jìn)行。模塊程序設(shè)計(jì)完成之后,應(yīng)經(jīng)過嚴(yán)格的測試。程序測試應(yīng)該采用科學(xué)的方法。主要是黑盒法和白盒法進(jìn)行測試,從而盡可能多地發(fā)現(xiàn)模塊中錯(cuò)誤,并加以改正。把經(jīng)過徹底測試的模塊組裝起來形成需要的應(yīng)用系統(tǒng)。再進(jìn)行集成測試,采用的是黑盒測試方法,集成的方法可采用自頂向下集成或自底向上集成,或者二者結(jié)合的方法。(5)維護(hù)階段:主要包括改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù):改正性維護(hù)是改正程序中所遺漏
11、的錯(cuò)誤,保證用戶程序能正常運(yùn)行;完善性維護(hù)是增加程序的功能以滿足用戶的進(jìn)一步需求;適應(yīng)性維護(hù)是當(dāng)用戶改變硬件或軟件支持環(huán)境時(shí),滿足程序需要的修改工作。維護(hù)階段是一個(gè)非常重要的階段,維護(hù)工作的好壞直接影響到用戶的滿意程度6。1.4 系統(tǒng)開發(fā)環(huán)境的選取根據(jù)軟件所要完成的功能和結(jié)合當(dāng)前情況,我選擇了Java語言。Java語言誕生于1991年,是由SUN MicroSystem公司的Jame Gosling,Bill Joe等人為在電視、控制烤面包箱等家用電子產(chǎn)品上進(jìn)行交互式操作而開發(fā)的一個(gè)名為Oak的軟件,1995年下半年正式以Java這個(gè)名字推出,并引起轟動(dòng)2。Java語言是一種完全的面向?qū)ο蟮木?/p>
12、程語言。在Java語言中,對(duì)象是表現(xiàn)事物,消息傳遞是事物間的相互關(guān)系,類和繼承分別是相似行為對(duì)象的抽象和類之間的關(guān)系,方法是允許作用于類對(duì)象上的各種操作。面向?qū)ο蟪绦蛟O(shè)計(jì)有三個(gè)基本的特征:封裝(Encapsulation)、繼承(Inheritance)與多態(tài)(Polymorphism)2。所謂封裝,就是用一個(gè)自主式框架把對(duì)象的數(shù)據(jù)和方法連在一起形成一個(gè)整體。可以說,對(duì)象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強(qiáng),因?yàn)?Java無全程變量,無主方法,在Java中絕大部分成員是對(duì)象,只有簡單的數(shù)字類型、字符類型和布爾類型除外。而對(duì)于這些類型,Java也提供了相應(yīng)的對(duì)象類型以便與
13、其他對(duì)象交互操作。多態(tài)性就是多種表現(xiàn)形式,具體來說,可以用一個(gè)對(duì)外接口,多個(gè)內(nèi)在實(shí)現(xiàn)“方法”表示。繼承是指一個(gè)對(duì)象直接使用另一對(duì)象的屬性和方法。Java提供給用戶一系列類(class),Java的類有層次結(jié)構(gòu),子類可以繼承超類的屬性和方法。與另外一些面向?qū)ο缶幊陶Z言不同,Java只支持單一繼承。作為一種計(jì)算機(jī)語言,Java相當(dāng)?shù)膬?yōu)秀,最為顯著的優(yōu)點(diǎn)是它與平臺(tái)無關(guān),同樣的代碼可以不用改動(dòng)就可以在各種軟硬件平臺(tái)上運(yùn)行。這種平臺(tái)無關(guān)性對(duì)于開發(fā)Internet應(yīng)用程序來說是非常重要的。Java有以下基本特點(diǎn):簡單性:“我們用Java來設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),程序員不需要非常專業(yè)的訓(xùn)練,并且這種語言應(yīng)該和當(dāng)前所
14、流行的技術(shù)一致,因此,雖然我們發(fā)現(xiàn)C+并不是這樣的語言,但Java還是被設(shè)計(jì)成為盡可能和C+類似。只有這樣Java才易于理解。我們將C+中那些很少使用、難于理解以及令人迷惑的東西去掉形成Java,這些被去掉的C+特性在我們看來,帶來的好處遠(yuǎn)不如它們可能造成的痛苦?!盝ava語言白皮書面向?qū)ο螅篔ava語言是一種完全的面向?qū)ο蟮木幊陶Z言。分布式:分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上,操作分布是指把一個(gè)計(jì)算分散在不同主機(jī)上處理。強(qiáng)健性:Java最初設(shè)計(jì)目的是應(yīng)用于電子類消費(fèi)產(chǎn)品,因此要求較高的可靠性。Java雖然源于C+,但它消除了許多C+的不可靠因素,可以防止
15、許多編程錯(cuò)誤。安全性:一種編程語言,尤其是網(wǎng)絡(luò)編程語言,與跨平臺(tái)性隨之而來的還有另一大特性:安全性。在網(wǎng)絡(luò)上,如果網(wǎng)絡(luò)語言不十分可靠,極有可能被人有意或無意地造成惡果。為防止利用Java程序攻擊其他人的系統(tǒng),Java主要的編譯和運(yùn)行時(shí)系統(tǒng)中采取了防護(hù)措施,為Java代碼筑起了兩道堅(jiān)實(shí)的防護(hù)屏障。跨平臺(tái):所謂跨平臺(tái),就是指應(yīng)用程序與計(jì)算機(jī)系統(tǒng)硬件結(jié)構(gòu)的無關(guān)性,更直觀的說就是用Java編寫的應(yīng)用程序不和修改就可在不同的軟硬件平臺(tái)同樣的運(yùn)行。可移植性:同體系結(jié)構(gòu)無關(guān)的特性使得Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,這成為Java應(yīng)用軟件便于移植的良好基礎(chǔ)。解釋方式
16、執(zhí)行:Java字節(jié)碼可以在任何裝有Java解釋器的機(jī)器上直接執(zhí)行。高效率:“雖然字節(jié)碼的運(yùn)行效率通常已經(jīng)能夠滿足應(yīng)用要求,但還有一些要求很高運(yùn)行效率的場合,在這些情況下,字節(jié)碼可以即時(shí)地被翻譯為特定宿主機(jī)的機(jī)器碼?!盝ava語言白皮書多線程:Java語言的多線程機(jī)制使應(yīng)用程序能夠并發(fā)執(zhí)行,而且,它的同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作,動(dòng)態(tài)可擴(kuò)充性:Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響應(yīng)用程序的執(zhí)行。并且Java通過接口來支持多重繼承,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性。Java的眾多優(yōu)點(diǎn),使我對(duì)它產(chǎn)生了濃厚的興趣,讓我覺得不去學(xué)
17、習(xí)它是不行的。也許編寫工具軟件并不能完全體現(xiàn)Java語言的優(yōu)勢,但我想通過此次實(shí)踐走進(jìn)Java?!肮び破涫拢叵壤淦鳌?,使用合適的工具是提高軟件開發(fā)效率的重要途徑。Java的開發(fā)工具分成三大類,分別為:文本編輯器、Web開發(fā)工具和集成開發(fā)工具8。我采用的是美國Borland公司推出的可視化集成開發(fā)工具JBuilder ,以及文本編輯工具UltraEdit。Jbuilder是目前使用最廣泛的Java開發(fā)工具之一,支持開發(fā)人員構(gòu)建標(biāo)準(zhǔn)的Java應(yīng)用系統(tǒng)。其開放的環(huán)境、豐富的Java開發(fā)向?qū)Ш突诮M件的開發(fā)方式,極大地簡化了開發(fā)人員的工作,使得開發(fā)更為快捷和簡便,加快了項(xiàng)目的進(jìn)度。數(shù)據(jù)庫方面采用
18、Microsoft Access, Access功能足夠強(qiáng)大,足以應(yīng)付一般的數(shù)據(jù)管理及處理需要,而且它易于掌握。采用Windows200中文版作為開發(fā)、測試和運(yùn)行的平臺(tái)。硬件選擇Intel Pentium,256內(nèi)存,40G硬盤等。第二章系統(tǒng)規(guī)劃2.1 軟件開發(fā)中的主要問題凡事預(yù)則立,不預(yù)則廢??茖W(xué)的規(guī)劃對(duì)于任何需要經(jīng)過較長時(shí)間努力才能實(shí)現(xiàn)的事情都是非常重要的。規(guī)劃,一般是指對(duì)較長時(shí)期的活動(dòng)進(jìn)行總體的、全面的計(jì)劃。作為一個(gè)背單詞的工具,是一名英語學(xué)習(xí)者學(xué)習(xí)的助手。而無論是誰,習(xí)慣一旦養(yǎng)成就不容易改變使用背單詞工具也是一樣,選擇好了,在之后很長一段時(shí)間之內(nèi)也不會(huì)更換。所以說如何使使用者能使用的方
19、便、舒服,并且真正實(shí)現(xiàn)“助手”的含義就是重中之重??紤]到學(xué)習(xí)者的水平不同,要求掌握的單詞級(jí)別也就不同,所以就要有詞庫選擇的功能;考慮到避免重復(fù)練習(xí)的問題,所以就要有改變單詞出現(xiàn)次序和記錄不同用戶的測試進(jìn)度的功能;考慮到要有反饋練習(xí)成效的問題,所以就要有測試的功能;考慮到要有單詞查找的問題,所以就要有字典的功能;考慮到不可能將所有單詞都收錄到庫中,所以就要有詞庫維護(hù)的功能,另外還需要加設(shè)一些聽力方面的輔助功能。在現(xiàn)存的一些背單詞軟件中,往往對(duì)以上問題考慮的或多或少有一些欠缺,其中一個(gè)主要原因就是人們更多地關(guān)心軟件的經(jīng)濟(jì)效益,用很多花俏的東西代替了切實(shí)有用的功能,而對(duì)于使用者的需求又了解過少,對(duì)于
20、軟件的具體方案考慮較少,對(duì)總體方案與發(fā)展戰(zhàn)略問題不夠重視??傊?,軟件開發(fā)中,往往缺乏科學(xué)的、有效的系統(tǒng)規(guī)劃。2.2 軟件開發(fā)目標(biāo)力求實(shí)現(xiàn)一個(gè)小巧精悍的綠色英語單詞輔助記憶軟件。擁有一定的信息量,軟件功能具有人性化,可以設(shè)定單詞瀏覽速度的自動(dòng)瀏覽,又可手動(dòng)瀏覽;按照正序/逆序/隨機(jī)/默認(rèn)瀏覽記憶;隨時(shí)查找單詞和進(jìn)行測試;能夠播放聽力文件;可以進(jìn)行詞庫維護(hù),使其成為您背誦英語單詞的“利器”。世界上有許多難事,但是沒有完成不了的難事,背單詞就是其中的一種,只要努力,人定勝天,人生終將輝煌!第三章 系統(tǒng)分析3.1 系統(tǒng)的初步調(diào)查系統(tǒng)的初步調(diào)查是系統(tǒng)分析階段的第一項(xiàng)活動(dòng),初步調(diào)查階段的主要目標(biāo)是從分析人
21、員的角度看新項(xiàng)目開發(fā)有無必要和可能。初步調(diào)查的內(nèi)容包括兩方面:調(diào)查內(nèi)容和分析內(nèi)容。前者包括調(diào)查有關(guān)工作的信息,包括主要輸入、主要輸出、主要處理功能;后者主要分析現(xiàn)有什么,需要什么、在現(xiàn)有資源下能提供什么、此項(xiàng)目有無必要和可能進(jìn)一步的調(diào)查與開發(fā)。本軟件開發(fā)的初步調(diào)查采用的主要方式是與英語學(xué)習(xí)者(包括使用和未使用過背單詞工具的)進(jìn)行交流,把握第一手資料。經(jīng)過初步調(diào)查了解到,現(xiàn)在很多學(xué)習(xí)者還停留在“字典紙筆”的古老背單詞方式上,用書寫次數(shù)來達(dá)到記住的目的,這種方式不但花的功夫多,而且收效還不好,可以說是事倍功半。而那些現(xiàn)在正在使用計(jì)算機(jī)背單詞的學(xué)習(xí)者,從不同方面反映了他們?cè)谑褂帽硢卧~工具中所存在的問
22、題,總覺得在不同程度上不夠理想?,F(xiàn)存背單詞軟件的主要問題包括:有些設(shè)計(jì)的過于繁瑣,難于操作,并不實(shí)用或是使用起來不夠靈活;有些則又過于簡單,不能滿足使用者的需求,比如說單詞從頭到尾,順序固定,即不能變換次序又不能分級(jí)別記憶,反來復(fù)去總是記開頭那么幾個(gè);測試功能不夠健全,無法真正檢測使用者的學(xué)習(xí)情況等等。所以說,各方面的人,都需要一個(gè)切實(shí)好用的英語背單詞工具,提高英語學(xué)習(xí)效率。3.2 系統(tǒng)的可行性分析 可行性研究是以相對(duì)短的時(shí)間和相對(duì)低的成本來確定給定的問題是否有解。這里相對(duì)短和相對(duì)低是指和實(shí)現(xiàn)建議系統(tǒng)所需時(shí)間和成本相比較而言??尚行匝芯恐饕獜南率?個(gè)方面進(jìn)行研究:技術(shù)可行性、經(jīng)濟(jì)可行性、操作可
23、行性和調(diào)度可行性5。(1) 技術(shù)可行性:技術(shù)可行性的考慮集中在現(xiàn)存的計(jì)算機(jī)硬件能否支持被研究的系統(tǒng),首先關(guān)心的是該組織是否有相應(yīng)的軟件和硬件能夠支持處理建議的應(yīng)用程序。其次考慮在規(guī)定平臺(tái)之上,利用現(xiàn)有的成熟技術(shù)是否能夠?qū)崿F(xiàn)這個(gè)應(yīng)用?,F(xiàn)代計(jì)算機(jī)硬、軟件技術(shù)的飛速發(fā)展,為系統(tǒng)建設(shè)提供了技術(shù)條件。計(jì)算機(jī)等基礎(chǔ)設(shè)施的更新?lián)Q代也緊跟潮流的發(fā)展,這就為開發(fā)系統(tǒng)提供了堅(jiān)實(shí)基礎(chǔ)。(2) 經(jīng)濟(jì)可行性:這是經(jīng)典的并且是最常使用的評(píng)價(jià)計(jì)算機(jī)系統(tǒng)的方法。這個(gè)評(píng)價(jià)的結(jié)果稱為成本效益分析。簡單地說,經(jīng)濟(jì)可行性研究是確定得自新系統(tǒng)的節(jié)省和利益,將這些利益和系統(tǒng)的實(shí)現(xiàn)成本相比較,如果利益超過成本,則開發(fā)新系統(tǒng)的決策是肯定的;
24、否則的話,除非有其他特殊原因,這個(gè)決策將是否定的。本軟件的實(shí)現(xiàn)是作為考核學(xué)生學(xué)習(xí)情況的手段,不存在經(jīng)濟(jì)可行性的問題。(3) 操作可行性:是指人員的手工操作而不是指計(jì)算機(jī)系統(tǒng)操作是否可行,也就是說在實(shí)現(xiàn)了建議的計(jì)算機(jī)系統(tǒng)后,所需要的配合的手工操作是否可行。作為新時(shí)代的學(xué)生,幾乎人人都具備計(jì)算機(jī)的基本操作能力,而本軟件的使用又十分簡單方便,所以具備操作可行性。(4) 調(diào)度可行性:指的是建議的計(jì)算機(jī)系統(tǒng)能否在規(guī)定的期限內(nèi)交付給用戶?;诒拒浖?jīng)過上述的分析,可以在規(guī)定的期限內(nèi)完成。除了上面討論的4個(gè)方面的可行性論證,有些產(chǎn)品的開發(fā)可能會(huì)涉及現(xiàn)存法律方面的問題,即需要進(jìn)行法律可行性論證。從當(dāng)前情況來
25、看,本軟件的開發(fā)是可行的。3.3 對(duì)現(xiàn)存軟件的研究對(duì)現(xiàn)存軟件進(jìn)行詳細(xì)研究是了解系統(tǒng)需求和進(jìn)行系統(tǒng)分析與設(shè)計(jì)的重要基礎(chǔ)工作,因此要進(jìn)行全面、細(xì)致而充分的研究。通過研究,發(fā)現(xiàn)現(xiàn)存背單詞工具各自存在以上一點(diǎn)或幾點(diǎn)問題:(1) 單詞一起存放,不能根據(jù)不同層次的用戶選擇詞庫;(2) 單詞練習(xí)方式單一;(3) 沒有單詞測試功能,或測試功能不全面;(4) 沒有記錄用戶個(gè)人信息的功能;(5) 沒有單詞查詢的功能;(6) 無法向庫中添加單詞;通過分析,可以看出這些問題,都是需要進(jìn)行改進(jìn)的。3.4 新系統(tǒng)邏輯方案的提出建議的計(jì)算機(jī)系統(tǒng)是基于現(xiàn)存軟件之上建立的,這應(yīng)該是現(xiàn)行系統(tǒng)的完善與提高。用戶所提供的信息往往是現(xiàn)
26、行系統(tǒng)的缺陷,而不是整個(gè)系統(tǒng)的功能與行為。在問題定義階段對(duì)建議的功能、規(guī)模和約束條件等已經(jīng)作了規(guī)定。在可行性研究階段通過和使用者的交流,對(duì)用戶的需求有了初步的了解。因此在這個(gè)階段中,設(shè)計(jì)者應(yīng)該進(jìn)一步澄清問題定義中的模糊部分,更正錯(cuò)誤部分。通過這個(gè)活動(dòng),清楚地描述新系統(tǒng)的主要功能,主要的數(shù)據(jù)輸出與輸入數(shù)據(jù)的來源,以及所需要的特殊處理。本軟件的邏輯模型主要是以數(shù)據(jù)流程圖為主要描述工具。(1)數(shù)據(jù)流程圖 (簡稱為DFD)數(shù)據(jù)流程圖是在對(duì)系統(tǒng)調(diào)研階段繪制的業(yè)務(wù)流程圖進(jìn)行分析的基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實(shí)際運(yùn)行的可行性角度出發(fā),將信息處理功能和彼此之間的聯(lián)系自頂向下、逐層分解,從邏輯上精確地
27、描述新系統(tǒng)應(yīng)具有地?cái)?shù)據(jù)加工功能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)來源和去向。數(shù)據(jù)流圖是組織中信息運(yùn)動(dòng)的抽象,是邏輯模型的主要形式5。數(shù)據(jù)流程圖的圖例如下:數(shù)據(jù)的源點(diǎn)或終點(diǎn) 數(shù)據(jù)處理數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)流“攻破單詞” 數(shù)據(jù)流程圖如圖3-1所示。 7. 0添 加4. 0測 試5. 0選 擇6. 0查 詢第四章系統(tǒng)設(shè)計(jì)4.1 目的與任務(wù)此階段的任務(wù)就是根據(jù)用戶需求分析階段得到的目標(biāo)系統(tǒng)的物理模型確定一個(gè)合理的軟件系統(tǒng)的體系結(jié)構(gòu)。這個(gè)體系結(jié)構(gòu)的確定包括合理地劃分組成系統(tǒng)的模塊,模塊間的調(diào)用關(guān)系及模塊間的接口關(guān)系。軟件的體系結(jié)構(gòu)從總的方面決定了軟件系統(tǒng)的可擴(kuò)充性、可維護(hù)性以及系統(tǒng)的性能。并考慮到經(jīng)濟(jì)、技術(shù)和
28、運(yùn)行環(huán)境等方面的條件,確定系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)各組成部分的技術(shù)方案,合理選擇計(jì)算機(jī)和通信的軟、硬件設(shè)備,提出系統(tǒng)的實(shí)施計(jì)劃,確??傮w目標(biāo)的實(shí)現(xiàn)。4.2 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)總體設(shè)計(jì)的任務(wù)是確定軟件的體系結(jié)構(gòu),軟件體系結(jié)構(gòu)指的是軟件的總體結(jié)構(gòu)以及該結(jié)構(gòu)提供系統(tǒng)的功能的方式,也說是說軟件體系結(jié)構(gòu)是程序的一些部件(模塊)的層次結(jié)構(gòu),這些部件相互作用的方式以及這些部件使用的數(shù)據(jù)結(jié)構(gòu)5?!肮テ茊卧~”的功能結(jié)構(gòu)圖如圖4-1所示。如圖所示,系統(tǒng)由用戶信息管理、單詞和美音賞析三大模塊組成。其中各功能模塊又包含子模塊。下面對(duì)各大模塊分別進(jìn)行描述。(1) 用戶管理模塊:這個(gè)模塊主要是進(jìn)行用戶進(jìn)入的身份驗(yàn)證和記錄用戶
29、的個(gè)人信息。新用戶必須進(jìn)行注冊(cè),方可使用本軟件;原有用戶也要在輸入了用戶ID和密碼之后才能進(jìn)入練習(xí)階段,當(dāng)然,作為一名已注冊(cè)用戶是可以進(jìn)行密碼修改的。加入此功能目的是為了讓系統(tǒng)能記錄不同用戶的練習(xí)情況,統(tǒng)計(jì)測試成績,這樣一來,使用者可以很方便的知道自己在何時(shí)進(jìn)行了測試,并且取得了怎樣的成績。方便用戶了解自己的學(xué)習(xí)情況,統(tǒng)籌安排。(2) 單詞模塊:這是本軟件的核心部分,也是關(guān)鍵所在。其中包括四個(gè)子模塊: 詞庫設(shè)置模塊:在這里用戶可以選擇詞庫、選擇開始位置、確定每次的練習(xí)單詞個(gè)數(shù)、選擇自動(dòng)瀏覽的瀏覽速度、單詞的排列次序:分為順序逆序隨機(jī)幾在種。在單詞練習(xí)方面,可以選擇單詞的顯示模式,分為隱藏單詞隱
30、藏詞攻 破 單 詞美音欣賞單詞用戶信息管理字典詞庫維護(hù)測試詞庫設(shè)置個(gè)人信息管理用戶登陸新用戶注冊(cè)用戶修改密碼關(guān)閉選擇文件圖4-1“攻破單詞”功能模塊圖義單詞大寫幾種。瀏覽方式分為自動(dòng)和手動(dòng)兩種。 測試模塊:用于進(jìn)行單詞測試,并統(tǒng)計(jì)測試結(jié)果。 字典模塊:用于進(jìn)行單詞查找,分為“英譯漢”和“漢譯英”,其中“漢譯英”支持模糊查詢。 維護(hù)模塊:用于向詞庫中添加單詞。(3) 美音賞析模塊:用于播放英語聽力文件,通過打開文件對(duì)話框,選擇一個(gè)文件進(jìn)行播放。因?yàn)槟壳癑AVA支持的音頻文件格式有:AIFF、AU、WAV、type0和type1的MIDI,以及RMF1。所以在程序中對(duì)文件選擇的格式進(jìn)行了限制,只有
31、符合格式的,才可能被選定。4.3 系統(tǒng)的物理結(jié)構(gòu)設(shè)計(jì)從系統(tǒng)本身看,只需要制作成單機(jī)使用即可,使用者在自己的計(jì)算機(jī)上運(yùn)行本軟件,就可以進(jìn)行單詞的練習(xí)和使用相關(guān)功能。數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重要分支?,F(xiàn)在普遍使用的大中型數(shù)據(jù)庫有IBM DB2,Oracle, SQL Server, SyBase, Informix等。常用的小型數(shù)據(jù)庫有Access, Paradox, foxpro等。個(gè)人用戶常用的主要是基于中小型數(shù)據(jù)庫的MicroSoft SQL和Access。由于微軟的Access使用簡單,而且又是世界上最流行的桌面數(shù)據(jù)管理系統(tǒng)5,更加因?yàn)樗m用于本軟件,所以本軟件使用Acc
32、ess數(shù)據(jù)庫完成單詞的存儲(chǔ)等多項(xiàng)任務(wù)。4.4 系統(tǒng)運(yùn)行的軟硬件環(huán)境考慮到本系統(tǒng)的運(yùn)行的穩(wěn)定及性能要求,本系統(tǒng)系統(tǒng)配置如下:硬件配置:CPU: Pentium以上 內(nèi)存:64M以上硬盤:剩余空間 以上多媒體機(jī)器(若無聲卡,則無法收聽聲音文件)。軟件環(huán)境需求:操作系統(tǒng):數(shù)據(jù)庫:MicroSoft Access軟件:裝有JDK4.5數(shù)據(jù)庫設(shè)計(jì)(1) 數(shù)據(jù)庫設(shè)計(jì)的主要任務(wù)是針對(duì)一個(gè)給定的應(yīng)用環(huán)境,在給定的硬件環(huán)境、操作系統(tǒng)、以及數(shù)據(jù)庫管理信息系統(tǒng)等軟件環(huán)境下,創(chuàng)建一個(gè)性能良好的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能有效地收集、存儲(chǔ)、操作和管理數(shù)據(jù),滿足用戶地各類需求5。(2) 概念設(shè)計(jì)在系統(tǒng)的數(shù)據(jù)
33、庫設(shè)計(jì)中, 先要對(duì)系統(tǒng)分析得到的數(shù)據(jù)存儲(chǔ)進(jìn)行分析,分析數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后得出系統(tǒng)關(guān)系模式。(3) 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R 圖, 轉(zhuǎn)換為與選用的具體機(jī)器上的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)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ù)據(jù)庫的E-R圖構(gòu)。本系統(tǒng)的E-R 圖如圖4-2所示:(4) 物理結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫中設(shè)計(jì)4張表,各表基本結(jié)構(gòu)信息如下,分別為:表4-1單詞表,表4-2書目表,表4-3測試記錄表,表4-4用戶注冊(cè)表。表4-1 單詞表(t_word)列名數(shù)據(jù)類型寬度主鍵外鍵是否允許為空說明word_id文本8YESNONO單詞號(hào)word_eng文本100NONONO單詞word_chn文本100NONONO詞義word_num數(shù)字長整型NONONO單詞數(shù)bood_id文本4NOYESNO書號(hào)表4-2 書目表(t_book)列名數(shù)據(jù)類型寬度主鍵外鍵是否允許為空說明book_id文本8YESNONO書號(hào)b
35、ook_name文本 30NONONO書名book_info文本100NONONO書目信息表4-3 測試記錄表(t_test)列名數(shù)據(jù)類型寬度主鍵外鍵是否允許為空說明test_id文本8YESNONO測試號(hào)test_right_cound數(shù)字長整型NONONO測試正確數(shù)數(shù)test_error_cound數(shù)字長整型NONONO測試錯(cuò)誤數(shù)user_id文本50NOYESNO用戶號(hào)bood_id文本50NOYESNO書號(hào)test_date文本8NONONO測試日期word_num_f數(shù)字整型NONONO開始位置表4-4 用戶注冊(cè)表(t_user)列名數(shù)據(jù)類型寬度主鍵外鍵是否允許為空說明user_id
36、文本8YESNONO用戶號(hào)user_name文本8NONONO用戶名user_pwd文本8NONONO密碼 4.6用戶界面設(shè)計(jì)為了使用者使用方便,提高學(xué)習(xí)效率,本軟件將采用命令按鈕和菜單選擇相結(jié)合的設(shè)計(jì)方法,做到界面風(fēng)格一致,并且界面樸素大方,任何人都能夠接受。本軟件可以管理個(gè)人用戶,所以進(jìn)入系統(tǒng)之前必須通過驗(yàn)證。簡潔、清晰、友好是此界面應(yīng)具有的設(shè)計(jì)風(fēng)格。用戶只需填寫用戶ID和密碼,然后點(diǎn)擊【確定】按鈕,就可進(jìn)入主界面。主界面是用戶進(jìn)行單詞練習(xí)的地方,也是進(jìn)行功能選擇的地方。當(dāng)用戶做出選擇以后,系統(tǒng)就進(jìn)入相應(yīng)的窗口界面。本系統(tǒng)主要界面設(shè)計(jì)圖樣:(1) 登錄界面圖樣如圖4-3所示圖4-3 “攻破
37、單詞”登錄界面圖樣登錄界面設(shè)計(jì)思路:如圖4-3所示,本界面是用戶使用本軟件首先呈現(xiàn)給用戶的界面,用于用戶登陸信息的管理。當(dāng)【登陸】按鈕被點(diǎn)擊后,通過在數(shù)據(jù)庫的t_user表中查找,如果用戶ID和密碼輸入合法有效將可進(jìn)入系統(tǒng),出現(xiàn)主界面;當(dāng)【取消】按鈕被點(diǎn)擊后便可以退出該操作界面;當(dāng)【修改密碼】按鈕被點(diǎn)擊后則出現(xiàn)修改密碼對(duì)話框,用于已注冊(cè)用戶的密碼修改;如果是一位新用戶,則要點(diǎn)擊【注冊(cè)】,進(jìn)行新用戶注冊(cè)環(huán)節(jié)。(2) 系統(tǒng)主界面圖樣如圖4-4-1所示。主界面設(shè)計(jì)思路:如圖4-4-1所示,菜單條上的各菜單項(xiàng)與本系統(tǒng)實(shí)現(xiàn)的各種功能的窗體界面相連接,當(dāng)用戶進(jìn)入系統(tǒng)后,用戶可以通過選擇菜單中的菜單項(xiàng)進(jìn)入相
38、應(yīng)的界面。主界面也是用戶進(jìn)行單詞練習(xí)的地方。練習(xí)界面如圖4-4-2所示。在界面上可以通過對(duì)復(fù)選框的選擇,實(shí)現(xiàn)“隱藏單詞”/“隱藏詞義”/“單詞大寫”的不同顯示單詞方式;并且通過滾動(dòng)條的設(shè)置,確定自動(dòng)瀏覽的速度,速度范圍為50毫秒10000毫秒/個(gè),還可以手動(dòng)瀏覽單詞。在“單詞”菜單下,分別有:“詞庫設(shè)置”、“測試”、“字典”、“詞庫維護(hù)”和“退出”子菜單。在“美音賞析”菜單下,有“選擇”和“返回”子菜單。圖4-6-1 “攻破單詞”主界面圖樣圖4-6-2 “攻破單詞”顯示單詞后的主界面圖樣其它界面與功能實(shí)現(xiàn),將在下一章中詳細(xì)介紹。第五章系統(tǒng)實(shí)現(xiàn)在軟件的生命周期中,經(jīng)過了系統(tǒng)規(guī)劃、系統(tǒng)分析和系統(tǒng)設(shè)
39、計(jì)等階段以后,便開始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,工作成果是以各種系統(tǒng)分析與設(shè)計(jì)文檔來體現(xiàn)的。系統(tǒng)實(shí)施階段要繼承此前各階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶5。5.1 與數(shù)據(jù)庫的連接在Java語言中,保持?jǐn)?shù)據(jù)有幾種方法,分別為:利用平面文件、串行化對(duì)象和使用數(shù)據(jù)庫11。使對(duì)象串行化意味著可以把該對(duì)象寫入某個(gè)流中,然后從該流中把它讀取回來。流處理的一個(gè)例子是把輸出結(jié)果發(fā)送到磁盤文件中,或通過網(wǎng)絡(luò)連接發(fā)送給另一臺(tái)計(jì)算機(jī)。此方法在本程序中不適用;當(dāng)需要存儲(chǔ)的只是一些配置設(shè)置,以后才打印的文本文檔或
40、要傳輸給世界上其他某個(gè)地方的XML文檔時(shí),平面文件是一種可行的選擇,本程序就應(yīng)用文件的方式存儲(chǔ)聽力文件;數(shù)據(jù)庫是一種復(fù)雜的存儲(chǔ)技術(shù),它可以處理大量的數(shù)據(jù),并且能方便的進(jìn)行修改和查詢,用數(shù)據(jù)庫來存儲(chǔ)單詞是一個(gè)不錯(cuò)的選擇。數(shù)據(jù)庫可以被定義為是在計(jì)算機(jī)存儲(chǔ)設(shè)備上合理存放的,相互關(guān)聯(lián)的數(shù)據(jù)集合,這種集合具有以下特點(diǎn):·以一定的數(shù)據(jù)模型來組織數(shù)據(jù),數(shù)據(jù)盡可能的不重復(fù)。·以最優(yōu)方式為某個(gè)特定組織的多種應(yīng)用服務(wù)。·其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使用它的應(yīng)用程序。·對(duì)數(shù)據(jù)的定義、操縱和控制,由數(shù)據(jù)庫管理信息系統(tǒng)統(tǒng)一管理。SQL(Structured Query Language,結(jié)構(gòu)
41、化查詢語言)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,它是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言,集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體。雖然很多數(shù)據(jù)庫都對(duì)SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select,Insert,Update,Delete,Create,以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作2。而實(shí)現(xiàn)Java語言與SQL結(jié)合起來的編程接口就是JDBC(Java DataBase Connection,Java數(shù)據(jù)庫連接)。JDBC允許開發(fā)人員使用一個(gè)與數(shù)據(jù)庫無關(guān)的公用API來編寫應(yīng)用程序。軟件開發(fā)人員把數(shù)據(jù)寫在API上,而不是寫在底
42、層數(shù)據(jù)庫上。JDBC的中心在于執(zhí)行基本的SQL聲明和取回結(jié)果。Java JDBC代碼能在數(shù)據(jù)庫之間移植,是因?yàn)槟切?shù)據(jù)庫特定的代碼被包含在了一個(gè)叫做驅(qū)動(dòng)程序的Java類中,如果需要改變數(shù)據(jù)庫,我們只需要改變Java代碼使用的驅(qū)動(dòng)程序,就立即可以在新數(shù)據(jù)庫上運(yùn)行。JDBC API被設(shè)計(jì)成了能在盡可能多的關(guān)系數(shù)據(jù)庫平臺(tái)上使用。JDBC API通過提供封裝具體功能的大量Java類和接口,是我們能輕松地編寫訪問關(guān)系數(shù)據(jù)庫的代碼。我們可以: 使用一個(gè)Driver Manager(驅(qū)動(dòng)程序管理器)類來裝載一個(gè)驅(qū)動(dòng)程序。 使用一個(gè)Connection(連接)對(duì)象(實(shí)現(xiàn) Connection接口的一個(gè)類實(shí)例)
43、來建立與數(shù)據(jù)的連接。 使用一個(gè)Statement(語句)對(duì)象來封裝SQL語言,并把它們發(fā)送給數(shù)據(jù)庫與執(zhí)行。 使用一個(gè)ResultSet(結(jié)果集)對(duì)象來檢索查詢結(jié)果等等3。其中,JDBC驅(qū)動(dòng)程序可分為以下4個(gè)種類: JDBC-ODBC橋加ODBC驅(qū)動(dòng)程序程序。這類驅(qū)動(dòng)程序把JDBC轉(zhuǎn)換成ODBC驅(qū)動(dòng)器,靠ODBC驅(qū)動(dòng)器和數(shù)據(jù)庫通信。 本地API此類型的驅(qū)動(dòng)程序,將運(yùn)用Java包裝由數(shù)據(jù)庫廠商所提供、用于操作數(shù)據(jù)庫的API函數(shù)。 純Java客戶庫驅(qū)動(dòng)程序這種驅(qū)動(dòng)程序?qū)DBC轉(zhuǎn)換為與數(shù)據(jù)庫無關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種數(shù)據(jù)庫協(xié)議。這是最為靈活的JDBC驅(qū)動(dòng)程序,可移植性最好。
44、 本地協(xié)議純Java驅(qū)動(dòng)程序。這種類型的驅(qū)動(dòng)程序不通過任何額外的中介軟件,而是直接通過Java程序并利用網(wǎng)絡(luò)協(xié)議,將操作數(shù)據(jù)庫的需求,傳遞給數(shù)據(jù)庫2。本軟件通過JDBC-ODBC橋訪問數(shù)據(jù)庫。其實(shí)現(xiàn)數(shù)據(jù)庫連接的代碼段如下: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 線程的設(shè)計(jì)在傳統(tǒng)操作系統(tǒng)中,“進(jìn)程”是一個(gè)重要的概念。進(jìn)程是一個(gè)內(nèi)核級(jí)的實(shí)體,并且操作系統(tǒng)以它為執(zhí)行單元進(jìn)行調(diào)度。進(jìn)程由PCB(Process Control Block)、程序代碼、數(shù)據(jù)組成。在計(jì)算機(jī)中,可能有多個(gè)程序在運(yùn)行。通常,將一個(gè)正運(yùn)行的程序的實(shí)例稱作一個(gè)進(jìn)程,它不僅執(zhí)行著自身的指令序列,擁有自己的數(shù)據(jù)空間,而且還占用著一定的系統(tǒng)資源,如CPU
46、時(shí)間、內(nèi)存空間以及一些設(shè)備的使用權(quán)等。進(jìn)程之間是相互獨(dú)立的,即使是啟動(dòng)兩個(gè)相同的程序,系統(tǒng)都會(huì)啟動(dòng)兩個(gè)獨(dú)立的進(jìn)程,它們分別占用不同的系統(tǒng)資源。隨著操作系統(tǒng)的發(fā)展,出現(xiàn)了線程的概念。線程是對(duì)進(jìn)程的擴(kuò)展。在現(xiàn)代操作系統(tǒng)中,都支持多線程。所謂線程,是一個(gè)邏輯概念,是指程序中的一個(gè)執(zhí)行流。在一個(gè)進(jìn)程中,可以有多個(gè)線程。它和線程一樣,有一個(gè)入口、一個(gè)出口和一個(gè)順序執(zhí)行序列。這些線程在操作系統(tǒng)的調(diào)度下并發(fā)執(zhí)行。使得每個(gè)線程都好像在獨(dú)占整個(gè)系統(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),通過程序控制實(shí)現(xiàn)狀態(tài)間的轉(zhuǎn)換。線程與進(jìn)程的區(qū)別主要體現(xiàn)在如下幾個(gè)方面:(1) 同樣作為基本的執(zhí)行單元,線程的劃分比進(jìn)程小。因此,支持多線程的系統(tǒng)要比只支持多過程的系統(tǒng)并發(fā)度高。(2) 進(jìn)程將內(nèi)存作為自己獨(dú)有的資源,每個(gè)進(jìn)程都有自己的內(nèi)存。與此相反,線程卻共享內(nèi)存單元,并通過共享內(nèi)存交換信息。(3) 線程的創(chuàng)建和進(jìn)程的創(chuàng)建不同。創(chuàng)建進(jìn)程要把程序段和數(shù)據(jù)從磁盤交換數(shù)據(jù)。因此多線程利于提高效率。(4) 進(jìn)程是相對(duì)靜態(tài)的,代表代碼和數(shù)據(jù)存放的地址空間。而線程是動(dòng)態(tài)的,每個(gè)線程代表進(jìn)程內(nèi)的一個(gè)執(zhí)行流。啟動(dòng)線程占用較少的系統(tǒng)資源,并且線程共享進(jìn)程資源。可以看出,線程具有輕便
48、的特性,因此線程也稱為輕線程。目前,多線程編程已經(jīng)成為編程的一個(gè)有效的工具。利用多線程可以編出界面友好、效率高的應(yīng)用程序,已得到了廣泛的應(yīng)用。生成線程有兩種方法,一種是通過繼承Thread類實(shí)現(xiàn)線程體,另一種是通過實(shí)現(xiàn)Runnable接口來實(shí)現(xiàn)線程體。由于Java中不支持多繼承,利用Runnable接口是子類做線程模板的唯一方法。在本軟件中也應(yīng)用了線程的概念,主要的應(yīng)用表現(xiàn)在“美音賞析”部分,使菜單的響應(yīng)事件類實(shí)現(xiàn)Runnable接口,在其中重寫的 run()方法中實(shí)現(xiàn)聲音文件的播放,當(dāng)選中【選擇】菜單項(xiàng)時(shí)就創(chuàng)建一個(gè)線程,調(diào)用 run()方法。這樣即使是在播放聲音文件的同時(shí)也可以進(jìn)行其它的操作
49、,體現(xiàn)Java的多線程的優(yōu)勢。以上為菜單響應(yīng)事件中,run()方法的實(shí)現(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具體的功能實(shí)現(xiàn)程序流程圖又稱程序框圖,是詳細(xì)設(shè)計(jì)過程中使用最廣泛的工具,具有直觀、形象、容易理解的特點(diǎn);程序設(shè)計(jì)又稱編碼,是系統(tǒng)生命周期中繼
50、詳細(xì)設(shè)計(jì)之后的階段,這個(gè)階段的任務(wù)是使用選定的程序設(shè)計(jì)語言,把程序設(shè)計(jì)說明書體現(xiàn)的信息處理過程描述后,轉(zhuǎn)化成能在計(jì)算機(jī)系統(tǒng)上運(yùn)行的程序源代碼。由于篇幅有限,在介紹部分界面功能時(shí),為便于講解,本人附上該功能模塊的程序流程圖或?qū)崿F(xiàn)相應(yīng)功能的代碼段。(1) “登陸”的功能實(shí)現(xiàn)界面如圖4-3所示,用戶輸入信息,點(diǎn)擊【登陸】按鈕后,創(chuàng)建兩個(gè)String類型對(duì)象,其值分別為文本輸入框和密碼輸入框的內(nèi)容,創(chuàng)建一個(gè)數(shù)據(jù)庫連接的對(duì)象,通過Select語句,在數(shù)據(jù)庫的t_user表中進(jìn)行查找,如果存在相應(yīng)記錄,則進(jìn)入主界面。其程序流程圖如圖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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市照明工程承包服務(wù)合同3篇
- 2025年度幼兒園窗戶安全改造及責(zé)任認(rèn)定合同4篇
- 2024年綜合安防系統(tǒng)集成服務(wù)合同
- 2025年度商業(yè)場所蟲害防治與形象維護(hù)服務(wù)合同4篇
- 2025年度生態(tài)園區(qū)代建工程合同模板4篇
- 2025年度殯儀館遺體運(yùn)輸與悼念活動(dòng)全程服務(wù)合同書3篇
- 2024年版婚內(nèi)共同財(cái)產(chǎn)管理及使用合同
- 2025年度新能源儲(chǔ)能項(xiàng)目搭建與銷售合同4篇
- 2025年度化工企業(yè)環(huán)境風(fēng)險(xiǎn)防控合同3篇
- 2025年度大豆國際貿(mào)易結(jié)算與清算服務(wù)合同3篇
- 直播帶貨助農(nóng)現(xiàn)狀及發(fā)展對(duì)策研究-以抖音直播為例(開題)
- 腰椎間盤突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計(jì)價(jià)規(guī)范》
- 2023-2024學(xué)年度人教版四年級(jí)語文上冊(cè)寒假作業(yè)
- (完整版)保證藥品信息來源合法、真實(shí)、安全的管理措施、情況說明及相關(guān)證明
- 營銷專員績效考核指標(biāo)
- 陜西麟游風(fēng)電吊裝方案專家論證版
- 供應(yīng)商審核培訓(xùn)教程
- 【盒馬鮮生生鮮類產(chǎn)品配送服務(wù)問題及優(yōu)化建議分析10000字(論文)】
- 肝硬化心衰患者的護(hù)理查房課件
- 2023年四川省樂山市中考數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論