![VSAM中文教學(xué)講解課件_第1頁(yè)](http://file4.renrendoc.com/view/d0d1d171016386618794bd3ca80e32d3/d0d1d171016386618794bd3ca80e32d31.gif)
![VSAM中文教學(xué)講解課件_第2頁(yè)](http://file4.renrendoc.com/view/d0d1d171016386618794bd3ca80e32d3/d0d1d171016386618794bd3ca80e32d32.gif)
![VSAM中文教學(xué)講解課件_第3頁(yè)](http://file4.renrendoc.com/view/d0d1d171016386618794bd3ca80e32d3/d0d1d171016386618794bd3ca80e32d33.gif)
![VSAM中文教學(xué)講解課件_第4頁(yè)](http://file4.renrendoc.com/view/d0d1d171016386618794bd3ca80e32d3/d0d1d171016386618794bd3ca80e32d34.gif)
![VSAM中文教學(xué)講解課件_第5頁(yè)](http://file4.renrendoc.com/view/d0d1d171016386618794bd3ca80e32d3/d0d1d171016386618794bd3ca80e32d35.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VSAM:即虛擬存儲(chǔ)訪問(wèn)方式;使用VSAM組織數(shù)據(jù),管理數(shù)據(jù)信息的文件稱(chēng)為VSAM文件。VSAM文件所在的數(shù)據(jù)集稱(chēng)為VSAM數(shù)據(jù)集.VSAM文件的分類(lèi):
LDS:線性數(shù)據(jù)集(LinearDataSet)ESDS:進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataSet)RRDS:相對(duì)記錄數(shù)據(jù)集(RelativeRecordDataSet)KSDS:索引順序數(shù)據(jù)集(KeySequenceDataSet)VRRDS:變長(zhǎng)相對(duì)記錄數(shù)據(jù)集(Variable-lengthRelativeRecordDataSet)VSAM文件的基本概念LDS的定義LDS即線性數(shù)據(jù)集(lineardataset),LDS是最簡(jiǎn)單的一類(lèi)VSAM數(shù)據(jù)集,只包含數(shù)據(jù),不含任何控制信息。LDS通常僅用于保存和備份數(shù)據(jù)。LDS的結(jié)構(gòu)及特征LDS中僅包含數(shù)據(jù)部分,這些數(shù)據(jù)是純粹的數(shù)據(jù),沒(méi)有形成邏輯記錄。因此LDS的CI(ControlInterval)中沒(méi)有RDF(RecordDefinitionField)和CIDF(CIDataField)控制信息的。這一點(diǎn)是LDS區(qū)別于其他VSAM數(shù)據(jù)集的最大特點(diǎn)。LDS有多個(gè)CA(ControlArea)組成,并且每個(gè)CA由由多個(gè)CI組成VSAM中的LDSLDS的基本結(jié)構(gòu)圖CICACILDSCICACIVSAM中的LDS數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LDS有某些特征如下LDS由ICF進(jìn)行編目管理,而沒(méi)有記錄管理。LDS中僅含有數(shù)據(jù)部分,而沒(méi)有索引部分。在LDS中不能定義次索引。在LDS中不能使用SpannedRecord技術(shù)。LDS中CI的大小最小為4KB,最大為32KB。LDS中的CI不含控制信息RDF以及CIDF。COBOL應(yīng)用程序必須清楚LDS中各段數(shù)據(jù)所表示的意義。VSAM中的LDSRRDS的定義RRDS即相對(duì)記錄數(shù)據(jù)(RelativeRecordDataSet),在RRDS中存在著許多固定的區(qū)域,稱(chēng)為Slot。RRDS中的數(shù)據(jù)便是存放在這些Slot之中。RRDS的結(jié)構(gòu)及特征RRDS結(jié)構(gòu)上最大的特點(diǎn)是每一個(gè)CI中的數(shù)據(jù)部分被劃分為等長(zhǎng)的SLOT。這些Slot都被進(jìn)行了編號(hào),稱(chēng)之為相對(duì)記錄號(hào)碼RRN(RelativeRecordNumber)。RRDS的基本結(jié)構(gòu)CICI
CICIVSAM中的RRDSCACARRDSslot1slot2未使用空間RDF2RDF1CIDFslot3slot4未使用空間RDF4RDF3CIDFslot5slot6未使用空間RDF6RDF5CIDFslot7slot8未使用空間RDF8RDF7CIDFRRDS主要有以下特征:RRDS只有數(shù)據(jù)部分邏輯記錄按RRN進(jìn)行存放邏輯記錄只能為定長(zhǎng)記錄邏輯記錄可以刪除,并將其所占Slot置為空狀態(tài)在創(chuàng)建RRDS時(shí)不能預(yù)留FreeSpace可以更新邏輯記錄的內(nèi)容,但是不可以改變邏輯記錄的長(zhǎng)度不能建立次索引不能改變邏輯記錄的RRNVSAM中的RRDSRRDS的訪問(wèn)方式RRDS的訪問(wèn)方式通常有順序訪問(wèn)和直接訪問(wèn)方式兩種。對(duì)于順序訪問(wèn),應(yīng)該注意一下兩點(diǎn):訪問(wèn)的順序依據(jù)RRN的值從小到大的順序順序訪問(wèn)時(shí),對(duì)于空的Slot,VSAM文件管理自動(dòng)跳過(guò)當(dāng)對(duì)RRDS直接訪問(wèn)時(shí),將主要根據(jù)記錄的RRN進(jìn)行。對(duì)于直接訪問(wèn)方式,應(yīng)該注意以下兩點(diǎn):VSAM文件系統(tǒng)將在內(nèi)部把所提供的RRN轉(zhuǎn)換為RBA(RelativeByteAddress),以對(duì)記錄進(jìn)行訪問(wèn)不可直接使用RBA訪問(wèn)RRDS中的數(shù)據(jù)VSAM中的RRDSESDS的基本概念ESDS即進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataset)。ESDS中數(shù)據(jù)的存放必須依照先后順序進(jìn)行,并且新增的數(shù)據(jù)必須在原數(shù)據(jù)的末尾添加。ESDS的結(jié)構(gòu)ESDS中僅有數(shù)據(jù)部分,不過(guò)其中的數(shù)據(jù)并非線性的,ESDS中的數(shù)據(jù)形成了相對(duì)獨(dú)立的邏輯記錄,并且每一記錄主要通過(guò)相對(duì)字節(jié)位置RBA進(jìn)行識(shí)別。在ESDS中包含有RDF和CIDF控制信息。
VSAM中的ESDSESDS的特征ESDS中僅含有數(shù)據(jù)部分,并且數(shù)據(jù)形成了邏輯記錄。邏輯記錄既可為定長(zhǎng)記錄,也可為變長(zhǎng)記錄。邏輯記錄不可刪除,不過(guò)可以進(jìn)行邏輯隱藏。新的數(shù)據(jù)只可在原數(shù)據(jù)末尾進(jìn)行添加。對(duì)邏輯記錄進(jìn)行順序訪問(wèn)時(shí),也可進(jìn)行直接訪問(wèn)。當(dāng)對(duì)邏輯記錄進(jìn)行順序訪問(wèn)時(shí),訪問(wèn)順序?yàn)橛涗洸迦腠樞?。?dāng)對(duì)邏輯記錄進(jìn)行直接訪問(wèn)時(shí),根據(jù)記錄的RBA進(jìn)行訪問(wèn)。支持spannedrecord技術(shù)。在創(chuàng)建時(shí)不能預(yù)留freespace??梢愿聰?shù)據(jù)記錄的內(nèi)容,但不能改變?cè)杏涗浀拈L(zhǎng)度。不能改變資料記錄的RBA。VSAM中的ESDSESDS的訪問(wèn)方式順序訪問(wèn)方式當(dāng)對(duì)ESDS進(jìn)行順序訪問(wèn)時(shí),所訪問(wèn)的數(shù)據(jù)記錄將根據(jù)記錄的存放順序自動(dòng)查找獲得。直接訪問(wèn)方式直接訪問(wèn)方式是通過(guò)ESDS文件中的邏輯記錄的RBA進(jìn)行訪問(wèn)的。邏輯記錄的RBA值和該記錄在ESDS文件中的位置有關(guān)。第一條記錄的RBA為0.對(duì)訪問(wèn)方式的說(shuō)明ESDS中的邏輯記錄不可在物理上進(jìn)行刪除,因?yàn)闀?huì)影響到后面記錄的RBA值,不過(guò)在應(yīng)用程序中,可將其內(nèi)容視為空,以此從邏輯上將其刪除,實(shí)現(xiàn)邏輯隱藏。ESDS中的內(nèi)容可以被更改,但長(zhǎng)度不可被更改。ESDS可訪問(wèn)的邏輯記錄包括定長(zhǎng)記錄,變長(zhǎng)記錄,以及spannedrecord。ESDS文件添加記錄時(shí),只能在原數(shù)據(jù)的末尾進(jìn)行添加。VSAM中的ESDSSpannedRecord技術(shù)簡(jiǎn)單的說(shuō)就是當(dāng)邏輯記錄的長(zhǎng)度大于一個(gè)CI的大小時(shí),將其進(jìn)行切分,并分別使用多個(gè)CI進(jìn)行存放。該技術(shù)僅使用與ESDS文件和KSDS文件。使用SpannedRecord技術(shù)處理的邏輯長(zhǎng)度應(yīng)該大于一個(gè)CI的大小。所處理的記錄以CI的大小為單位進(jìn)行分割,并將分割后的內(nèi)容分別存放在多個(gè)CI中。存放邏輯記錄分段的每個(gè)CI中應(yīng)有連個(gè)RDF控制信息,以保證其連貫性。SpannedRecord技術(shù)只可跨越多個(gè)CI進(jìn)行,而不可跨越CA。當(dāng)邏輯記錄的長(zhǎng)度大于CI的大小減去7倍的RDF與CIDF大小之和時(shí),將對(duì)其進(jìn)行處理。整個(gè)邏輯記錄的最大長(zhǎng)度為一個(gè)CA的大小減去其中控制信息的長(zhǎng)度。必須使用MOVE模式對(duì)其進(jìn)行訪問(wèn)。程序的工作區(qū)域和I/O區(qū)域必須足夠大,空間大小至少要大于最大的SpannedRecord的長(zhǎng)度。VSAM中的ESDSKSDS結(jié)構(gòu)和特征與ISAM(IndexSequenceAccessMethod)文件一樣,KSDS文件根據(jù)用戶在每個(gè)記錄中所定義的鍵字段作為次序,也就是文件中的記錄根據(jù)在每個(gè)記錄中的鍵字段的排序序列而定位,每個(gè)記錄在鍵字段有唯一的一個(gè)值。VSAM使用與每個(gè)記錄相結(jié)合的鍵,把記錄插入到文件中,或者從文件中檢索記錄,記錄的存取次序可以是隨機(jī)的,也可以是順序的。VSAM文件可以有多個(gè)索引。這就是指文件中的記錄,既有主鍵,也有次級(jí)鍵(AIX:AlternateIndex,替換鍵),但最多能有253個(gè)次級(jí)鍵,可以是記錄中的任何字段,但必須有固定的長(zhǎng)度和位置。替換鍵與主鍵一樣具有同樣的功能,而且,與主鍵相比,替換鍵的鍵值不必是唯一的值,因此在應(yīng)用處理中允許用戶能充分利用其靈活性。數(shù)據(jù)記錄數(shù)據(jù)記錄。。。。。數(shù)據(jù)記錄KEY10KEY88KEY1000根據(jù)數(shù)據(jù)記錄的鍵順序而組織的鍵順序文件VSAM中的KSDSKSDS即索引順序數(shù)據(jù)集(KeySequencedDataSet)最主要的特點(diǎn)是通過(guò)索引來(lái)組織和管理其中的數(shù)據(jù)。在KSDS文件中,每條邏輯記錄中的同一位置都有唯一的一個(gè)關(guān)鍵字(key)需要注意的幾點(diǎn):Key為定長(zhǎng)數(shù)據(jù),且位于每條邏輯記錄中的相同的位置。邏輯記錄根據(jù)Key值的升序排列存放在文件之中。每一個(gè)Key的值必須唯一,以確定邏輯記錄在文件中的排序序列。Key的值必須嚴(yán)格按從小到大的順序連續(xù)排列。一旦Key的值被設(shè)定后,該值不可被更改。不過(guò),可以將包含該Key的整條邏輯記錄刪除,這樣同時(shí)也將該Key刪除。KSDS中的key和索引在KSDS中主要涉及:索引部分和數(shù)據(jù)部分索引設(shè)施:IS(IndexSet)和順序設(shè)施:SS(SequenceSet);KSDS的索引部分是在對(duì)其載入數(shù)據(jù)時(shí)自動(dòng)建立的。并且,索引部分的SS包含所對(duì)應(yīng)CA中每條CI的一個(gè)入口。該入口為對(duì)應(yīng)CI中最大的Key值。而IS則相應(yīng)的包含每條SS的一個(gè)入口;CA里的每一行代表其中的一個(gè)CI。CI中每一個(gè)單元格代表其中的一個(gè)邏輯記錄,單元格中的數(shù)值表示該邏輯記錄的Key值。KSDS的結(jié)構(gòu)在KSDS中,邏輯記錄是按照記錄關(guān)鍵字(RecordKey)的升序存放的。IS:IndexedSet索引設(shè)施。SS:SequenceSet順序設(shè)施。CI:ControlInterval表示在一次I/O操作中數(shù)據(jù)的轉(zhuǎn)移量。CA:ControlArea由多個(gè)CI組成。KSDS的結(jié)構(gòu)KSDS的訪問(wèn)方式KSDS的訪問(wèn)方式包含有順序訪問(wèn)方式和直接訪問(wèn)方式這兩種。對(duì)于順序訪問(wèn)方式,需要注意一下幾點(diǎn):順序訪問(wèn)通過(guò)SS中的Key值對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。訪問(wèn)順序既可為升序,也可為降序。當(dāng)一個(gè)CA中的數(shù)據(jù)遍歷完后仍未找到所求數(shù)據(jù),將通過(guò)SS中的水平指針FS訪問(wèn)下一CA.可從KSDS文件中的任何一個(gè)位置開(kāi)始順序訪問(wèn)。當(dāng)對(duì)KSDS中的數(shù)據(jù)記錄進(jìn)行直接訪問(wèn)時(shí),將從KSDS的索引部分開(kāi)始進(jìn)行訪問(wèn)。對(duì)于直接訪問(wèn)方式,需要注意以下幾點(diǎn):直接訪問(wèn)從索引部分中最高一層的IS開(kāi)始訪問(wèn)。通過(guò)索引部分層級(jí)之間的向下指針?biāo)褜た赡馨兴涗浀腃A及CI。檢索可能包含有所記錄的整條CI,以對(duì)記錄進(jìn)行訪問(wèn),或判斷該記錄不存在。CI的分割結(jié)合例子來(lái)講解如果需要新增一個(gè)Key值為1024的邏輯記錄,根據(jù)Key值順序,只能在CI1中添加。并且,該邏輯記錄應(yīng)該添加在Key值為1019和1350的這兩個(gè)邏輯記錄之間。由于CI1已沒(méi)有更多的空間裝下該條邏輯記錄,將會(huì)把CI1中的邏輯記錄對(duì)等分割為兩半。其中一半邏輯記錄將存放在該CA中空白的CI3中。添加該記錄后的KSDS內(nèi)容如圖所示。CI及CA分割技術(shù)SSKSDS原始數(shù)據(jù)CI0CACI1CI2CI3
CI及CA分割技術(shù)092814572705FS0715082409100928093609751019135014572089213725272705SSCI分割后KSDS的內(nèi)容CI0CI1CACI2CI3CI及CA分割技術(shù)0928101914572705FS07150824091009280936097510192089213725272705102413501457CA的分割如果對(duì)KSDS新增數(shù)據(jù)時(shí),CA中沒(méi)有空白CI用于進(jìn)行CI分割了,將進(jìn)行CA分割。例如,當(dāng)在以上KSDS中再新增兩個(gè)Key值分別為2107和2348的邏輯記錄,KSDS數(shù)據(jù)部分內(nèi)容將如圖所示。需要注意的是,由于此時(shí)存在兩個(gè)CA,因此索引部分中相應(yīng)的也有兩個(gè)SS。同時(shí),這兩個(gè)SS的上層IS中的數(shù)值也應(yīng)相應(yīng)地改變。因此,CA分割后,該KSDS的索引部分內(nèi)容應(yīng)該如圖所示。CI及CA分割技術(shù)
CI0CI1CA0CI2CI3CA分割前數(shù)據(jù)部分
CI及CA分割技術(shù)0936097510190715082409100928
CI0CI1CA1CI2CI3
CA分割后數(shù)據(jù)部分內(nèi)容
CI及CA分割技術(shù)23482527270520892107213710241350145709281457CI及CA分割技術(shù)09281019FS145721372705FSCA分割后索引部分的內(nèi)容次索引技術(shù)定義次索引為邏輯記錄提供次級(jí)key,同主索引中key進(jìn)行交互,以提高記錄訪問(wèn)效率。每條次索引中所包含的數(shù)據(jù)信息:標(biāo)題信息次關(guān)鍵字一個(gè)或多個(gè)指向主數(shù)據(jù)集中邏輯記錄的指針指針類(lèi)別主數(shù)據(jù)集是KSDS,指針為主關(guān)鍵字的值。主數(shù)據(jù)集為KSDS,指針為RBA的值KSDS中的次索引在程序中指定VSAM文件對(duì)于COBOL程序而言,在對(duì)VSAM處理之前需在環(huán)境部和數(shù)據(jù)部對(duì)其進(jìn)行指定。VSAM在系統(tǒng)中的名稱(chēng)為VKSDS,接下來(lái)我們對(duì)各項(xiàng)參數(shù)分別介紹:通過(guò)COBOL操作VSAM文件KSDA文件在COBOL程序中:ORGANIZATION:用于指定VSAM文件的邏輯結(jié)構(gòu)。通??梢詾镾EQUENTIAL或INDEXED,默認(rèn)是為SEQUENTIAL。ACCESSMODE:用于指定對(duì)該VSAM文件的訪問(wèn)模式。通??梢詾镾EQOENTIAL、RANDOM或DYNAMIC。Sequential對(duì)應(yīng)順序訪問(wèn)方式;RANDOM對(duì)應(yīng)直接訪問(wèn)方式;DYNAMIC既可以為順序訪問(wèn)方式又可以為直接訪問(wèn)方式。RECORDKEY:用于指定Key在程序中的名稱(chēng)。FILESTATUS:用于反映VSAM文件被讀取或?qū)懭氲臓顟B(tài)。通過(guò)COBOL操作VSAM文件VSAM文件在COBOL程序中對(duì)于VSAM文件在數(shù)據(jù)部中的指定,主要需要注意一下幾點(diǎn)。通過(guò)LABLERECORDIS(ARE)STANDARD指明該VSAM文件是否含有標(biāo)(label)。通過(guò)DATARECORDIS(ARE)定義該VSAM文件中邏輯記錄在程序中的名稱(chēng)。通過(guò)COPY命令將邏輯記錄復(fù)制到程序工作區(qū)域中.VSAM文件在數(shù)據(jù)部中默認(rèn)BLOCKCONTAINS0RECORDS一項(xiàng)。可默認(rèn)RECORDCONTAINSnCHARACTERS一項(xiàng)。通過(guò)COBOL操作VSAM文件VSAM文件的打開(kāi)和關(guān)閉在對(duì)VSAM文件進(jìn)行任何處理之前,首先需要打開(kāi)該文件。并且,為保護(hù)文件數(shù)據(jù),在程序結(jié)束后也應(yīng)該關(guān)閉該文件。打開(kāi)和關(guān)閉文件是通過(guò)OPEN和CLOSE命令進(jìn)行的。并且,在打開(kāi)的文件中需要指明該文件用來(lái)輸入、輸出還是中間文件。以下為打開(kāi)和關(guān)閉VSAM文件的相應(yīng)代碼。PROCEDUREDIVISION.OPENINPUTKS-FILE01,KS-FILE02I-ORR-FILEOUTPUTES-FILE.……CLOSEKS-FILE01,KS-FILE02,RR-FILE,ES-FILE.STOPRUN.通過(guò)COBOL操作VSAM文件VSAM文件的讀取順序讀取方式
相應(yīng)的代碼如下:READKS-FILE01NEXTRECORDATENDGOTO100-TEST-ENDEND-READ.隨機(jī)讀取方式
相應(yīng)的代碼如下:READKS-FILE02KEYISTEST-RCD-KEYINVALIDKEYGOTO200-TEST-ABENDEND-READ.動(dòng)態(tài)讀取方式
動(dòng)態(tài)讀取方式是順序讀取方式和隨機(jī)讀取方式的綜合。通過(guò)COBOL操作VSAM文件Write(寫(xiě)入)和Rewrite(改寫(xiě))在VSAM中write和rewrite操作與正常文件基本相同,其形式為:WRITEAFROMB.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年七年級(jí)歷史下冊(cè) 第16課 明朝的科技、建筑與文學(xué)說(shuō)課稿 新人教版
- 2025瓷磚買(mǎi)賣(mài)合同
- Unit 3 Family Matters Understanding ideas Like Father,Like Son 說(shuō)課稿 -2024-2025學(xué)年高中英語(yǔ)外研版(2019)必修第一冊(cè)
- 2024-2025學(xué)年高中語(yǔ)文 第三課 第4節(jié) 咬文嚼字-消滅錯(cuò)別字說(shuō)課稿2 新人教版選修《語(yǔ)言文字應(yīng)用》
- 21 古詩(shī)三首 第一課時(shí) 說(shuō)課稿-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 2025購(gòu)銷(xiāo)合同范本
- 森林安全監(jiān)管方案
- 企業(yè)派駐合同范例
- 網(wǎng)狀吊索拱橋施工方案
- 黔東南綠化草坪施工方案
- 慢性腎衰竭的護(hù)理課件
- 2024-2025學(xué)年河南省鄭州市高二上期期末考試數(shù)學(xué)試卷(含答案)
- 甲流乙流培訓(xùn)課件
- 兒科學(xué)川崎病說(shuō)課
- 2025《省建設(shè)工程檔案移交合同書(shū)(責(zé)任書(shū))》
- 2025年云南農(nóng)墾集團(tuán)總部春季社會(huì)招聘(9人)管理單位筆試遴選500模擬題附帶答案詳解
- 《石油鉆井基本知識(shí)》課件
- 電力兩票培訓(xùn)
- TCCEAS001-2022建設(shè)項(xiàng)目工程總承包計(jì)價(jià)規(guī)范
- 四百字作文格子稿紙(可打印編輯)
- 新概念二冊(cè)課文電子版
評(píng)論
0/150
提交評(píng)論