版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、*軟件系統(tǒng)設(shè)計說明書文本編譯器學(xué)生學(xué)號:* 學(xué)生姓名:* 專業(yè)班級:計算* 指導(dǎo)教師: 職 稱:講師 起止日期:2010.10.202010.10.31 * *說明書軟件系統(tǒng)設(shè)計任務(wù)書專業(yè) :計算機(jī) 設(shè)計時間 : 題目:文本編譯器一、 目的要求:軟件系統(tǒng)設(shè)計是計算機(jī)科學(xué)與技術(shù)專業(yè)實踐教學(xué)的一個重要環(huán)節(jié),其目的是鞏固和綜合應(yīng)用所學(xué)的軟件設(shè)計理論知識;培養(yǎng)學(xué)生設(shè)計應(yīng)用軟件、文獻(xiàn)查閱、報告撰寫等基本技能;培養(yǎng)分析、設(shè)計和解決實際問題的能力以及團(tuán)隊協(xié)作的精神,加強(qiáng)創(chuàng)新素質(zhì)教育。要求:采用面向?qū)ο蟮能浖_發(fā)方法或者結(jié)構(gòu)化生命周期方法,遵循系統(tǒng)開發(fā)的主要步驟,進(jìn)行需求分析、概要設(shè)計、詳細(xì)設(shè)計、代碼編寫、系
2、統(tǒng)調(diào)試、文檔編寫。最后演示系統(tǒng),提交設(shè)計說明書。二、 進(jìn)度安排:設(shè)計總共周。具體安排如下:選題,查資料,系統(tǒng)分析,代碼編寫;:軟件系統(tǒng)調(diào)試修改,撰寫說明書,答辯。三、 設(shè)計地點:四、 成績考核: 指導(dǎo)教師: 年 月 日 - I -目 錄軟件系統(tǒng)設(shè)計任務(wù)書I第1章 緒論11.1 開發(fā)背景11.2 國內(nèi)外現(xiàn)狀11.3目的和意義1第2章 相關(guān)技術(shù)32.1 Java簡介32.2 JDK技術(shù)簡介62.3 MyEclipse技術(shù)簡介7第3章 系統(tǒng)分析83.1 可行性分析83.1.1技術(shù)可行性83.1.2 經(jīng)濟(jì)可行性83.1.3 操作可行性83.2 需求分析83.2.1環(huán)境需求分析83.2.2 功能需求分析
3、9第4章 系統(tǒng)詳細(xì)設(shè)計104.1類或包的加載104.2主類的設(shè)計104.3文件操作功能的實現(xiàn)11第5章 系統(tǒng)運行145.1運行用例145.2文件用例145.3編輯用例155.4幫助用例155.5打開用例165.6保存用例165.7關(guān)于用例17結(jié) 論18致 謝19參考文獻(xiàn)20 - III - 第1章 緒論1.1 開發(fā)背景 隨著計算機(jī)的普及與發(fā)展,人們的工作與生活中心逐漸轉(zhuǎn)移到了計算機(jī)上。計算機(jī)的出現(xiàn)給人類社會帶來了第三次工業(yè)革命,計算機(jī)和計算機(jī)網(wǎng)絡(luò)已 經(jīng)深入到了各行各業(yè),各個領(lǐng)域,隨著 Internet 的不斷擴(kuò)大和發(fā)展,電腦網(wǎng)絡(luò)“把每一個國 家、每一個城市甚至每一個家庭連接到一起”,形成了一條
4、“信息高速路”,就像高速公路大 大提高了車輛行駛的速度一樣。 21 世紀(jì)是個信息化的時代,現(xiàn)代計算機(jī)技術(shù)的發(fā)展,為各 行各業(yè)的發(fā)展創(chuàng)造了一個全新的時代背景人們的生活、 工作等已經(jīng)越來越離不開計算機(jī) 科學(xué)的運用,而 Internet 的應(yīng)用加速了這種趨勢,人們越來越需要在互聯(lián)網(wǎng)上交流各種信 息和討論各種問題,而作為人們工作和生活的必須品文本編譯器應(yīng)運而生。文本編譯器幾乎滲透到了我們生活的方方面面。因此開發(fā)一個文本編譯器則變得很有必要,而且作為新一代的大學(xué)生,并且作為一個計算機(jī)專業(yè)的學(xué)生,學(xué)習(xí)掌握文本編譯器的編程過程和Java的相關(guān)知識很有必要,在這個過程中即跟隨了科技發(fā)展的前沿,又豐富了我們的學(xué)
5、習(xí)生活。1.2 國內(nèi)外現(xiàn)狀 自從世界上第一臺計算機(jī)發(fā)展出來開始,國外的計算機(jī)技術(shù)一直領(lǐng)先于國內(nèi)。即使是文本編譯器這種簡易的工具也反應(yīng)出了這種差距。在文本編輯器出現(xiàn)前,人們用打孔機(jī)把計算機(jī)文字打到穿孔卡片上。文字存放于一個裝著這樣的薄卡片的盒子里,可以用讀卡器來閱讀它。第一個文本編輯器是一種行編輯器,它運行在打字機(jī)型的終端上,這種編輯器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少打字量)。其中一個命令能夠把文件的指定部分通過打字機(jī)打印出來。編輯光標(biāo)是想象中的一個插入點,通過特殊命令,可以把它移動到特定內(nèi)容字符串所在的行。隨后,內(nèi)容字符串又被擴(kuò)展成正則表達(dá)式。如果想看到文件
6、的變化,你需要把它打印出來。相對于穿孔機(jī)來說,人們認(rèn)為這種基于行的文本編輯器具有革命性的進(jìn)步。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯文件時使用這些卡片。當(dāng)帶有顯示屏的計算機(jī)終端出現(xiàn)后,基于顯示屏的文本編輯器開始流行起來。如今文本編譯器已經(jīng)成為了每一個電腦工作者所必不可少的工具,在國外文本編譯器這種簡單的工具幾乎人人都會用,大部分人都可以自主開發(fā)編寫自己的文本編譯器,然而在國內(nèi)大部分人還只停留在簡單的應(yīng)用上面。從這些小程序開始鍛煉自己的能力為以后國家計算機(jī)技術(shù)的發(fā)展貢獻(xiàn)出自己的一份力量。1.3目的和意義 Java程序設(shè)計課程設(shè)計是實踐性教學(xué)環(huán)節(jié)之一,是Java程序設(shè)計
7、課程的輔助教學(xué)課程。該課程設(shè)計要求學(xué)生綜合運用在Java程序設(shè)計課程中學(xué)到的知識與實際編程相結(jié)合,獨立完成一項較為完整、并具有一定實際功能的課程設(shè)計任務(wù),同時加深學(xué)生對Java編程技術(shù)的理解和掌握,培養(yǎng)實際的應(yīng)用程序開發(fā)能力。在課程設(shè)計過程中,使學(xué)生養(yǎng)成良好的程序設(shè)計風(fēng)格并掌握J(rèn)ava應(yīng)用程序的設(shè)計開發(fā)過程和編程方法、測試方法。本次設(shè)計的意義在于充分利用所學(xué)知識,通過老師的指導(dǎo)和查閱相關(guān)文獻(xiàn)書籍等方式,通過獨立自主的能力來實現(xiàn)本次研究的成功。并且使自身養(yǎng)成良好的程序設(shè)計風(fēng)格,掌握初步的Java程序設(shè)計開發(fā)過程和編程方法、測試方法。相信,在老師的指導(dǎo)和自身的努力下,本次研究將會取得圓滿成功。第2
8、章 相關(guān)技術(shù)2.1 Java簡介 Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。后來Sun公司被甲骨文公司并購,Java也隨之成為甲骨文公司的產(chǎn)品。 它最初被命名為Oak,目標(biāo)設(shè)定在家用
9、電器等小型系統(tǒng)的編程語言,來解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問題。由于這些智能化家電的市場需求沒有預(yù)期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。Java 編程語言的風(fēng)格十分接近C、C+語言。Java是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了 C+ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C +語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再
10、被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。Java 不同于一般的編譯執(zhí)行計算機(jī)語言和解釋執(zhí)行計算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大幅提升。與傳
11、統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計的 Java 開發(fā)公司被要求所設(shè)計的 Java 軟件必須相互兼容。“Java 語言靠群體的力量而非公司的力量”是 Sun 公司的口號之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。Sun 公司對 Java 編程語言的解釋是:Java 編程語言是個簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。Java 平臺是基于 Java 語言的平臺。這樣的平臺非常流行,因此微軟公司推出了與之競爭的.NET平臺以及模仿 Java 的 C#語言。J
12、ava是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言。具體來說,它具有如下特性: 簡單性、面向?qū)ο蟆⒎植际?、解釋型、可靠、安全、平臺無關(guān)、可移植、高性能、多線程、動態(tài)性等。 下面我們將重點介紹Java語言的面向?qū)ο蟆⑵脚_無關(guān)、分布式、多線程、可靠和安全等特性。 (1) 面向?qū)ο?面向?qū)ο笃鋵嵤乾F(xiàn)實世界模型的自然延伸?,F(xiàn)實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現(xiàn)實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。如果說傳統(tǒng)的過程式編程語言是以過程為中心以算法為驅(qū)動的話,面向?qū)ο蟮木幊陶Z言則是以對象為中心以消息為驅(qū)動。用公式表示,過程式編程語言為:程序
13、=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=對象+消息。 所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外。現(xiàn)實世界中的對象均有屬性和行為,映射到計算機(jī)程序上,屬性則表示對象的數(shù)據(jù),行為表示對象的方法(其作用是處理數(shù)據(jù)或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數(shù)據(jù)和方法聯(lián)在一起形成一個整體??梢哉f,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強(qiáng),因為Java無全程變量,無主函數(shù),在Java中絕大部分成員是對象,只有簡單的數(shù)字類型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應(yīng)的對象類型以便與其他對象交互操作。 多態(tài)性就是多種表現(xiàn)形
14、式,具體來說,可以用“一個對外接口,多個內(nèi)在實現(xiàn)方法”表示。舉一個例子,計算機(jī)中的堆??梢源鎯Ω鞣N格式的數(shù)據(jù),包括整型,浮點或字符。不管存儲的是何種數(shù)據(jù),堆棧的算法實現(xiàn)是一樣的。針對不同的數(shù)據(jù)類型,編程人員不必手工選擇,只需使用統(tǒng)一接口名,系統(tǒng)可自動選擇。運算符重載(operatoroverload)一直被認(rèn)為是一種優(yōu)秀的多態(tài)機(jī)制體現(xiàn),但由于考慮到它會使程序變得難以理解,所以Java最后還是把它取消了。 繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,因此
15、,汽車是它們的“父親”,而這些子實體則是汽車的“孩子”。Java提供給用戶一系列類(class),Java的類有層次結(jié)構(gòu),子類可以繼承父類的屬性和方法。與另外一些面向?qū)ο缶幊陶Z言不同,Java只支持單一繼承。 (2)平臺無關(guān)性 Java是平臺無關(guān)的語言是指用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上運行。平臺無關(guān)有兩種:源代碼級和目標(biāo)代碼級。C和C+具有一定程度的源代碼級平臺無關(guān),表明用C或C+寫的應(yīng)用程序不用修改只需重新編譯就可以在不同平臺上運行。 Java主要靠Java虛擬機(jī)(JVM)在目標(biāo)碼級實現(xiàn)平臺無關(guān)性。JVM是一種抽象機(jī)器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機(jī)器指令
16、,并有自己的棧、寄存器組等。但JVM通常是在軟件上而不是在硬件上實現(xiàn)。(目前,SUN系統(tǒng)公司已經(jīng)設(shè)計實現(xiàn)了Java芯片,主要使用在網(wǎng)絡(luò)計算機(jī)NC上。 另外,Java芯片的出現(xiàn)也會使Java更容易嵌入到家用電器中。)JVM是Java平臺無關(guān)的基礎(chǔ),在JVM上,有一個Java解釋器用來解釋Java編譯器編譯后的程序。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節(jié)代碼。任何一臺機(jī)器只要配備了Java解釋器,就可以運行這個程序,而不管這種字節(jié)碼是在何種平臺上生成的。另外,Java采用的是基于IEEE標(biāo)準(zhǔn)的數(shù)據(jù)類型。通過JVM保證數(shù)據(jù)類型的一致性,也確保了Java的
17、平臺無關(guān)性。 Java的平臺無關(guān)性具有深遠(yuǎn)意義。首先,它使得編程人員所夢寐以求的事情(開發(fā)一次軟件在任意平臺上運行)變成事實,這將大大加快和促進(jìn)軟件產(chǎn)品的開發(fā)。其次Java的平臺無關(guān)性正好迎合了“網(wǎng)絡(luò)計算機(jī)”思想。如果大量常用的應(yīng)用軟件(如字處理軟件等)都用Java重新編寫,并且放在某個Internet服務(wù)器上,那么具有NC的用戶將不需要占用大量空間安裝軟件,他們只需要一個Java解釋器,每當(dāng)需要使用某種應(yīng)用軟件時,下載該軟件的字節(jié)代碼即可,運行結(jié)果也可以發(fā)回服務(wù)器。目前,已有數(shù)家公司開始使用這種新型的計算模式構(gòu)筑自己的企業(yè)信息系統(tǒng)。 (3)分布式 分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)
18、據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上,操作分布是指把一個計算分散在不同主機(jī)上處理。 Java支持WWW客戶機(jī)/服務(wù)器計算模式,因此,它支持這兩種分布性。對于前者,Java提供了一個叫作URL的對象,利用這個對象,你可以打開并訪問具有相同URL地址上的對象,訪問方式與訪問本地文件系統(tǒng)相同。對于后者,Java的applet小程序可以從服務(wù)器下載到客戶端,即部分計算在客戶端進(jìn)行,提高系統(tǒng)執(zhí)行效率。 Java提供了一整套網(wǎng)絡(luò)類庫,開發(fā)人員可以利用類庫進(jìn)行網(wǎng)絡(luò)程序設(shè)計,方便得實現(xiàn)Java的分布式特性。 (4)可靠性和安全性 Java最初設(shè)計目的是應(yīng)用于電子類消費產(chǎn)品,因此要求較高的可靠性。Java雖然源于C+,
19、但它消除了許多C+不可靠因素,可以防止許多編程錯誤。首先,Java是強(qiáng)類型的語言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內(nèi)存的非法訪問;第三,Java的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題;第四,Java解釋器運行時實施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界,最后,Java提供了異常處理機(jī)制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務(wù)便于恢復(fù)。 由于Java主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險。Java通過自己的安全機(jī)制防止了病
20、毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java字節(jié)碼進(jìn)入解釋器時,首先必須經(jīng)過字節(jié)碼校驗器的檢查,然后,Java解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來自網(wǎng)絡(luò)的類裝載到單獨的內(nèi)存區(qū)域,避免應(yīng)用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問某些文件系統(tǒng)。 上述幾種機(jī)制結(jié)合起來,使得Java成為安全的編程語言。 (5)多線程 線程是操作系統(tǒng)的一種新概念,它又被稱作輕量進(jìn)程,是比傳統(tǒng)進(jìn)程更小的可并發(fā)執(zhí)行的單位。 C和C+采用單線程體系結(jié)構(gòu),而Java卻提供了多線程支持。 Java在兩方面支持多線程。一方面,Java環(huán)境本身就是多線程的。若干個系統(tǒng)線程運
21、行負(fù)責(zé)必要的無用單元回收,系統(tǒng)維護(hù)等系統(tǒng)級操作;另一方面,Java語言內(nèi)置多線程控制,可以大大簡化多線程應(yīng)用程序開發(fā)。Java提供了一個類Thread,由它負(fù)責(zé)啟動運行,終止線程,并可檢查線程狀態(tài)。Java的線程還包括一組同步原語。這些原語負(fù)責(zé)對線程實行并發(fā)控制。利用Java的多線程編程接口,開發(fā)人員可以方便得寫出支持多線程的應(yīng)用程序,提高程序執(zhí)行效率。必須注意地是,Java的多線程支持在一定程度上受運行時支持平臺的限制。例如,如果操作系統(tǒng)本身不支持多線程,Java的多線程特性可能就表現(xiàn)不出來。2.2 JDK技術(shù)簡介 JDK(Java Development Kit)是Sun Microsys
22、tems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。JDK 是整個Java的核心,包括了Jav運行環(huán)境(Java Runtime Envirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(Java Virt
23、ual Machine)運行效率要比Sun JDK包含的JVM高出許多。而專門運行在x86平臺的JrocKet在服務(wù)端運行效率也要比Sun JDK好很多。但不管怎么說,我們還是需要先把Sun JDK掌握好。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本信息也不再延續(xù)以前的1.2,1.3,1.4,而是變成了5.0,6.0了。從6.0開始,其運行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。 JDK包含的基本組件包括: javac 編譯器,將源程序轉(zhuǎn)成字節(jié)碼 jar 打包工具,將相關(guān)的類文件打包成一個文件 javadoc 文檔生成器,從源碼注釋中提取文檔 jdb debugger,
24、查錯工具 JDK中還包括完整的JRE(Java Runtime Environment,Java運行環(huán)境),也被稱為private runtime。包括了用于產(chǎn)品環(huán)境的各種庫類,以及給開發(fā)員使用的補(bǔ)充庫,如國際化的庫、IDL庫。 JDK中還包括各種例子程序,用以展示Java API中的各部分。 從初學(xué)者角度來看,采用JDK開發(fā)Java程序能夠很快理解程序中各部分代碼之間的關(guān)系,有利于理解Java面向?qū)ο蟮脑O(shè)計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規(guī)模企業(yè)級Java應(yīng)用開發(fā)非常困難,不能進(jìn)行復(fù)雜的Java
25、軟件開發(fā),也不利于團(tuán)體協(xié)同開發(fā)。 JDK一般有三種版本: SE(J2SE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個版本 EE(J2EE),enterpsise edtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序, ME(J2ME),micro edtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序 Java開發(fā)工具(JDK)是許多Java專家最初使用的開發(fā)環(huán)境。盡管許多編程人員已經(jīng)使用第三方的開發(fā)工具,但JDK仍被當(dāng)作Java開發(fā)的重要工具。JDK由一個標(biāo)準(zhǔn)類庫和一組建立,測試及建立文檔的Java實用程序組成。其核心Java API是一些預(yù)定義的類庫,開發(fā)人
26、員需要用這些類來訪問Java語言的功能。Java API包括一些重要的語言結(jié)構(gòu)以及基本圖形,網(wǎng)絡(luò)和文件I/O。一般來說,Java API的非I/O部分對于運行Java的所有平臺是相同的,而I/O部分則僅在通用Java環(huán)境中實現(xiàn)。作為JDK實用程序,工具庫中有七種主要程序。Javac:Java編譯器,將Java源代碼轉(zhuǎn)換成字節(jié)碼。 Java:Java解釋器,直接從類文件執(zhí)行Java應(yīng)用程序字節(jié)代碼。appletviewer:小程序瀏覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。Javadoc:根據(jù)Java源碼及說明語句生成HTML文檔。 Jdb:Java調(diào)試器,可以逐行執(zhí)行程序,
27、設(shè)置斷點和檢查變量。 Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。 Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時顯示字節(jié)代碼含義。2.3 MyEclipse技術(shù)簡介 MyEclipse企業(yè)級工作平臺(My Eclipse Enterprise Workbench,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,C
28、SS,Javascript,SQL,Hibernate。MyEclipse是基于Eclipse開發(fā)的功能強(qiáng)大的企業(yè)級集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動應(yīng)用的開發(fā)。據(jù)官方介紹,諸如三星、IBM、戴爾、惠普、花旗集團(tuán)、西門子、斯坦福大學(xué)、波音公司等知名機(jī)構(gòu)均使用MyEclipse進(jìn)行Java、JavaEE開發(fā),80%以上的全球財富100強(qiáng)企業(yè)均是MyEclipse的用戶。 MyEclipse提供了對UML、Ajax、Web、Web Services、J2EE、JSP、XML、Struts、JSF、Java Persistence、 EJB、擴(kuò)展數(shù)據(jù)庫以及各種應(yīng)用服務(wù)器的集成支持
29、。MyEclipse也全面支持各種主流的第三方框架,讓你能夠快速高效地進(jìn)行開發(fā)工作。此外,MyEclipse還全面支持各種基于Eclipse平臺的插件,允許你自由定制或擴(kuò)展個性化功能。 MyEclipse全面支持Eclipse開源平臺的所有功能特性,如果你熟悉Eclipse,那么你能夠輕松地上手MyEclipse,包括熟悉的Eclipse快捷鍵,而且使用MyEclipse完成某項任務(wù)往往要比使用Eclipse更加快速、簡單。 在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類: (1)JavaEE模型 (2)WEB開發(fā)工具 (3)EJB開發(fā)工具 (4)應(yīng)用程序服務(wù)器的連接器 (5)JavaEE項
30、目部署服務(wù) (6)數(shù)據(jù)庫服務(wù) (7)MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨的擴(kuò)展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。 第3章 系統(tǒng)分析3.1 可行性分析可行性分析是通過對項目的主要內(nèi)容和配置條件,從技術(shù),
31、經(jīng)濟(jì),操作等方面進(jìn)行調(diào)查研究和分析比較,并對項目建成以后可能取得的財務(wù),經(jīng)濟(jì)效益及社會環(huán)境影響進(jìn)行預(yù)測,從而提出該項目是否值得投資和如何進(jìn)行建設(shè)的咨詢意見,為項目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行苑治鰬?yīng)具有預(yù)見性,公正性,可靠性,科學(xué)性的特點。文本編譯器基本設(shè)計思路是把系統(tǒng)按照實現(xiàn)模塊進(jìn)行分解,利用Java進(jìn)行編程。3.1.1技術(shù)可行性 該系統(tǒng)使用Java語言編寫,MyEclipse開發(fā)。由于Java語言使用靈活,功能強(qiáng)大,目前市場上相當(dāng)多的程序和軟件都是使用Java語言和MyEclipse來編寫開發(fā)的,Java語言和MyEclipse技術(shù)已經(jīng)相當(dāng)成熟,這充分說明了該系統(tǒng)在技術(shù)方面
32、的可行性。3.1.2 經(jīng)濟(jì)可行性該系統(tǒng)使用的開發(fā)工具完全免費,在其開發(fā)過程中幾乎不需要任何經(jīng)費,而且以其簡單和功能齊全的特點,預(yù)計該系統(tǒng)必將受到廣大使用者的歡迎,這充分說明了該系統(tǒng)在經(jīng)濟(jì)方面的可行性。3.1.3 操作可行性 該系統(tǒng)設(shè)計的界面簡單明了,使用者完全可以根據(jù)界面上按鈕的信息完成所需的操作,功能全面,操作簡單。這充分說明了該系統(tǒng)在操作方面的可行性。3.2 需求分析在科學(xué)技術(shù)飛速發(fā)展的今天,計算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。應(yīng)用JAVA技術(shù)實現(xiàn)學(xué)生學(xué)習(xí)實踐是可行而必要的工作 。在社會生活中我們經(jīng)常需要用電腦編寫一些文檔來
33、保存文件,本課程設(shè)計是運用了JAVA軟件開發(fā)工具開發(fā)的應(yīng)用軟件。適合編寫記錄文件。訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)Java語言的基本知識,熟練的完成問題分析、算法設(shè)計、編寫程序,求解出指定的問題。訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā)、鞏固、深化學(xué)生的理論知識提高編程水平,并在此過程中培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng),提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力。3.2.1環(huán)境需求分析 由于本程序是運用JAVA語言編成的所以首先必須在電腦上安裝JAVA虛擬機(jī),并對環(huán)境變量進(jìn)行設(shè)置。完成JAVA的環(huán)境設(shè)置后,在集成環(huán)境Eclipse中進(jìn)行編程。3.2.2 功能需求分析 本程序要構(gòu)建的記
34、事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個方面: (1)菜單欄中有“文件”,“編輯”,“幫助”四個主菜單; (2)文件菜單中有“新建”,“打開”,“保存”,“退出”四個菜單項:分別用來新建文件,打開文件,保存文件和退出編譯器; (3)編輯菜單中有“剪切”,“拷貝”,“粘貼”三個菜單項:分別用來剪切所選文件,拷貝所選文件,粘貼所選文件; (4)幫助菜單中有“關(guān)于”一個菜單項:用于輸出文本編譯器的作者信息。 系統(tǒng)功能模塊框圖3-1如下: 新建 拷貝 粘貼 打開“幫助”菜單文本編譯器“編輯”菜單“文件”菜單 保存 關(guān)于 剪切 退出 圖3-1 功能模塊框圖 第4章 系統(tǒng)詳細(xì)設(shè)計
35、4.1類或包的加載 import java.awt.*; import java.awt.event.*;import java.io.*;import javax.swing.*; import javax.swing.text.*;4.2主類的設(shè)計 public class EditorDemo extends JFrame JTextPane textPane = new JTextPane(); /文本窗格,編輯窗口 JLabel statusBar = new JLabel(); /狀態(tài)欄 JFileChooser filechooser = new JFileChooser();
36、/文件選擇器public EditorDemo() /構(gòu)造函數(shù) super(文件編譯器); /調(diào)用父類構(gòu)造函數(shù) Action actions = /Action數(shù)組,各種操作命令 new NewAction(), new OpenAction(), new SaveAction(), new CutAction(), new CopyAction(), new PasteAction(), new AboutAction(), new ExitAction(); setJMenuBar(createJMenuBar(actions); /設(shè)置菜單欄 Container container =
37、getContentPane(); /得到容器 container.add(textPane, BorderLayout.CENTER); /增加文本窗格 container.add(statusBar, BorderLayout.SOUTH); /增加狀態(tài)欄 setSize(400, 500); /設(shè)置窗口尺寸 setVisible(true); /設(shè)置窗口可視 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /關(guān)閉窗口時退出程序 private JMenuBar createJMenuBar(Action actions) /創(chuàng)建菜單欄 JM
38、enuBar menubar = new JMenuBar(); /實例化菜單欄 JMenu menuFile = new JMenu(文件); /實例化菜單 JMenu menuEdit = new JMenu(編輯); JMenu menuAbout = new JMenu(幫助); menuFile.add(new JMenuItem(actions0); /增加新菜單項 menuFile.add(new JMenuItem(actions1); menuFile.add(new JMenuItem(actions2); menuFile.add(new JMenuItem(action
39、s7); menuEdit.add(new JMenuItem(actions3); menuEdit.add(new JMenuItem(actions4); menuEdit.add(new JMenuItem(actions5); menuAbout.add(new JMenuItem(actions6); menubar.add(menuFile); /增加菜單 menubar.add(menuEdit); menubar.add(menuAbout); return menubar; /返回菜單欄 4.3文件操作功能的實現(xiàn) class NewAction extends Abstra
40、ctAction /新建文件命令 public NewAction() super(新建); public void actionPerformed(ActionEvent e) textPane.setDocument(new DefaultStyledDocument(); /清空文檔 class OpenAction extends AbstractAction /打開文件命令 public OpenAction() super(打開); public void actionPerformed(ActionEvent e) int i = filechooser.showOpenDial
41、og(EditorDemo.this); /顯示打開文件對話框 if (i = JFileChooser.APPROVE_OPTION) /點擊對話框中打開選 項 File f = filechooser.getSelectedFile(); /得到選擇的文件 try InputStream is = new FileInputStream(f); /得到文件輸入流 textPane.read(is, d); /讀入文件到文本窗格 catch (Exception ex) ex.printStackTrace(); /輸出出錯信息 class SaveAction extends Abstra
42、ctAction /保存命令 public SaveAction() super(保存); public void actionPerformed(ActionEvent e) int i = filechooser.showSaveDialog(EditorDemo.this); /顯示保存文件對話框 if (i = JFileChooser.APPROVE_OPTION) /點擊對話框中保存按鈕 File f = filechooser.getSelectedFile(); /得到選擇的文件 try FileOutputStream out = new FileOutputStream(f
43、); /得到文件輸出流 out.write(textPane.getText().getBytes(); /寫出文件 catch (Exception ex) ex.printStackTrace(); /輸出出錯信息 class ExitAction extends AbstractAction /退出命令 public ExitAction() super(退出); public void actionPerformed(ActionEvent e) System.exit(0); /退出程序 class CutAction extends AbstractAction /剪切命令 pub
44、lic CutAction() super(剪切); public void actionPerformed(ActionEvent e) textPane.cut(); /調(diào)用文本窗格的剪切命令 class CopyAction extends AbstractAction /拷貝命令 public CopyAction() super(拷貝); public void actionPerformed(ActionEvent e) textPane.copy(); /調(diào)用文本窗格的拷貝命令 class PasteAction extends AbstractAction /粘貼命令 publ
45、ic PasteAction() super(粘貼); public void actionPerformed(ActionEvent e) textPane.paste(); /調(diào)用文本窗格的粘貼命令 class AboutAction extends AbstractAction /關(guān)于選項命令 public AboutAction() super(關(guān)于); public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(EditorDemo.this, 文本編輯器演示-易滿滿); /顯示軟件信息 public static void main(String args) new E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度危險化學(xué)品儲存安全合同書模板3篇
- 教育領(lǐng)域中的農(nóng)業(yè)科技應(yīng)用與實踐
- 二零二五年度車庫門行業(yè)信息化建設(shè)與支持合同4篇
- 生物醫(yī)學(xué)工程專業(yè)人才需求與培養(yǎng)方案
- 二零二五年度尊享不過戶二手房買賣合同3篇
- 2025年度個人所得稅贍養(yǎng)老人專項附加扣除協(xié)議執(zhí)行細(xì)則3篇
- 2025年度個人二手房購房合同范本及稅費代繳服務(wù)協(xié)議3篇
- AI驅(qū)動的智能醫(yī)療設(shè)備進(jìn)展報告
- 科技驅(qū)動的小學(xué)道德與法治教育變革
- 珠海廣東珠海市斗門區(qū)人民法院特邀調(diào)解員招聘10人筆試歷年參考題庫附帶答案詳解
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習(xí)單位鑒定表(模板)
- 六西格瑪(6Sigma)詳解及實際案例分析
- 機(jī)械制造技術(shù)-成都工業(yè)學(xué)院中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
- 2023年常州市新課結(jié)束考試九年級數(shù)學(xué)試卷(含答案)
- 正常分娩 分娩機(jī)制 助產(chǎn)學(xué)課件
評論
0/150
提交評論