<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁>軟件介紹>智能辦公軟件開發(fā)平臺(tái) 查詢:
               
          智能辦公軟件開發(fā)平臺(tái)

                  Word的普遍性已經(jīng)是人所共知的,它作為最流行的文字處理軟件,有很多功能和特點(diǎn),所見即所得是其主要的特點(diǎn)。另外,word軟件可以編輯文字圖形,圖像,聲音,動(dòng)畫。Word不僅可以自動(dòng)制表,還可以手動(dòng)制表。用word軟件制作表格,既輕松又美觀,即快捷又方便。 

                  Java語言以簡單,面向?qū)ο?,健壯,多線程,體系結(jié)構(gòu)中立,解釋執(zhí)行,高性能,分布式,動(dòng)態(tài)等特點(diǎn)成為現(xiàn)今主流編程語言之一。我們選擇java swing技術(shù)及其開源組件Itext來處理word相關(guān)的生成和制作。 

                  本文首先介紹軟件產(chǎn)生的背景,然后對(duì)軟件的主要模塊進(jìn)行詳細(xì)分析。Java是可以跨平臺(tái),并且是開放源代碼的,它本身類庫也是很豐富的,我們選擇Itext來處理word表格的生成和數(shù)據(jù)的處理。本軟件設(shè)計(jì)用到了command模式來封裝請(qǐng)求,對(duì)于每一個(gè)模塊都做了封裝。  

                  1、引言 

                  Word作為最流行的文字處理軟件,是Microsoft公司的一個(gè)文字處理器應(yīng)用程序。它最初是由Richard Brodie為了運(yùn)行DOS的IBM計(jì)算機(jī)而在1983年編寫的。隨后的版本可運(yùn)行于Apple Macintosh (1984年), SCO UNIX,和Microsoft Windows (1989年),并成為了Microsoft Office的一部分Word的主要功能與特點(diǎn)可以概括為如下幾點(diǎn): 

                  所見即所得——用戶用Word軟件編排文檔,使得打印效果在屏幕上一目了然。直觀的操作界面——Word軟件界面友好,提供了豐富多彩的工具,利用鼠標(biāo)就可以完成選擇,排版等操作。 

                  多媒體混排——用Word軟件可以編輯文字圖形、圖像、聲音、動(dòng)畫,還可以插入其它軟件制作的信息,也可以用Word軟件提供的繪圖工具進(jìn)行圖形制作,編輯藝術(shù)字,數(shù)學(xué)公式,能夠滿足用戶的各種文檔處理要求。 

                  強(qiáng)大的制表功能——Word軟件提供了強(qiáng)大的制表功能,不僅可以自動(dòng)制表,也可以手動(dòng)制表。Word的表格線自動(dòng)保護(hù),表格中的數(shù)據(jù)可以自動(dòng)計(jì)算,表格還可以進(jìn)行各種修飾。在Word軟件中,還可以直接插入電子表格。用Word軟件制作表格,既輕松又美觀,既快捷又方便。 

                  自動(dòng)功能——Word軟件提供了拼寫和語法檢查功能,提高了英文文章編輯的正確性,如果發(fā)現(xiàn)語法錯(cuò)誤或拼寫錯(cuò)誤,Word軟件還提供修正的建議。 

                  Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性以及廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。  

                  2、概述 

                  2.1 問題的提出 

                  由于word的廣泛適用性,基于word處理的表格和數(shù)據(jù)模板很多。辦公軟件在老師的日常生活中也是基礎(chǔ)的應(yīng)用,像每學(xué)期一次的教學(xué)工作量的學(xué)時(shí)計(jì)算和表格的繪制跟每年的畢業(yè)論文考核表等,有了電腦我們更希望其自動(dòng)化的制作我們所需要的模板,用戶只需要關(guān)心其要輸入的數(shù)據(jù),即原始數(shù)據(jù),而不必浪費(fèi)時(shí)間在數(shù)據(jù)的計(jì)算、表格的繪制以及一些固定文字的輸入等方面,這樣就大大地提高了用戶的工作效率跟質(zhì)量。我們盡可能的利用計(jì)算機(jī)的特點(diǎn),把一些重復(fù)而有不需要太多邏輯的任務(wù)讓計(jì)算機(jī)來處理。 

                  但是像word這個(gè)不開放源代碼的軟件,Microsoft本來就是把它當(dāng)作一個(gè)商業(yè)的軟件來制作,我們選擇java來處理word表格的生成,使用的開源組件就是Itext組件。它主要處理PDF的但是對(duì)于rtf格式也兼容。由于word內(nèi)部使用的是RTF格式,這種格式是許多軟件都能夠識(shí)別的文件格式。所以我們根據(jù)老師的需求可以定制一個(gè)軟件專門生成一個(gè)word表格來計(jì)算教學(xué)工作量(根據(jù)老師輸入的信息,來自動(dòng)計(jì)算其所需要的課時(shí),并生產(chǎn)一個(gè)word表格文件)跟三個(gè)考核表(即外文翻譯考核表,文獻(xiàn)綜述考核表,畢業(yè)論文考核表,根據(jù)老師輸入的分?jǐn)?shù),自動(dòng)生成教師評(píng)語)。 

                  2.2解決方案 

                  要開發(fā)一個(gè)簡單的word表格文檔生成工具,并根據(jù)需要的信息自動(dòng)計(jì)算出數(shù)據(jù)填充到表格里面。我們可以分以下幾步進(jìn)行: 

                  第一、UI設(shè)計(jì): 基于需求用java swing工具包來繪制出所需要的界面原型。需要一個(gè)用戶輸入基本信息的基本信息面板和一個(gè)輸入信息的主面板?;拘畔⒚姘逯饕薪處熜畔?,文件路徑,學(xué)生學(xué)號(hào)等,主面板主要有課堂與實(shí)驗(yàn)教學(xué)的考核,以及三大考核表。 

                  第二、實(shí)體類設(shè)計(jì):根據(jù)需求抽象出來Course、CourseTyp、Teacher 等實(shí)體類來更形象的面像對(duì)象設(shè)計(jì)。通過實(shí)體類和他們直接的關(guān)聯(lián)關(guān)系把業(yè)務(wù)邏輯封裝起來,實(shí)現(xiàn)系統(tǒng)的松耦合和高內(nèi)聚。 

                  第三、請(qǐng)求的封裝和應(yīng)答的處理:為了實(shí)現(xiàn)軟件設(shè)計(jì)的基本原則,一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開發(fā),對(duì)修改關(guān)閉.說的是,再設(shè)計(jì)一個(gè)模塊的時(shí)候,應(yīng)當(dāng)使這個(gè)模塊可以在不被修改的前提下被擴(kuò)展.換言之,應(yīng)當(dāng)可以在不必修改源代碼的情況下改變這個(gè)模塊的行為,在保持系統(tǒng)一定穩(wěn)定性的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行擴(kuò)展。這是面向?qū)ο笤O(shè)計(jì)(OOD)的基石,也是最重要的原則。主要應(yīng)用command模式來實(shí)現(xiàn)請(qǐng)求和應(yīng)答的處理。 

                  第四、后臺(tái)服務(wù)設(shè)計(jì):對(duì)于每一個(gè)封裝的請(qǐng)求,統(tǒng)一的有一個(gè)service處理請(qǐng)求,調(diào)用生產(chǎn)word表格的模塊。 

                  第五、word文件生成: word表格的處理對(duì)于整個(gè)軟件設(shè)計(jì)來說占了很大的部分,我們主要是調(diào)用itext組件來實(shí)現(xiàn)word文檔的生成,iText是一個(gè)開放源碼的Java類庫,可以用來方便地生成PDF文件,也可以生成rtf格式的文檔,對(duì)于word的處理我們可以使用其生成。根據(jù)用戶輸入的信息,計(jì)算并填充輸入的表格,生成一個(gè)doc格式的文檔。 

                  2.3開發(fā)工具和平臺(tái) 

                  我們的軟件是基于Eclipse 開發(fā)的,Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。 

                  目前大多數(shù)用戶都將 Eclipse 當(dāng)作 Java IDE 來使用,其開源和松耦合的特性一直很受追捧,基于Eclipse封裝的工具也很多。但是Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,所以的用戶都可以更加自己的需求,用Eclipse提供的API開發(fā)自己的插件集常見的ANT MAVEN。 

                  Eclipse采用的技術(shù)是IBM公司開發(fā)的(SWT),這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件;不過IBM聲稱SWT比其他Java窗口組件更有效率。Eclipse的用戶界面還使用了GUI中間層JFace,從而簡化了基于SWT的應(yīng)用程序的構(gòu)建。 

                  Eclipse的插件機(jī)制是輕型軟件組件化架構(gòu)。在富客戶機(jī)平臺(tái)上,Eclipse使用插件來提供所有的附加功能,例如支持Java以外的其他語 言。 已有的分離的插件已經(jīng)能夠支持C/C++(CDT)、Perl、Ruby,Python、telnet和數(shù)據(jù)庫開發(fā)。插件架構(gòu)能夠支持將任意的擴(kuò)展加入到 現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。 

                  Eclipse的設(shè)計(jì)思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本內(nèi)核包括:圖形API (SWT/Jface), Java開發(fā)環(huán)境插件(JDT ),插件開發(fā)環(huán)境(PDE)等。 

                  另外,在Eclipse平臺(tái)上封裝的工具也很多,比如Myeclipse,Portlet Factory 但是由于項(xiàng)目本身比較簡單,只是用到一些java基礎(chǔ)的特性,我們選擇使用Eclipse。  

                  2.3.1 面向?qū)ο蟪绦蚋攀?nbsp;

                  面向?qū)ο笃鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸?,F(xiàn)實(shí)世界中的任何實(shí)體都可以看作是對(duì)象。對(duì)象里面有可以包含對(duì)象,通過這種關(guān)系實(shí)現(xiàn)內(nèi)部的協(xié)作,對(duì)象之間也可以通過消息相互作用。另外,現(xiàn)實(shí)世界中任何實(shí)體都可以歸屬于某類事物,任何對(duì)象都是某一類事物的實(shí)例。如果說傳統(tǒng)的過程式編程語言是以過程為中心以算法為驅(qū)動(dòng)的話,面向?qū)ο蟮木幊陶Z言則是以對(duì)象為中心已消息為驅(qū)動(dòng)的。過程式編程語言為: 程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為: 程序=對(duì)象+消息[2]。 

                  面向?qū)ο蟪绦蛟O(shè)計(jì)把不常變的邏輯和常變的數(shù)據(jù)耦合起來,可以被視作一種在程序中包含各種獨(dú)立而又互相調(diào)用的單位和對(duì)象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計(jì)主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對(duì)電腦下達(dá)的指令。面向?qū)ο蟪绦蛟O(shè)計(jì)中的每一個(gè)對(duì)象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對(duì)象,因此它們都可以被看作一個(gè)小型的―機(jī)器‖??梢酝ㄟ^幾個(gè)直接協(xié)作來完成系統(tǒng)的調(diào)度和分工合作。 

                  目前面向?qū)ο蟪绦蛟O(shè)計(jì)使程序的靈活性和可維護(hù)性大大的增加了,并且在大型項(xiàng)目設(shè)計(jì)中廣為應(yīng)用。此外,支持者聲稱面向?qū)ο蟪绦蛟O(shè)計(jì)要比以往的做法更加便于學(xué)習(xí),因?yàn)樗軌蜃屓藗兏唵蔚卦O(shè)計(jì)并維護(hù)程序,使得業(yè)務(wù)邏輯更加便于分析、設(shè)計(jì)、理解。 

                  面向?qū)ο蟮乃膫€(gè)特征是:抽象,封裝,繼承,和 多態(tài) 。 

                  1、抽象 

                  抽象是人們認(rèn)識(shí)事物的常用方法,比如房屋的模型的繪制。我們天生下來便形成了對(duì)于世界上事物的概括和認(rèn)識(shí)。也是一個(gè)抽象的過程。抽象就是如何簡化、概括所觀察到的現(xiàn)實(shí)世界,并為人們所用的過程。抽象是軟件開發(fā)的基礎(chǔ)。軟件開發(fā)離不開現(xiàn)實(shí)環(huán)境,但需要對(duì)信息細(xì)節(jié)進(jìn)行提煉、抽象,找到事物的本質(zhì)和重要屬性。 

                  抽象包括兩個(gè)方面:過程抽象和數(shù)據(jù)抽象。過程抽象把一個(gè)系統(tǒng)按功能劃分成若干個(gè)子系統(tǒng),進(jìn)行"自頂向下逐步求精"的程序設(shè)計(jì)。數(shù)據(jù)抽象以數(shù)據(jù)為中心,把數(shù)據(jù)類型和施加在該類型對(duì)象上的操作作為一個(gè)整體(對(duì)象)來進(jìn)行描述,形成抽象數(shù)據(jù)類型ADT(abstract date type)。 

                  我們解決問題也是先把問題抽象到我們可以描述的語言上,所有編程語言的最終目的都是提供一種"抽象"方法。解決問題的復(fù)雜程度直接取決于抽象的種類及質(zhì)量。其中,"種類"是指準(zhǔn)備對(duì)什么進(jìn)行"抽象"。匯編語言是對(duì)基礎(chǔ)機(jī)器的少量抽象。后來的許多"命令式"語言(如FORTRAN、BASIC和C)是對(duì)匯編語言的一種抽象。與匯編語言相比,這些語言已有了較大的進(jìn)步,但它們的抽象原理依然要求程序設(shè)計(jì)者著重考慮計(jì)算機(jī)的結(jié)構(gòu),而非考慮問題本身的結(jié)構(gòu)。在機(jī)器模型(位于"方案空間")與實(shí)際解決的問題模型(位于"問題空間")之間,程序員必須建立起一種聯(lián)系。這個(gè)過程要求人們付出較大的精力,而且由于它脫離了編程語言本身的范圍,造成程序代碼很難編寫,而且要花較大的代價(jià)進(jìn)行維護(hù)。由此造成的副作用便是一門完善的"編程方法"學(xué)科。面向?qū)ο蟮某绦蛟O(shè)計(jì)在此基礎(chǔ)上則跨出了一大步,程序員可利用一些工具來表達(dá)問題空間內(nèi)的元素。由于這種表達(dá)非常普遍,所以不必受限于特定類型的問題。人們將問題空間中的元素以及它們?cè)诜桨缚臻g的表示物稱作"對(duì)象"。當(dāng)然,還有一些在問題空間沒有對(duì)應(yīng)體的其他對(duì)象。通過添加新的對(duì)象類型,程序可進(jìn)行靈活的調(diào)整,以便與特定的問題配合。所以在閱讀方案的描述代碼時(shí),會(huì)讀到對(duì)問題進(jìn)行表達(dá)的話語。與以前的方法相比,這無疑是一種更加靈活、更加強(qiáng)大的語言抽象方法。 

                  總之,OOP允許人們根據(jù)問題,而不是根據(jù)方案來描述問題。然而,仍有一個(gè)聯(lián)系途徑回到計(jì)算機(jī)。每個(gè)對(duì)象都類似一臺(tái)小計(jì)算機(jī);它們有自己的狀態(tài),而且可要求它們進(jìn)行特定的操作。與現(xiàn)實(shí)世界的"對(duì)象"或者"物體"相比,編程"對(duì)象"與它們也存在共通的地方:它們都有自己的特征和行為。 

                  2、封裝 

                  封裝也是面向?qū)ο缶幊痰闹饕卣?,也是類和?duì)象的主要特征。封裝聯(lián)系了數(shù)據(jù)以及加在這些數(shù)據(jù)上的操作,封裝使數(shù)據(jù)變成相對(duì)于邏輯有意義的代表形式,成為有獨(dú)立意義的構(gòu)件。外部無法直接訪問這些封裝了的數(shù)據(jù),從而保證了這些數(shù)據(jù)的正確性。如果這些數(shù)據(jù)發(fā)生了差錯(cuò),也很容易定位錯(cuò)誤是由哪個(gè)操作引起的。 

                  如果外部需要訪問類里面的數(shù)據(jù),就必須通過接口或方法進(jìn)行訪問。接口規(guī)定了可對(duì)一個(gè)特定的對(duì)象發(fā)出哪些請(qǐng)求。當(dāng)然,必須在某個(gè)地方存在著一些代碼,以便滿足這些請(qǐng)求。這些代碼與那些隱藏起來的數(shù)據(jù)叫做"隱藏的實(shí)現(xiàn)"。站在過程化程序編寫的角度,整個(gè)問題并不顯得復(fù)雜。一種類型含有與每種可能的請(qǐng)求關(guān)聯(lián)起來的函數(shù)。一旦向?qū)ο蟀l(fā)出一個(gè)特定的請(qǐng)求,就會(huì)調(diào)用那個(gè)函數(shù)。通常將這個(gè)過程總結(jié)為向?qū)ο?quot;發(fā)送一條消息"。對(duì)象的職責(zé)就是決定如何對(duì)這條消息做出反應(yīng)。 

                  通常來說我們會(huì)遇到以下兩個(gè)問題來促使類的開發(fā)者控制數(shù)據(jù)的訪問。第一個(gè)原因是防止程序員接觸他們不該接觸的東西--通常是內(nèi)部數(shù)據(jù)類型的設(shè)計(jì)思想。若只是為了解決特定的問題,用戶只需操作接口即可,無需明白這些信息。類向用戶提供的實(shí)際是一種服務(wù)。第二個(gè)原因是允許庫設(shè)計(jì)人員修改內(nèi)部結(jié)構(gòu),不用擔(dān)心它會(huì)對(duì)客戶程序員造成什么影響。例如,編制者最開始可能設(shè)計(jì)了一個(gè)形式簡單的類,以便簡化開發(fā)。以后又決定進(jìn)行改寫,使其更快地運(yùn)行。若接口與實(shí)現(xiàn)方法早已隔離開,并分別受到保護(hù),就可放心做到這一點(diǎn),只要求用戶重新實(shí)現(xiàn)一下接口就可以。封裝考慮的是內(nèi)部實(shí)現(xiàn),抽象考慮的是外部行為。  

                  3、繼承 

                  繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,繼承實(shí)現(xiàn)了比較常變的邏輯和一些容易改變的邏輯得向下兼容。子類可以復(fù)用父類的不便邏輯,但是又要表明它與父類有哪些不同。子類可以從它的父類那里繼承方法和實(shí)例變量,并且子類可以修改或增加新的方法使之更適合特殊的需求。這也體現(xiàn)了大自然中一般與特殊的關(guān)系。繼承性很好地解決了軟件的可重用性問題。比如說,所有的Windows應(yīng)用程序都有一個(gè)窗口,它們可以看作都是從一個(gè)窗口類派生出來的。但是有的應(yīng)用程序用于文字處理,有的應(yīng)用程序用于繪圖,這是由于派生出了不同的子類,各個(gè)子類添加了不同的特性。 

                  4、多態(tài)性 

                  多態(tài)性允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。比如,同樣的選擇"編輯"、"粘貼"操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和運(yùn)行時(shí)多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的特點(diǎn),以下為對(duì)象的特征: 

                  (1)所有東西都是對(duì)象。對(duì)象可以看成一種新型變量,對(duì)象實(shí)現(xiàn)了不常變的邏輯和常變的數(shù)據(jù)的緊耦合,使其粒度更細(xì)。可從要解決的問題上,提出所有概念性的組件,然后在程序中將其表達(dá)為一個(gè)對(duì)象。 

                  (2)程序是一大堆對(duì)象的組合。目前軟件開發(fā)從面向過程到面向?qū)ο蟮矫嫦蚍罱K到了面向資源,實(shí)現(xiàn)了更廣意義上的復(fù)用和抽象。通過消息傳遞,各對(duì)象知道自己該做些什么。為了向?qū)ο蟀l(fā)出請(qǐng)求,需向那個(gè)對(duì)象"發(fā)送一條消息"。更具體地講,可將消息想象為一個(gè)調(diào)用請(qǐng)求,它調(diào)用的是從屬于目標(biāo)對(duì)象的一個(gè)子例程或函數(shù)。 

                  (3)對(duì)象方便的包裝了行為和狀態(tài),前者被暴露給外部世界,后者則為前者提供支持。對(duì)象的好處之一便是將程序中的所有的狀態(tài)分割成小塊,每一塊都有屬于自己的計(jì)算環(huán)境。 每個(gè)對(duì)象都有自己的存儲(chǔ)空間,可容納其他對(duì)象。通過封裝現(xiàn)有對(duì)象,可制作出新型對(duì)象。所以,盡管對(duì)象的概念非常簡單,但在程序中卻可達(dá)到任意高的復(fù)雜程度。相當(dāng)于現(xiàn)實(shí)中的房屋是一個(gè)對(duì)象,房屋里的桌子和床也是對(duì)象,他們之間是包含關(guān)系。 

                  2.3.2 利用java生成word文檔的優(yōu)勢(shì) 

                  Java是一種跨平臺(tái),適合于分布式計(jì)算環(huán)境的面向?qū)ο蟮木幊陶Z言。具體來說,它具有如下特性:簡單性、面向?qū)ο?、分布式、解釋型、可靠、安全、平臺(tái)無關(guān)、可移植、高性能、多線程、動(dòng)態(tài)性等。與C++等語言相比較,語法上Java是比較簡單的。 

                  Java提供了垃圾回收機(jī)制,以往C++的開發(fā)中,最容易出錯(cuò)誤的地方便是內(nèi)存管理,申請(qǐng)的內(nèi)存用完以后必須釋放,否則可使用的內(nèi)存資源越來越少,直至耗盡系統(tǒng)資源而造成死機(jī)。而Java系統(tǒng)中,你可以任意申請(qǐng)內(nèi)存,Java系統(tǒng)會(huì)在適當(dāng)?shù)臅r(shí)候自動(dòng)釋放無用的內(nèi)存資源。這個(gè)神奇的機(jī)制叫做“垃圾回收”。節(jié)約了很多調(diào)試錯(cuò)誤的時(shí)間,雖然這樣做極大的簡化了編程的難度,但是我們還是對(duì)于引用的變量用完之后把它指向空引用,為了性能考慮。 

                  一次編寫,隨處運(yùn)行,java標(biāo)榜的題最大的特點(diǎn),Java系統(tǒng)可以運(yùn)行在不同的操作系統(tǒng)和硬件上。隨著Linux的持續(xù)增長以及Mac OSX完全支持Java技術(shù),跨平臺(tái)的特性變得越來越有分量。由于Java跨平臺(tái),Java API自然也是平臺(tái)統(tǒng)一的。對(duì)程序員而言,沒有比統(tǒng)一的API函數(shù)能夠讓他們更欣慰的了,已經(jīng)有了圓形的輪子,何必再從頭發(fā)明輪子呢,我們拿Java API與C++的類庫相比便可以知道它的可貴之處。有Windows編程經(jīng)驗(yàn)的C++程序員肯定經(jīng)歷過被MFC(Microsoft Foundation Classes,微軟基類庫)折磨的日子,學(xué)習(xí)曲線陡峭,沒有若干個(gè)月根本無法開始生產(chǎn),一段時(shí)間不接觸遺忘率又高。據(jù)說,即使在微軟公司內(nèi)部,除了 MFC開發(fā)小組,誰都不樂意用它。即便你熟悉了MFC,能夠順利開發(fā)Windows應(yīng)用程序,如果你要編寫一個(gè)Linux應(yīng)用程序,MFC又派不上用場了,你必須學(xué)習(xí)Linux下C++開發(fā)的一套庫函數(shù)。還有UNIX、FreeBSD、Mac OS……你學(xué)得過來嗎,反觀Java API,操作系統(tǒng),忽略其底層實(shí)現(xiàn),只要編寫一次便可隨處運(yùn)行~ 

                  開源組織是無政府主義的夢(mèng)想?沒有政體,沒有所屬權(quán),言論與行動(dòng)自由,僅僅依靠渴望共享與交流的信仰及無私奉獻(xiàn)來維系。Java世界中,開源組織與非盈利機(jī)構(gòu)發(fā)揮到了極致,許多出色的工具都出自它們之手。比如JUnit、Tomcat、Struts、JBoss、Eclipse、 ANT、 AJAX、 Hibernate、 JSF等等,許多工具還會(huì)出現(xiàn)在我們的咖啡館中,扮演重要的角色。 

                  2.3.3 RTF格式簡介 

                  富文本格式(Rich Text Format)即RTF格式,又稱多文本格式,是由微軟公司開發(fā)的跨平臺(tái)文檔格式。大多數(shù)的文字處理軟件都能讀取和保存RTF文檔。  

                  RTF格式是很多軟件都能夠識(shí)別的文件格式。比如Word、WPS Office、Excel等都可以打開RTF格式的文件,這說明這種格式是比較通用的[2]。對(duì)于普通用戶而言,RTF格式是一個(gè)很好的文件格式轉(zhuǎn)換工具,用于在不同應(yīng)用程序之間進(jìn)行格式化文本文檔的傳送。因此我們也選用RTF格式作為word自己的替換格式。  

                  3、系統(tǒng)分析 

                  3.1系統(tǒng)可行性 

                  本系統(tǒng)的最終目的是實(shí)現(xiàn)一個(gè)簡單的word表格生成軟件。根據(jù)用戶提供的有關(guān)課時(shí)的信息及評(píng)分,來生成相應(yīng)的表格與考核表。我們主要調(diào)用Itext組件的相應(yīng)內(nèi)容,主要是com.lowagie.text來生成word表格 。對(duì)于面向用戶的界面設(shè)計(jì),我們主要使用Swing來繪制。Swing是由100%純Java實(shí)現(xiàn)的,Swing組件是用Java實(shí)現(xiàn)的輕量級(jí)(light-weight)組件,沒有本地代碼,不依賴操作系統(tǒng)的支持,這是它與AWT組件的最大區(qū)別。由于AWT組件通過與具體平臺(tái)相關(guān)的對(duì)等類(Peer)實(shí)現(xiàn),因此Swing比AWT組件具有更強(qiáng)的實(shí)用性。Swing在不同的平臺(tái)上表現(xiàn)一致,并且有能力提供本地窗口系統(tǒng)不支持的其它特性。Swing采用了一種MVC的設(shè)計(jì)范式,即"模型-視圖-控制"(Model-View-Controller),其中模型用來保存內(nèi)容,視圖用來顯示內(nèi)容,控制器用來控制用戶輸入。非常容易繪制,對(duì)于table的事件處理我們也可以很好的編寫。 

                  Itext中生成的rtf的類庫RtfWriter2 Document Table等都是對(duì)于現(xiàn)實(shí)例子的抽象,我們可以很好的利用這些封裝好的類庫來構(gòu)建自己的工具。對(duì)于整個(gè)的軟件實(shí)現(xiàn)來說我們還是可以實(shí)現(xiàn)的。 

                  3.2 系統(tǒng)應(yīng)達(dá)到的標(biāo)準(zhǔn) 

                  1、可操作性:簡單,快捷的操作,使用戶能夠在極短的時(shí)間內(nèi)上手操作。 

                  2、可靠性:能準(zhǔn)確無誤的處理界面發(fā)送的命令,發(fā)送和接收數(shù)據(jù)。 

                  3、可理解性:底層的控制面板和table面板使用戶更方便的使用該軟件,適當(dāng)?shù)奶崾靖幸子谟脩舨僮鳌?nbsp;

                  4、可維護(hù)性和適應(yīng)性:系統(tǒng)應(yīng)易于修改、易于擴(kuò)充、易于維護(hù),能夠適應(yīng)各種協(xié)議不斷變化的需要,而方便的做出更改。 

                  5、時(shí)間經(jīng)濟(jì)性:優(yōu)化邏輯設(shè)計(jì)與物理設(shè)計(jì),使系統(tǒng)運(yùn)行效率更高,反映速度更快。 

                  3.3軟件工作原理 

                  我們開發(fā)的是基于Java Swing 的桌面應(yīng)用程序,Swing中幾乎所有組件都是從JComponent衍生而來,也就是說這些組件都是lightweight Component,均由純java code所編寫面成 、Swing中以下幾個(gè)組件不是由JComponent繼承面來:JFrame(JRoot Pane)JDialog(JRoot Pane)我們不能在JRootPane上加入任何的組件,因?yàn)樗皇且粋€(gè)虛擬的容器,若要在最上層組件上加入組件,必須加在Layered Pane或是 Layered Pane里的Content Pane上。以JFrame為例,一般我們要在JFrame上加入其他組件(如JButton、JLabel等)必須先取得JFrame 的Content Pane,然后將要加入的組件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一個(gè)按鈕,不 能像以前AWT時(shí)一樣寫成frame.add(button)的形式,而必須先取得JFrame的Content Pane,然后將按鈕加入Content Pane中.組件必須加在容器中,而容器本身具有層次性的關(guān)系,就如同珠寶盒一般,大盒子里面可以放小盒子,小盒子里面還可以放更小的盒子,而珠寶就可以放 在某一個(gè)盒子中,這里的珠寶就代表組件,盒子就代表容器。因此若您想在JFrame加入任何組件時(shí),必須 先取得JFrame的容器來放置這些組件,而由于JFrame、JDialog、JWindow與JApplet是顯示Swing組件的源頭,我們可以稱它們?yōu)楦M件,也就是所謂的最上層組件。 

                  Swing大量的應(yīng)用了一些常用的模式,我們的軟件也是MVC的,Model View Control明確分工,基于swing的事件驅(qū)動(dòng)機(jī)制,當(dāng)界面一些按鈕和其他組件接受用戶的輸入信號(hào)時(shí),它會(huì)產(chǎn)生一個(gè)事件,向下傳遞,我們編寫事件處理的代碼,把整個(gè)的事件集中起來,封裝成一個(gè)請(qǐng)求,這樣可以不暴露一些細(xì)節(jié),更好的去維護(hù)[3],實(shí)體類直接的包裝。相互直接的協(xié)作。 

                  服務(wù)主要是調(diào)用一些組件來處理業(yè)務(wù)邏輯,比如標(biāo)準(zhǔn)時(shí)間的計(jì)算,全部時(shí)間的計(jì)算,根據(jù)課程的不同類型,找到其對(duì)應(yīng)的課程系數(shù),教學(xué)班級(jí)規(guī)模系數(shù)等,然后根據(jù)輸入的數(shù)據(jù)得到結(jié)果,我們?cè)谡{(diào)用Itext組件的相關(guān)的接口和類,來繪制word表格,把所需要的信息填充到表格內(nèi),按照需求得到一個(gè)完整的solution。最終生成word文檔。其中涉及到設(shè)計(jì)模式的使用,請(qǐng)求的封裝和處理軟件的流程圖  

                  4、系統(tǒng)模塊設(shè)計(jì) 

                  4.1 模塊組織圖 

                  本系統(tǒng)包含以下幾個(gè)模塊: 

                  1. 用戶操作界面模塊 

                  2. 用戶信息輸入模塊 

                  3. 服務(wù)模塊(請(qǐng)求封裝和處理) 

                  4. word表格繪制模塊 

                  4.2模塊功能介紹 

                  用戶信息輸入模塊: 

                  1、教師信息輸入 

                  2、文件存放路徑 

                  3、學(xué)生學(xué)號(hào)信息的輸入 

                  4、用戶生成word文檔的觸發(fā)按鈕其中,教師信息輸入中又包括姓名,出生年月,職稱,所在學(xué)院的輸入 

                  用戶操作界面模塊: 

                  1、課堂教學(xué) 

                  2、實(shí)驗(yàn)教學(xué) 

                  3、外文翻譯考核表 

                  4、文獻(xiàn)綜述考核表 

                  5、畢業(yè)論文考核表 

                  服務(wù)模塊: 

                  1、請(qǐng)求的封裝 

                  2、應(yīng)答的封裝 

                  3、接受服務(wù)的請(qǐng)求 

                  4、根據(jù)信息調(diào)用word生成模塊  

                  5、封裝應(yīng)答返回 

                  word表格繪制模塊: 

                  1、繪制word表格 

                  2、填充數(shù)據(jù) 

                  3、生成word文檔 

                  5、詳細(xì)設(shè)計(jì) 

                  5.1需求分析 

                  辦公word在老師的日常生活中也是基礎(chǔ)的應(yīng)用,像每年一次的教學(xué)工作量的學(xué)時(shí)計(jì)算和表格的繪制跟每年的畢業(yè)論文考核表等, 如果老師親自計(jì)算學(xué)時(shí)并且向word輸入文字跟數(shù)據(jù),而且有些操作都是繁雜的,這無疑很浪費(fèi)時(shí)間。 

                  有些老師因?yàn)榻?jīng)常出差或者年終時(shí)比較忙碌,而要從網(wǎng)上查找并下載外文翻譯,文獻(xiàn)綜述,畢業(yè)論文三個(gè)考核表,這也會(huì)耗費(fèi)老師們一些精力。為了使老師的工作變得輕松些,我設(shè)計(jì)了這個(gè)軟件來自動(dòng)的生成三大考核表并且設(shè)計(jì)了三大考核表評(píng)語模版。老師只需要點(diǎn)擊軟件便可以生成三大考核表,并且還可以通過評(píng)語模版生成評(píng)語,再針對(duì)每個(gè)同學(xué)進(jìn)行修改就可以了,大大方便了老師們的工作。 

                  功能需求分析: 

                  1、教學(xué)工作量的計(jì)算及word的生成 

                  2、外文考核表的生成 

                  3、文獻(xiàn)綜述考核表的生成 

                  4、畢業(yè)論文考核表的生成 

                  5.2實(shí)體類設(shè)計(jì) 

                  我們根據(jù)需求設(shè)計(jì)了三個(gè)實(shí)體類: 

                  老師的實(shí)體有四個(gè)屬性 

                  類圖如下:  

                  toArray()方法返回一個(gè)Teacher類的數(shù)組形式 

                  Course類代表一個(gè)課程的信息,包括 

                  課程名稱,計(jì)劃學(xué)時(shí)數(shù), 學(xué)生人數(shù),課程類別系數(shù),教學(xué)班級(jí)規(guī)模系數(shù),標(biāo)準(zhǔn)課時(shí)數(shù) 等屬性 UML類圖如下所示: 

                  課程類別實(shí)體類: 包含課程類別名, 課程類別系數(shù),規(guī)模系數(shù),人數(shù)規(guī)模系數(shù)上限,其中的信息存放在一個(gè)properties文件中用于讀出是可配的 

                  5.3請(qǐng)求和應(yīng)答的封裝 

                  我們對(duì)應(yīng)的請(qǐng)求和應(yīng)答分別有DocRequest,TFBean,CheckBean和DocResponse類其中 

                  6、調(diào)試與測試 

                  1.主界面上table當(dāng)點(diǎn)擊計(jì)算標(biāo)準(zhǔn)課時(shí)數(shù)時(shí)如果前面的信息沒有填寫完全,由于JTable的事件傳遞機(jī)制,tablemodel的setValueAt()屬性對(duì)于每一個(gè)表格單元會(huì)報(bào)異常, 另外,當(dāng)計(jì)算標(biāo)準(zhǔn)課時(shí)數(shù)項(xiàng)點(diǎn)擊取消時(shí)(即由true到false時(shí)) ,課程類別系數(shù)、教學(xué)班規(guī)模系數(shù)、標(biāo)準(zhǔn)課時(shí)數(shù)會(huì)重新計(jì)算,幸好這點(diǎn)也不 影響軟件操作。 

                  2.在老師個(gè)人信息時(shí),當(dāng)點(diǎn)擊老師信息時(shí),每點(diǎn)一下會(huì)彈出來一個(gè)對(duì)話框來說讓用戶填寫, 而這點(diǎn)已經(jīng)解決。 

                  3.itext組件每一個(gè)cell的邊框問題,給出的api里面對(duì)每一個(gè)Cell,沒有設(shè)置上下邊距,只能通過添加的Element,設(shè)置Element接口的上下邊距來實(shí)現(xiàn),并且cell的邊框只能先setBorderWidth(0),隨后在設(shè)置四邊的寬度。 

                  4.生成的word文檔的格式因?yàn)镮text組件API的調(diào)用不規(guī)范、不到位,導(dǎo)致word表格的格式跟原word格式有差距,如寬度,字體等方面,這點(diǎn)我實(shí)在無法做到一模一樣,幸好這點(diǎn)影響不大。 

                  結(jié)論 

                  本次的設(shè)計(jì)課題是基于java Swing的GUI界面設(shè)計(jì)及word表格生成的實(shí)現(xiàn),通過本次的軟件設(shè)計(jì),對(duì)于java編程有了更深刻的了解。本軟件通過調(diào)用iText組件來實(shí)現(xiàn)了word生成的功能,對(duì)于java開源軟件及其開源社區(qū)的重要影響有了深刻的認(rèn)識(shí),對(duì)開源思想非常贊同。這次畢業(yè)涉及,我根據(jù)業(yè)務(wù)的需求,設(shè)計(jì)出了符合要求的軟件,鍛煉了自己編程的能力,并且提高了將客戶的需求轉(zhuǎn)化為實(shí)際軟件的能力。 

                  本軟件主要解決了教師的教學(xué)工作量課時(shí)的計(jì)算和自動(dòng)生成word文檔,并且自動(dòng)生成三大考核表,大大簡化了老師的辦公的復(fù)雜性,使老師可以不必再為課時(shí)的計(jì)算和考核表中評(píng)語的輸入在浪費(fèi)時(shí)間。由于word的廣泛使用性,我們可以開發(fā)一些針對(duì)word使用的一些小工具來簡化人們生活中對(duì)word操作的復(fù)雜性。  

                  在本次論文設(shè)計(jì)過程中,感謝我的學(xué)校,給了我學(xué)習(xí)的機(jī)會(huì)。在學(xué)習(xí)中,蔡本曉和尤素萍老師從選題指導(dǎo)、論文框架到細(xì)節(jié)修改,都給予了細(xì)致的指導(dǎo),提出了很多寶貴的意見與建議,老師以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對(duì)我產(chǎn)生重要影響。在此,我向兩位老師表示誠摯的感謝和崇高的敬意~在學(xué)習(xí)和完成論文的期間,我也得到了理學(xué)院各位領(lǐng)導(dǎo)和老師的關(guān)懷和幫助,在此表示衷心的感謝

                  


          物流企業(yè)和物流軟件互為重要TMS物流軟件的作用和重要性
          TMS物流軟件分析調(diào)研報(bào)告TMS物流軟件開發(fā)商的生存危機(jī)
          TMS物流軟件商業(yè)計(jì)劃書TMS物流軟件模擬實(shí)驗(yàn)報(bào)告
          在實(shí)施HMS酒店管理軟件之前應(yīng)該注意什么HMS酒店管理之足浴收銀軟件
          HMS酒店管理之洗浴管理系統(tǒng)HMS酒店管理軟件之足浴管理系統(tǒng)軟件應(yīng)用價(jià)值分析
          足浴管理軟件系統(tǒng)介紹足浴管理系統(tǒng)常見問題解答
          基于web的酒店客房管理系統(tǒng)的設(shè)計(jì)養(yǎng)老保險(xiǎn)金管理系統(tǒng)的開發(fā)設(shè)計(jì)
          基于虛擬原型的水泵網(wǎng)絡(luò)化快速開發(fā)平臺(tái)
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 91福利免费 | 高清无码国产内射在线观看 | 特西西人体门四WW高清 | 抽插逼逼 | 韩国三级电影久久久 | 欧美天堂 | 国产在线资源 | 日韩成人无码毛片 | 天天干天天日天天操天天干 | 无码内射流出视频 |