電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a11_第1頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a11_第2頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a11_第3頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a11_第4頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a11_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第11章 面向?qū)ο蟮某绦蛟O(shè)計(jì) 學(xué)習(xí)要點(diǎn)1、 對象、屬性事件及方法程序2、 對象引用規(guī)則3、 類與對象、基類、子類、用戶定義類、容器類和控件類4、 類的定義和編輯第11章 面向?qū)ο蟮某绦蛟O(shè)計(jì)11.1 面向?qū)ο蟮幕靖拍?1.2 對象引用11.3 類的基本概念11.4 定義類習(xí)題及參考答案第11章 面向?qū)ο蟮某绦蛟O(shè)計(jì) Visual FoxPro 6.0在支持傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)方法的基礎(chǔ)上,全面引入面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-Oriented Programming,OOP)的方法。用戶通過面向?qū)ο蟮姆椒?,可以設(shè)計(jì)出更加美觀的應(yīng)用程序界面,開發(fā)出真正的關(guān)系數(shù)據(jù)庫應(yīng)用程序。面向?qū)ο髴?yīng)用程序設(shè)計(jì)

2、根本地改變了早期FoxPro應(yīng)用程序面向過程的開發(fā)方式,將重點(diǎn)放在了對象之間的聯(lián)系上,而不是具體實(shí)現(xiàn)的細(xì)節(jié)。面向?qū)ο蟪绦蛟O(shè)計(jì)通過代碼重用和繼承的方式,使用戶在設(shè)計(jì)程序時(shí)不再做大量的重復(fù)勞動(dòng),且將對象的細(xì)節(jié)隱藏起來,讓用戶將注意力集中在對象與系統(tǒng)其它部分的聯(lián)系上,這是結(jié)構(gòu)化程序設(shè)計(jì)方法所不能做到的。11.1 面向?qū)ο蟮幕靖拍?在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象是構(gòu)成程序的基本單位和運(yùn)行實(shí)體。本節(jié)將介紹對象和它的屬性、事件、方法程序等概念和一些基本操作。 11.1.1 對象 對象(Object)就是一個(gè)實(shí)體,任何對象都具有自己的特征和行為。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,所有事物都可以被抽象為對象,例如表單上的

3、文本框是對象,表單本身也是一個(gè)對象。在Visual FoxPro 6.0中,又將對象分為控件和容器兩種。 控件:是表單上顯示數(shù)據(jù)和執(zhí)行操作的基本對象。在Visual FoxPro 6.0中,控件有標(biāo)簽、文本框、命令按鈕等。 容器:是一種可以容納其它對象的對象。在Visual FoxPro 6.0中包含了很多容器對象,如表單集、表單、頁框、命令按鈕組等。11.1.2 屬性 對象的屬性即對象的特征、性質(zhì),例如當(dāng)描述一個(gè)命令按鈕時(shí),可以用它所在的位置、尺寸大小、顏色及它上面顯示的文字的字體、字號等特征來形容,這些特征都可用屬性來表示。 常用的對象屬性如表11-1。 不同的對象所具有的屬性是不相同的,

4、這也可從屬性的定義中體現(xiàn)出來。但是一些對象會(huì)有一些共性。11.1.2 屬性表11-1 常用屬性介紹屬 性 說 明 應(yīng) 用 于Caption 設(shè)置對象的標(biāo)題 表單、標(biāo)簽、命令按鈕等Name 設(shè)置對象的名字 任何對象Value 設(shè)置控件當(dāng)前狀態(tài) 文本框、列表框等ForeColor設(shè)置對象中的前景色 表單、標(biāo)簽、文本框等BackColor設(shè)置對象內(nèi)部的背景色 表單、標(biāo)簽、文本框等BackStyle設(shè)置對象背景是否透明 表單、文本框、圖像等AlwaysOnTop是否處于其他窗口之上 表單11.1.2 屬性AutoCenter 是否在主窗口內(nèi)自動(dòng)居中 表單ScaleMode 用于設(shè)置坐標(biāo)單位 表單Clo

5、sable 標(biāo)題欄中關(guān)閉按鈕是否有效 表單Controlbox 是否取消標(biāo)題欄所有按鈕 表單、工具欄MaxButton 是否有最大化按鈕 表單MinButton 是否有最小化按鈕 表單Movable 運(yùn)行時(shí)表單能否移動(dòng) 表單WindowState 設(shè)置運(yùn)行時(shí)是最大化或最小化 表單AutoCloseTables 表單釋放時(shí)是否關(guān)閉表或視圖, 默認(rèn)為.T. 數(shù)據(jù)環(huán)境AutoOpenTables 表單加載時(shí)是否打開表或視圖, 默認(rèn)為.T. 數(shù)據(jù)環(huán)境11.1.3 事件 事件(Event)是指可能會(huì)發(fā)生在對象上的事情,也即對對象所做的操作(或者系統(tǒng)對某個(gè)對象的操作),如按鈕被單擊,對象被拖動(dòng)、被改變大小

