版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第11章館信息系統(tǒng)UML實本章將通過一個實例來說明在一個應用中如何使用UML通過前面的討論首先在分析模型中用用例和域分析來描述應用然后將分析模型擴展成設計模型描述技術上的解決方案最后用Java語言編程具體實現(xiàn)可以運行的應用有一點需要說明的是本章中討論的例子并不包括所有的模型和圖本章討論的案例是一個館信息系統(tǒng)主要處理書和的借閱和保存雖然它算不上是一個大的應用但可以對它作許多擴展本章的案例研究的目的主要有三個演示在一個完整的應用中如何使用UML從分析到設計模型到真正的代碼和可運行RationalRoseUML有的讀者可以根據(jù)本章中討論的方法對模型進行擴展從而達到提高應注意本章給出的僅僅是一個可能的解決方案可能還有許多其它的方案不存在一個適用于所有環(huán)境的正確的解決方案如果讀者想對初始的模型作些改變盡管去做目的只些解決方案將被證明比其它的好但是只有各界經驗和努力工作才能獲得知識下面是一份典型的文本需求說明它是館應用程序的第一版的需求說明是為系統(tǒng) 館將書和借給讀者讀者和書一樣必須在系統(tǒng)中 對于流行的書一般要多買幾本如果舊書或過期了或很 館管理員是館的雇員負責與客戶(借書者)打交道他們的工作要得到 借書者可以預訂目前借不到的書或一旦預訂的書被返還給館或館新書到達就立即通知預訂者館可以方便地產生更新和刪除系統(tǒng)中與書目借書者借書(loan)和預訂的有關 系統(tǒng)能夠在所有流行的技術環(huán)境下運行(UNIX,Windows,OS/2等等) 系統(tǒng)的第一個版本不需處理當讀者預訂的書到達時通知預訂者的消息也不必檢查一個書目是否過期有關更高的版本的其它需求可在本章的練習中了解到分分析就是描述系統(tǒng)的需求通過定義系統(tǒng)中的關鍵域類來建立模型分析的根本目的是在開發(fā)者和提出需求的人(用戶/客戶)分析的第一步是定義用例即描述館系統(tǒng)的功能確定系統(tǒng)的功能需求用例分析主要涉及閱讀和分析規(guī)格說明和系統(tǒng)的潛在用戶討論館中的角色為管理員和借書者管理員是系統(tǒng)的用戶而借書者是客戶雖然偶爾館管理員或另一個館也可能是一個借書者借書者的目的不是直接同系統(tǒng)交互借書者的功能由管理員來實現(xiàn)預訂(Make增加書目(Add上面所列的用例中沒有是一個使用其它用例的更一般的用例同時還應注意到上述用例中出現(xiàn)的兩個概念標題(Title)和書目(Item)因為在一個館中(可能是書名或書的作者)同其它的書目(代表一個指定標題的物理副本)區(qū)分開來從館借的是書目在館擁有一本書的副本(書目)之前加一個標題到系統(tǒng)中是可能的這樣做的目的是讓借書者可以預訂館信息系統(tǒng)的分析可以用UML的用例圖來描述如圖11-1所示每個用例以文本的方式來描述描述的內容包括用例以及用例與角色交互的更詳細的信息文本的內容是通過與用戶/客戶討論后確定的用例借出書目的描述如下1如果借書者沒有預圖11-1館信息系統(tǒng)的用例2如果借書者已經預讀者可以照此法描述其它的用例在整個系統(tǒng)開發(fā)過程中用例描述系統(tǒng)的功能需求在分析階段利用它們來檢查某一域類是否已定義在設計階段可以用來證實技術方案是否能夠處理要求的功能可以在序列圖中可視化用例分析也將系統(tǒng)中的領域和關鍵類條理化為了進行領域分析需要閱讀規(guī)格說明和用例了解系統(tǒng)要處理的概念或將用戶領域專家組織在一起開一個討論會設法確定所有必須館信息系統(tǒng)中的域類主要有借書者(在這里將其取名為Borrower區(qū)分開)標題書的標題標題書目預訂和借書(loan)11-2BusinessObject來定義域類BusinessObject是一個用戶定義的版類用來表示類的對象是關鍵域的一部分應該永久地保存在系統(tǒng)中有一點要強調的是在本階段域類還是處于草圖狀態(tài)定義的操作和屬性不是最后的版本只是在現(xiàn)階段看來這些操作和屬性是比較合適的一些操作是在序列圖的草圖中而某些類用UML狀態(tài)圖來顯示類的對象的不同的狀態(tài)以及改變狀態(tài)的有狀態(tài)圖的類有書目和標題標題類的狀態(tài)圖如圖11-3所示為了描述域類的動態(tài)行為任何動態(tài)UML圖都可以使用序列圖協(xié)作圖或活動圖因為RationalRose4.0序列圖的基礎是用例在序列圖中說明域類如何協(xié)作來操作系統(tǒng)中的用例很自然地當建(11-2中的類圖顯示了建立的序列圖模型)另外操作僅僅是草案同樣要用說明來詳細描述分析的目的是同用戶/客戶勾通以對要建立的系統(tǒng)有更好的了解而不是一個詳細的設計方案用例借出書目(沒有預訂)11-4當用序列圖建模時很顯然需要窗口或窗作為到角色的接口在圖11-4中借出書目的窗口是存在的在分析時需要窗口來標識基本的接口就可以了借出預訂和返還書目都需要窗口窗口也是必要的此時還沒有定義詳細的用戶接口另在本階段設計或原型化一個詳細的用戶接口但是在本例中因為應用比較簡單所以不采用這些技術詳細的用戶接口是設計階段的一部分在分析階 為了將域類同窗口類分開將窗口類組裝成一個GUI包(稱為包) 將域類組裝成業(yè)務包(BusinessPackage) 此外也給應用程序取一個名字稱為通用館應用(UnifiedLibraryApplication) }name:-id:copy/預訂數(shù)+findon+findon+findonreservation()+find()-借書時間:Days= -借書時間:Days=-date:Date當前日 name:Stringaddress:String-date:Date當前日+find()+find()mayinmayinrefers圖11-2館信息系統(tǒng)的域類結數(shù):=0預11-3標題類的狀態(tài)館管理1:find2:3:館管理1:find2:3:find4:findon5:identify6:find11-4用例借出書目的序列圖(沒有預訂的情況 架構設計這是高級設計在架構設計中需用定義包(子系統(tǒng))包間的相關性和基本的通信機制一個很自然的要求是得到清晰而簡單的架構即在架構中相關性要盡可能少雙方相關性要盡可能地避免 據(jù)它們很容易地編碼UML中的動態(tài)模型被用來顯示類的對象在指定的情況下如一個設計良好的架構是系統(tǒng)可擴展和可改變的基礎包關心的是某一指定功能域或技術域的處理將應用邏輯(域類)和技術邏輯分開是很關鍵的從而使得任何一個改變不至于對其它部分有太多的影響在定義架構時需要描述的關鍵事情是標識和建立包間相關性規(guī)則使得包間不存在雙方相關性(避免包緊耦合在一起)明確必須的標準庫和發(fā)現(xiàn)要使用的庫今天市場上可買到的庫主要涉及某些技術領域如用戶接口數(shù)據(jù)庫或通信但 用戶接口包(UserInterfacePackage)通過用戶接口類用戶可以瀏覽系統(tǒng)中的數(shù)據(jù)輸入新的數(shù)據(jù)這些用戶接口類都是基于JavaAWT包JavaAWT包是Java中用來寫用戶接口應用的標準庫該包同包含數(shù)據(jù)的類的業(yè)務包協(xié)作來完成任務用戶接口包調用業(yè)務包中的操作來檢索和插入數(shù)據(jù) 業(yè)務對象包(BusinessObjectPackage) 業(yè)務對象含分析模型中的域類如BorrowerInformation,Title,Item,Loan,等等這些類的所有細節(jié)都已有明確定義所以類中的操作都已定義好了并支持加入持續(xù)性屬性業(yè)務對象包同數(shù)據(jù)包協(xié)作完成任務因為所有的業(yè)務對象類必須從數(shù)據(jù)包中的持續(xù)性類(Persistentclass) 數(shù)據(jù)庫包(DatabasePackage)久地保存它們在當前版本中持續(xù)性類將它的子類的對象存放在文件系統(tǒng)中的文 應用包(UtilityPackage)應用包提供服務給系統(tǒng)中其它種類的包目前包中只有一個類ObjId它被用戶接口包業(yè)務對象包數(shù)據(jù)庫包用于在系統(tǒng)范圍內持續(xù)細節(jié)設計的目的是描述用戶接口和數(shù)據(jù)庫包中的類擴展和細化業(yè)務對象類的描述(在分析階段已有初步描述)細節(jié)設計的方法通常是產生新的類圖狀態(tài)圖和動態(tài)圖(如序列圖協(xié)作圖和活動圖)這些圖與分析階段中的圖是一樣的但是在此處這些圖的定義更詳細涉及的技術細節(jié)分析階段的用例描述被用來驗證用例在設計中的處理序列圖被用來說明技術上如何在系統(tǒng)中實現(xiàn)每一個用例
11-5顯示應用包及包間相關性應用必須永久保存一些對象因此必須用數(shù)據(jù)庫層來提供這種服務對于一個全新的應用而言最自然的解決方案就是使用數(shù)據(jù)庫要么選用一個真正的面向對象的數(shù)據(jù)庫或選用一個傳統(tǒng)的關系數(shù)據(jù)庫但要增加對象與表之間的轉換層但是因為我們的例子應用的目的是要可移植的并不要求某一供貨商的證所以我們選擇了一個比較簡單的解決方案這種方案就是將對象簡單地存放在磁盤上的文件中盡管如此 細節(jié)對應用而言是透明的它只需調用對象上的一些公共操作即可如store(),update(),delete(),find()等等與永久有關的實現(xiàn)均由類Persistent來完成所有需要永久的對象的類均需繼承Persistent類Persistent類是抽象的要求子類具體實現(xiàn)讀寫操作write()和read() 子類也可以有選擇地實現(xiàn)在類范圍內查找對象的操作這樣的實現(xiàn)需要調用Persistent超類中的操作持續(xù)性處理中的一個很重要的因素是ObjId類它的對象被用來系統(tǒng)中的任何持續(xù)性對象(不管被引用的對象是在磁盤上還是已經在應用的內存中)ObjId(ObjectIdentity)是一種著名的處理應用中對象問題的技術通過使用對象標志符將對象ID傳給Persistent.getObject()操作就可以從持續(xù)性器中找到該對象并返回通常情況下這getObject操作還要進行類型檢測和轉換可以方便地將對象標志符作為參數(shù)在操作間傳遞(例如查找一個指定對象的搜索窗口可以將它的搜索結果通過一個對象ID傳給另一個窗口)ObjId是系統(tǒng)中的一個通用類系統(tǒng)中的所有包(用戶接口業(yè)務對象數(shù)據(jù)庫)都要使用它所以將ObjId放在應用包中(目前情況下它是應用包中的唯一的應用)事實上它與數(shù)據(jù)庫包的關系最密切但是如果將它放在數(shù)據(jù)庫包中就意味著用戶接口包與(用戶接口應該只與業(yè)務對還可以對目前的Persistent類的實現(xiàn)作些改進當更新一個對象時只需將對象的當前的記錄標記為刪除并將對象的新的版本加在文件的結尾不重寫老版本的原因是對象可以已經改變了它的長度(如果對象有一個用來一對多或多對多關聯(lián)的不受長度限制 另外搜索當前的對象是串行進行的方法是從文件頭開始搜索(忽略刪除的 同樣可以對這種搜索方法作些改進方法是重新申請文件中被刪除的空間Persistent類的接口被定義后改變持續(xù)性的實現(xiàn)就比較容易了可以將對象存放在關系數(shù)據(jù)庫中或在一個面向對象的數(shù)據(jù)庫中或使用Java1.1中的持續(xù)性對象支持的方式來在當前的設計中沒有設置不允許這么做的任何限制只需對Persistent類的內部實設計階段的業(yè)務對象包是基于分析階段的相對應的包域類( class)保留域類中的類類間的關系和行為只是將類進一步細化包括如何實現(xiàn)類間的關系和行為在這些實現(xiàn)說明中所有業(yè)務對象類繼承數(shù)據(jù)庫包中的Persistent類實現(xiàn)必須的讀寫操作將分析階段的操作細化意味著將一些操作轉換成設計模型中的幾個操作將一些操作改名這樣做是很正常的因為分析階段得出的是每一個類的能力的草案而設計是系統(tǒng)的詳細描述因此設計模型中的所有操作必須有明確的說明和返回值(因為空間的限制在圖11-6中沒有將它們顯示出來)注意設計與分析之間的下列變化系統(tǒng)的當前版本并查一本書是否已按時返回也不處理預訂的順序因 對和書的標題的處理是一樣的除了最大借出日期但對日期并不處理因而可以認為分析模型中的子類MagazineTitle和BookTitle是不必要的僅僅Title類中的類型屬性可以用來說明標題指的是還是書在設計階段分析階段產生的狀態(tài)圖也被細化即描述如何表示狀態(tài)在工作的系統(tǒng)中如何處理狀態(tài)Title類的設計狀態(tài)圖如圖11-6所示這些狀態(tài)用一個稱為預訂(reservation)的矢量來實現(xiàn)該矢量中包含相關的預訂對象的對象標志符(參考類圖中的Title與Reservation之間的關聯(lián))當矢量中沒有元素時(也就是說為空)Title對象處于沒有預訂(Not )狀態(tài)當矢量中有一個或多個元素時狀態(tài)為已預訂()其它對象可以調用addReservation()和removeReservation()來改變Title對象的狀態(tài)如圖所示將分析階段的狀態(tài)圖11-3和設計階段的狀態(tài)圖11-7進行比較可以看efersmayefersmayin+getBorrower():+getTitleName():+getBorrower():+getTitleName():reservations:+getTitleName():+isBorrowed():+getReservation():+getObjId():+getObject():+getReservation(): 述用戶接口包是基于標準的JavaAWT( WindowToolkit)類庫該類庫是用來寫Java應用中的用戶接口且能在所有Java平臺上運行在AWT庫中的所有類沒有在設計模型中顯示出來雖然這些類會在它們自己的包中顯示(在RationalRose的Java版中讀和顯示Java類結構將其簡化了)在AWT類庫中提供不同類型的窗口類(如框架(frame)框(dialog)等等)和不同類型的接口組件類如表(table) 按鈕(button)編輯條(editfield)列表箱(listbox) 等等AWT類庫還負責管理用戶產生的的處理如單擊鼠標或按鍵11-7Title對象實現(xiàn)的設計狀態(tài)設計模型中的動態(tài)模型被指派給GUI包因為所有的與用戶的交互是通過用戶接口來初始化的再者序列圖已經被用來顯示動態(tài)模型雖然序列圖中的一些內容已經被轉換到協(xié)作圖中序列圖的基礎是用例的分析除了用例的實現(xiàn)是在設計模型中詳細描述外(包括類中的實際的操作交互分析是一種概念) 不需畫出來但是在交互時需要畫出來因而最終的設計是慢慢產生的而且序列圖中 果圖11-8顯示AddTitle的設計序列圖操作和說明同代碼中的一樣可以用協(xié)作圖來代替序列圖如圖11-9所示注意無論怎樣RationalRose并不完全支持UML有關協(xié)作圖的全部概念在其它的方面消息編號機制則比較簡單給每一條消息一個序列號1,2,3,等等因此RationalRose設計模型中的協(xié)作圖是序列圖的簡化的版本它并沒有顯示UML協(xié)作圖的所有特點很難將一個復雜的序列圖轉換成RationalRose4.0中的協(xié)作圖而一個UML協(xié)作圖覆蓋同樣的序列圖是沒有任何問題的RationalRose模型中的協(xié)作圖在設計階段進行的一項特殊活動是產生用戶接口定義用戶接口的外觀和感覺這項活動是在分析階段初始化且與其它活動分開來做但同其它的工作同步進行(如何設計成功的用戶接口超出了本書的范圍可參考其它的有關文獻)基于用例的館應用中的用戶接口被分成四部分每一部分在主窗口菜單中有一個獨立的菜單包如下所示功能(Functions)系統(tǒng)中的基本功能窗口也就是說借書信息(Information) 管理的信息 管理的信息或ISBN否已存和書目存貯它5:Title(String,String,6:Item(ObjId,7:store(8:9:store(11-8增加標題(AddTitle用例的序列SymantecVisualCafe(SVC)中畫出在SVC中可視化組件如按鈕編輯條可以很方便地放入窗口中然后SVC自動產生創(chuàng)建窗口所需的代碼包AWTButtonok-Button指示該按鈕為OK按鈕屬性是自動是產生的所以它們的缺省名字類似于label1,label2,textField1,在SVC中為用戶產生的如單擊鼠標選擇菜單等指定處理器是很方便的具體做法是選擇一個指定組件如okButton 如Clicked 隨后SVC就自動產生一個方法okButton_Clicked 當OK按鈕被單擊時調用該方法當研究用戶接口包中的類時有一條原則非常重要如當用戶選擇窗口中的findTitleButton時方法findTitleButton_Clicked被調用當列表項itemList中的某一項被選中時方法itemList_Selected被調用,當菜單項LendingItem被選中時方法LendingItem_Action被調用圖11-10顯示了用戶接口包中的類圖中的一個例子在圖中可以發(fā)現(xiàn)這類處理器按鈕編輯條的屬性在圖中沒有顯示出來最終的用戶接口由一個帶菜單包和一個圖形畫面的主窗口組成從主窗口可以到其它所有窗口一般來說每一個其它的窗口代表系統(tǒng)的某一服務被映射到對應的初始用2.1:2.2:1:2:2.3:2.6:2.7::管理2.4:Item(ObjId,2.5:)++)++++++borrower:title:)+++++++borrower:title:++++++++++++++
borrower:borrower:title:)+++-title:)+++++++
++++11-10Function菜單中的用戶接口類(在模型中Function類圖中顯示)典型地所有關聯(lián)是一對一且所有關聯(lián)都表明在某一點的關聯(lián)窗口類被創(chuàng)建或在某一點關聯(lián)的業(yè)務對象類被訪問下面不將關聯(lián)進一步細 構造或實現(xiàn)階段是指編程實現(xiàn)類在系統(tǒng)需求中要求系統(tǒng)可以運行在許多不同的處理器和操作系統(tǒng)上所以選擇Java來實現(xiàn)系統(tǒng)但是有一點需要說明在這個應用中JavaJavaAppletJavaApplet不能客戶端的文件系統(tǒng)Java很容易將邏輯類映射到代碼組件因為這種映射是類和Java代碼文件之間的一對一的映射(和一對一地映射到一個可執(zhí)行的.class文件)Java也圖11-11說明設計模型中的組件圖包含(在本例中)一個從邏輯的類到組件的簡單映射邏輯包也被映射到對應的組件包所以組件包中的UI含邏輯包中的UI包每個組件包含一條到邏輯類的描述的使得可以方便地在邏輯視圖與組件視圖間切換(即使在本例中使用的僅僅是文件名) 11-11標志實現(xiàn)域類的組件的組件圖類間的關聯(lián)是雙向類說明(ClassSpecifications)圖(ClassDiagrams)類圖顯示類的靜態(tài)結構和類間的關系狀態(tài)圖類的狀態(tài)圖顯示類的所有可能到達的狀態(tài)以及需要處理的狀態(tài)轉移(以動態(tài)圖(序列圖協(xié)作圖活動圖)顯示類中方法的實現(xiàn)以及其它對象如何使用類用例圖和說明當開發(fā)人員需要了解有關如何使用系統(tǒng)的信息時(當開發(fā)人員感到他正從細節(jié)中迷失時)可以通過該圖來了解使用系統(tǒng)的結果修改已有的操作也就是說開發(fā)人員不得不改變設計模型所有的工程都可能會碰到這種情況重要的是使設計模型與編碼同步起來使得模型可以作為系統(tǒng)的最終文檔這里給出的Java代碼例子是有關LoanTitleFrame類當研究這些代碼時腦海中想著UML模型并試圖了解如何將UML結構轉移成代碼考慮下面的內容私有屬性對應于模型中的指定的屬性同樣JavaObjId類(對象標志符)被用來實現(xiàn)關聯(lián)意思是通常情況下關聯(lián)是同類保存在一起的(因為ObjId類具有持續(xù)性)第一個代碼例子是有關Loan類它是一個業(yè)務對象類用來有關借書的信息實現(xiàn)是比較直接的代碼也比較簡單因為該類主要是用來信息大部分功能是從數(shù)據(jù)庫包中的Persistent類中繼承來的類中的唯一屬性是其關聯(lián)類ItemBorrowerInformationwrite()和read()//Loan.java;representsaloan.Theloanreferstoonetitleandonepackagebo;importdb.*;importjava.io.*;importpublicclassloanextends{privateObjIditem;privateObjIdborrower;publicLoan(){}publicLoan(ObjIdit,ObjId{item=it;borrower=b;}publicBorrowerInformation{ return}publicString{Itemit=(Item)Persistent.getObject(item);returnit.getTitleName();}publicItem{Itemit=(Item)Persistent.getObject(item);returnit;}publicint{Itemit=(Item)Persistent.getObj(item);returnit.getId();}publicvoidwrite(RandomAccessFileout)throwsIOException{}publicvoidread(RandomAccessFilein)throwsIOException{item=newObjId();borrower=newObjId();}}TitleFrame是實現(xiàn)窗口框架的用戶接口類可以通過窗口框架將新的標題加到系統(tǒng)中JavaAWTSVCJava代碼正如前面提到的SVC允許用戶添加和定位窗口中的按鈕或編輯條同時它還自動產生運行時創(chuàng)建窗口的Java代碼自動產生的代碼出現(xiàn)在類的尾部包括控件的如按鈕編輯條等一些標準的操作如show()和handleEvent()在構造類時控件的創(chuàng)建和初始化有一點一定要記住不能手工修改自動生成的代碼它不是類的設計模型中的一部分僅僅直正的操作和屬性才被模型化它們出現(xiàn)在類的開始AddTitleaddButton_Clicked()操作的實現(xiàn)代碼//packageui;importbo.*;importutil.*;publicclassTitleFrameextends{privateTitlevoidaddButton_Clicked(Event{if(Title.findOnName(titleField.getText())!={newMessageBox(this,“ATitlewiththatnamealready}if(Title.findOnISBN(isbnFiled.getText())!={newMessageBox(this,“Atitlewiththesameisbn/nralreadyreturn}inttype=if(bookButton.getState()==true)type= else
newMessageBox(this,“Pleasespecifytype}current=newTitle(titleField.getText(),authorField.getText(),isbnField.getText(),type);intif(itemsField.getText().equals(“”))itemno=elseitemno=Integer.valueOf(itemsField.getText()).intValue();if(itemno>25){newMessageBox(this, umnumberofitemsis}for(inti=0;i<itemno;{Itemit=newItem(current.getObjId(),i+1)}}voidcancelButton_Clicked(Event{}public{resize(insets().left+insets().right+430,insets().top+insets().bottom+229);titleLabel=newjava.awt.Label(“TitleName”);titleLabel.reshape(insets().left+12,insets().top+24,84,24);titleField=newjava.awt.TextField();titleField.reshape(insets().left+132,insets().top+24,183,
authorField=newjava.awt.TextField();authorField.reshape(insets().left+132,insets().top+60,183,isbnField=newjava.awt.TextField();isbnField.reshape(insets().left+132,insets().top+96,183,label1=newjava.awt.Label(“Author”);label1.reshape(insets().left+12,insets.top+96,84,24);label2=newjava.awt.Label(“Insert”);label2.reshape(insets().left+12,insets.top+60,84,24);addButton=newjava.awt.Button(“Insert”);addButton.reshape(insets().left+348,insets.top+24,60,24);cancelButton=newancelButton.reshape(insets().left+348,insets.top+192,label3=newjava.awt.Label(“Itemslabel3.reshape(insets().left+12,insets.top+192,108,108,24);
itemsField=newjava.awt.TextField();itemsField.reshape(insets().left+132,insets.top
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年上半年牡丹江市事業(yè)單位公開招聘工作人員817人參考考試題庫附答案解析
- 2026貴州黔東南州公安局面向社會招聘警務輔助人員37人備考考試試題附答案解析
- 2026廣東陽江市陽西縣招聘高中教師25人參考考試題庫附答案解析
- 2026中國科學院上海生命科學研究院生物化學與細胞生物學研究所分子細胞卓越中心楊巍維組招聘科研助理參考考試題庫附答案解析
- 2026公安部直屬事業(yè)單位鄭州警察學院招聘55人備考考試試題附答案解析
- 2026新疆烏魯木齊市第三十六中學誠聘初高中教師18人備考考試試題附答案解析
- 2026年度延邊州教育局所屬事業(yè)單位教師專項招聘(53人)參考考試試題附答案解析
- 2026江西省歐潭人力資源集團有限公司招聘公務倉綜合管理員1名參考考試題庫附答案解析
- 2026年曲靖市富源縣公安局營上派出所招聘警務輔助人員(5人)備考考試試題附答案解析
- 2026四川成都銀行股份有限公司招聘12人備考考試題庫附答案解析
- 事業(yè)編退休報告申請書
- 原發(fā)性骨髓纖維化2026
- 半導體廠務項目工程管理 課件 項目6 凈化室系統(tǒng)的設計與維護
- 河南省洛陽強基聯(lián)盟2025-2026學年高二上學期1月月考英語試題含答案
- 2026年中考數(shù)學模擬試卷試題匯編-尺規(guī)作圖
- 玻璃鋼水箱安裝詳細技術方案
- 山東省煙臺市開發(fā)區(qū)2024-2025學年上學期期末八年級數(shù)學檢測題(含答案)
- 桂花香包制作課件
- 社會工作本科畢業(yè)論文
- (2025年)架子工考試模擬題(帶答案)
- 開題報告 建筑工程質量管理問題研究
評論
0/150
提交評論