




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