6、、被雙擊等。一個(gè)對象可以有多個(gè)事件,但是每個(gè)事件都是由系統(tǒng)預(yù)先規(guī)定的。一個(gè)事件對應(yīng)于一個(gè)程序,即事件過程。 1.事件驅(qū)動(dòng)工作方式 事件一旦被觸發(fā)(即操作發(fā)生),系統(tǒng)馬上就去執(zhí)行與該事件對應(yīng)的過程。等事件過程執(zhí)行完畢后,系統(tǒng)又處于等待某事件發(fā)生的狀態(tài),這種程序執(zhí)行方式明顯地不同于面向過程的程序設(shè)計(jì),即應(yīng)用程序的事件驅(qū)動(dòng)工作方式,表11-2列出了部分常見的事件。11.1.3 事件表11-2 Visual FoxPro 6.0系統(tǒng)常見事件事 件 觸發(fā)時(shí)機(jī) 事 件 觸發(fā)時(shí)機(jī)Load 創(chuàng)建對象前 MouseUp 釋放鼠標(biāo)鍵時(shí)Init 創(chuàng)建對象時(shí) MouseDown 按下鼠標(biāo)鍵時(shí)Activate 對象激活

7、時(shí) KeyPress 按下并釋放某鍵盤鍵時(shí)GotFocus對象獲得焦點(diǎn)時(shí) Valid 對象失去焦點(diǎn)前Click 單擊鼠標(biāo)左鍵時(shí) LostFocus 對象失去焦點(diǎn)時(shí)DblClick 雙擊鼠標(biāo)左鍵時(shí) Unload 釋放對象時(shí)Destroy 釋放一個(gè)對象時(shí) InteractiveChange 改變控件的值時(shí)Resize 調(diào)整對象大小時(shí) Scrolled 在表格中移動(dòng)滾動(dòng)條時(shí)11.1.3 事件 從表11-2可知,事件包括事件過程和事件觸發(fā)方式兩個(gè)方面。事件過程的代碼應(yīng)該事先編寫好。事件觸發(fā)方式可分為3種: 用戶觸發(fā):如單擊命令按鈕事件。 系統(tǒng)觸發(fā):如計(jì)時(shí)器事件,將會(huì)自動(dòng)按設(shè)定的時(shí)間間隔發(fā)生。 代碼觸發(fā)

8、:如用代碼來調(diào)用事件過程。11.1.3 事件 為事件編寫代碼 編寫代碼先要打開代碼編輯窗口,打開某對象代碼編輯窗口的方法有3種。 雙擊該對象。 選擇對象的快捷菜單中的“代碼”選項(xiàng)。 選擇顯示菜單的“代碼”選項(xiàng)。 代碼編輯窗口中包含兩個(gè)組合框和一個(gè)列表框。對象組合框用來重新確定對象,過程組合框用來確定所要的事件(或方法程序),代碼則在列表框中輸入。11.1.4 方法程序 方法程序又簡稱為方法,是指對象所固有完成某種任務(wù)的功能。 Cls方法 功能:清除表單中的圖形和文本。 語法:Object.Cls 說明:Cls清除運(yùn)行期間圖形和打印語句生成的文本和圖形。Cls方法不影響設(shè)計(jì)期間放置在表單上的背景

9、位圖。Cls方法將CurrentX和CurrentY屬性重新設(shè)置為0。11.1.4 方法程序 Refresh方法 功能:重畫表單或控件,并刷新所有值,或者刷新一個(gè)項(xiàng)目的顯示。 語法:Form.Object.Refresh 說明:一般地,畫表單或控件是在沒有事件發(fā)生時(shí)自動(dòng)處理的。需要立刻更新表單或控件時(shí)可使用Refresh方法。若要在加載另一個(gè)表單的同時(shí)顯示某個(gè)表單,或更新控件的內(nèi)容時(shí),Refresh方法有效。11.1.4 方法程序 SetFocus方法 功能:為一個(gè)控件指定焦點(diǎn)。 語法:Control.SetFocus 說明:如果控件的Enabled或Visible屬性設(shè)置為.F.,或者控件的

10、When事件返回.F.,則不能給一個(gè)控件指定焦點(diǎn);如果Enabled或Visible屬性已設(shè)置為.F.,則控件在使用SetFocus方法接受焦點(diǎn)之前,必須首先把它們設(shè)置為.T.。11.1.4 方法程序 Release方法 功能:從內(nèi)存中釋放表單集或表單。 語法:Object.Release 說明:當(dāng)用DO FORM命令創(chuàng)建表單集或表單,并且不存在可引用該表單集或表單的變量時(shí),Release方法很有效??梢允褂肧creen對象的Forms集合找到表單集或表單,并調(diào)用其Release方法。可以使用Screen對象的表單集合來查找表單或表單集,并且調(diào)用Release方法。應(yīng)用于表單、表單集、_SCR

11、EEN。11.2 對象引用 在面向?qū)ο蟮某绦蛟O(shè)計(jì)中要常常引用對象,或引用對象的屬性、事件與調(diào)用方法程序,本節(jié)將介紹對象引用的格式,并通過幾個(gè)例子來說明。 11.2.1 對象引用規(guī)則 在程序設(shè)計(jì)中,引用對象時(shí)要遵循一定的規(guī)則,主要表現(xiàn)在以下4個(gè)方面。 1.在程序設(shè)計(jì)中一般用以下關(guān)鍵字開頭 ThisFormSet & 表示當(dāng)前表單集 ThisForm & 表示當(dāng)前表單 This & 表示當(dāng)前對象11.2.1 對象引用規(guī)則 2.引用格式 一般在引用關(guān)鍵字后跟一個(gè)點(diǎn)號,表示從屬關(guān)系,再寫出被引用對象或者對象的屬性、事件或方法程序。例如: This.Caption=“教師情況一覽表” & 為本表單標(biāo)題屬

12、性賦值 ThisForm.Refresh & 調(diào)用本表單Refresh方法程序11.2.1 對象引用規(guī)則 3.允許多級引用 在應(yīng)用程序中,多個(gè)對象之間有多級的從屬關(guān)系,允許多級引用,但要逐級引用。下面是幾種常用的引用格式。 ThisFormSet.PropertyName | Event | Method | ObjectName ThisForm.PropertyName | Event | Method | ObjectName11.2.1 對象引用規(guī)則 This.PropertyName | Event | Method | ObjectName ObjectName.PropertyN

13、ame | Event | Method 其中PropertyName表示屬性名,Event表示事件,Method表示方法程序,ObjectName表示對象名。11.2.1 對象引用規(guī)則 4.父調(diào)用 父調(diào)用即控件引用包含它的容器控件。 格式為:Control.Parent 其中Control表示控件,Parent表示包含該控件的容器。11.2.2 編程方式設(shè)置屬性值 屬性除可在屬性窗口設(shè)置外,也可通過編程方式來設(shè)置。 格式為:ObjectName.Property=Setting 其中Setting指要設(shè)置的屬性值,例如前面引用格式中所舉的例子。 此外,用戶還可以使用RGB函數(shù)來返回一種顏色。

14、 格式為:RGB(nRedValue, nGreenValue, nBlueValue) 其中,參數(shù)nRedValue,nGreenValue,nBlueValue分別指定紅、綠、藍(lán)色成份的深度。大小范圍是0255。11.2.3 方法程序的調(diào)用 方法程序通常在事件代碼中調(diào)用,調(diào)用時(shí)必須遵循對象引用規(guī)則。例如ThisForm.Release,表示引用本表單的Release方法,從內(nèi)存釋放表單。11.3 類的基本概念 類在程序設(shè)計(jì)中被經(jīng)常用到,本節(jié)將介紹有關(guān)類的一些基本概念和表現(xiàn)特征。 11.3.1 類的概念 類是面向?qū)ο蟪绦蛟O(shè)計(jì)中一個(gè)重要的概念,包括基類、子類、用戶自定義類、容器類、庫類等。 1

15、.類與對象 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類與對象都是應(yīng)用程序的組裝模塊,它和對象既有區(qū)別又存在聯(lián)系。11.3.1 類的概念 類和對象關(guān)系密切,但并不相同。類包含了有關(guān)對象的特征和行為信息,它是對象的藍(lán)圖和框架。類是定義了對象特征以及對象外觀和行為的模板。例如在表單控件工具欄中,每個(gè)按鈕都代表一個(gè)類,用其中某個(gè)按鈕在表單上創(chuàng)建的一個(gè)控件就是一個(gè)對象。11.3.1 類的概念 類和對象具有以下關(guān)系: 類是對象的定義。類定義并提供了對象具有的屬性、事件和方法程序。 對象通過類而產(chǎn)生。 對象是類的一個(gè)實(shí)例。11.3.1 類的概念 2.基類 基類是Visual FoxPro 6.0預(yù)先定義的類,在“新建類”對話

16、框的“派生于”下拉列表框中,包含了全部基類,如圖11-1所示。如“表單”、“組合框”等。初始的表單控件工具欄中包含的類(如“文本框”、“命令按鈕”、“標(biāo)簽”等)也是基類。基類可作為用戶自定義類的基礎(chǔ)。用戶可從基類來創(chuàng)建新類,并增添自己需要的新功能。11.3.1 類的概念圖11-1 “新建類”對話框11.3.1 類的概念 3.子類 子類是指以某個(gè)類的定義為基礎(chǔ)創(chuàng)建的新類。子類所基于的類稱為父類。例如若要從基類創(chuàng)建出新類時(shí),那么基類就是父類,新建類就是子類。 子類將繼承父類的全部特征,包括對父類所做的任何修改。 4.用戶定義類 用戶可以從基類派生出子類,即用戶定義類;Visual FoxPro 6

17、.0還允許從用戶定義類派生出子類。所以說用戶自定義類可以是子類,也可以是父類。 可以為用戶定義類設(shè)置屬性、編寫代碼與方法程序,也可創(chuàng)建新的屬性和方法程序。用戶也可以將自己定義的類添加到表單控件工具欄中。11.3.1 類的概念 5.容器類和控件類 類也可以分為容器類和控件類兩種,用戶可以從基類派生出容器類,例如從Form類可派生出表單類。 6.類庫 類庫可用來存儲(chǔ)以可視方式設(shè)計(jì)的類,其文件擴(kuò)展名為.vcx。一個(gè)類庫通??扇菁{多個(gè)子類,這些子類允許由不同的基類派生。11.3.2 類的特征 類作為一個(gè)模板,所有對象的屬性、事件、方法程序在定義類時(shí)被指定。此外,類還有如下特征,這些特征可提高代碼的可重

18、用性和易維護(hù)性。 1.封裝特征 封裝特征指包含并隱藏對象的信息,如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、對象的方法程序和屬性代碼。封裝隱藏了不必要的復(fù)雜性,隱藏對象信息具有以下優(yōu)點(diǎn): 有利于對復(fù)雜對象的管理,使用戶集中精力來使用對象的特性。 有利于程序的安全性,防止代碼不慎受到破壞。11.3.2 類的特征 2.子類特征 子類可以具有其父類的全部功能和特點(diǎn),但也可以增加自己的屬性和方法,使它具有與父類不同的特殊性,使得用戶在程序設(shè)計(jì)時(shí)更得心應(yīng)手,設(shè)計(jì)出滿足實(shí)際情況的類。 通過設(shè)計(jì)一個(gè)適合應(yīng)用程序的子類,并在多處創(chuàng)建它的實(shí)例,就可以使代碼得到重復(fù)利用,因此定義子類是減少程序代碼的一個(gè)方法。11.3.2 類的特征 3.繼承

19、性特征 類的繼承性可以從下述的幾個(gè)方面來理解: 對象能自動(dòng)繼承創(chuàng)建它的類的功能。 子類能自動(dòng)繼承父類的功能。 對一個(gè)類的改動(dòng)能自動(dòng)反映到它的所有子類中。 繼承性體現(xiàn)在軟件中,若發(fā)現(xiàn)類中有一個(gè)小錯(cuò)誤,用戶不必逐一修改子類的代碼,只需要在父類中改動(dòng)一處,然后這個(gè)變動(dòng)將體現(xiàn)在全部子類中。所以說繼承性不僅節(jié)省了用戶的時(shí)間與精力,還減少了維護(hù)代碼的難度,它是合理地進(jìn)行代碼維護(hù)的重要措施。11.4 定義類 Visual FoxPro 6.0最強(qiáng)大的功能之一就是支持創(chuàng)建在應(yīng)用程序中可以重復(fù)使用的類,用戶定義的類能添加到表單控件工具欄中。用戶定義類通常有以下功能。 封裝通用功能:為通用功能創(chuàng)建控件類,可以將它

20、們的實(shí)例添加到表單中。例如移動(dòng)記錄指針的命令按鈕類、表單關(guān)閉按鈕類、幫助按鈕類等。 賦予應(yīng)用程序統(tǒng)一的外觀和風(fēng)格:例如創(chuàng)建了具有獨(dú)特外觀的文本框類,便可在應(yīng)用程序所有需要文本框的地方都使用這個(gè)類。11.4.1 創(chuàng)建用戶定義類 下面通過一個(gè)例子來介紹創(chuàng)建用戶定義類的步驟。 例11-1 使用類設(shè)計(jì)器創(chuàng)建一個(gè)用戶定義類,類名為“記錄指針移動(dòng)類”,基類為命令按鈕組,存儲(chǔ)到d:vfp6commandgroup1.vcx類庫文件中。 選擇“新建”,或者在“項(xiàng)目管理器”窗口的“類”選項(xiàng)卡中單擊“新建”按鈕,在彈出的“新建”對話框中選擇“類”單選按鈕;然后單擊新文件按鈕,打開 “新建類”對話框。如圖11-2所

21、示。11.4.1 創(chuàng)建用戶定義類圖11-2 “新建類”對話框11.4.1 創(chuàng)建用戶定義類 指定新建類所需的類庫、基類與類名。其中,“類名”文本框用于指定類名,新生成的類是基類的子類;“派生于”下拉列表框用于指定新生成類的基類;“存儲(chǔ)于”文本框用于指定新類庫名或已有類庫的名字,類庫名可包含路徑,若未指出路徑表示使用默認(rèn)路徑。 指定各項(xiàng)內(nèi)容后,單擊“確認(rèn)”按鈕,打開如圖11-3所示的“類設(shè)計(jì)器”窗口。11.4.1 創(chuàng)建用戶定義類圖11-3 類設(shè)計(jì)器窗口11.4.1 創(chuàng)建用戶定義類 通過表單的屬性窗口設(shè)置其按鈕個(gè)數(shù)及相應(yīng)標(biāo)題,并設(shè)置事件代碼。設(shè)計(jì)好的命令按鈕組類如圖11-4所示。圖11-4 “記錄指

22、針移動(dòng)類”窗口 11.4.2 將類添加到工具欄用戶定義類完成后,即可以將其添加到表單控件工具欄中,然后通過使用該工具欄中的“查看類”按鈕來打開定義的類。 例11-2 將創(chuàng)建的“記錄指針移動(dòng)類”添加到表單控件工具欄中,并通過它在表單上創(chuàng)建一個(gè)記錄指針移動(dòng)命令按鈕組。 選擇“新建”,在打開的對話框中選擇“表單”選項(xiàng),然后單擊“新建”按鈕,新建一個(gè)表單。圖11-5 新建的表單設(shè)計(jì)窗口11.4.2 將類添加到工具欄 在“表單控件”工具欄上單擊(查看類)按鈕,在彈出的菜單中選擇“添加”,在打開的“打開”對話框中指定要添加的可視類庫的文件名。 圖11-6 在“打開”對話框中指定類文件名11.4.2 將類添

23、加到工具欄 單擊“打開”按鈕,則打開的表單控件工具欄如圖11-7所示。 新添加的Commandgroup類圖11-7 新添加類按鈕11.4.2 將類添加到工具欄 單擊新添加類按鈕選中它,在表單中單擊添加命令按鈕組,結(jié)果如圖11-8所示。圖11-8 添加命令按鈕組的表單11.4.3 類的編輯 在Visual FoxPro 6.0中,用戶不僅可以修改用戶定義類,而且可以刪除類庫中的類,或刪除類庫。 1.修改用戶定義類 若要為用戶定義類設(shè)置屬性,編寫事件代碼或方法程序代碼,或者是創(chuàng)建新的屬性或方法程序,都必須打開類設(shè)計(jì)器來實(shí)現(xiàn)。要打開類設(shè)計(jì)器,只要打開一個(gè)可視類庫,并選擇其中的一個(gè)類即可。 例11-

24、3 修改例11-1所設(shè)計(jì)的命令按鈕組類,要求為表單定義的基于該類的每個(gè)按鈕均有提示功能。11.4.3 類的編輯 選擇“打開”,在打開的對話框的文件類型列表框中選擇“可視類庫”(*.vcx),從中選擇存在的Commandgroup1類庫名,單擊“確認(rèn)”按鈕。 在打開的“打開”對話框中右邊的列表框中選擇要修改的類名。圖11-9 選擇要修改的類名11.4.3 類的編輯 單擊“打開”按鈕,打開“類設(shè)計(jì)器”窗口,選擇要設(shè)置提示內(nèi)容的按鈕,打開“屬性”窗口,將其ToolTipText(顯示提示內(nèi)容)屬性設(shè)置成所要顯示的文本內(nèi)容。 用同樣方法設(shè)置其它按鈕的提示文本后,關(guān)閉“類設(shè)計(jì)器”窗口,選擇保存修改即可。11.4.3 類的編輯 圖11-10 設(shè)置按鈕的提示文本11.4.3 類的編輯 2.刪除

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論