2021年中央電大C語言A課程輔導(dǎo)_第1頁
2021年中央電大C語言A課程輔導(dǎo)_第2頁
2021年中央電大C語言A課程輔導(dǎo)_第3頁
2021年中央電大C語言A課程輔導(dǎo)_第4頁
2021年中央電大C語言A課程輔導(dǎo)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計A課程輔導(dǎo)(8)

—第8章文獻

重要內(nèi)容:

一、文獻概念

二、文獻打開和關(guān)閉

三、文本文獻訪問操作

四、二進制文獻訪問操作

五、課程總復(fù)習(xí)

一、文獻概念

?文獻是計算機外部設(shè)備中一種被命名信息單位

>原則輸入輸出(I/O)設(shè)備文獻:如stdin和stdout分別表達原則輸入設(shè)備鍵

盤和原則輸出設(shè)備顯示屏。這兩個文獻流標記符在Stdio.h系統(tǒng)頭文獻中有定

義,類型為FILE*,其中文獻類型(FILE)也在stdio.h中定義。咱們可以隨時

從stdin中讀出(即從鍵盤輸入到內(nèi)存)信息,也可以隨時向stdout中寫入(從

內(nèi)存輸出到文獻)信息。

>外存儲設(shè)備中保存文獻:由顧客命名,并規(guī)定訪問文獻方式。如只容許向其寫

入信息輸出方式文獻,只容許從已有文獻中讀出信息輸入方式文獻,又容許寫

入又容許讀出輸入和輸出方式文獻等。

?文獻3種基本訪問方式

>輸入方式:從文獻讀出數(shù)據(jù)到內(nèi)存變量(數(shù)組)中保存。

>輸出方式:把內(nèi)存變量(數(shù)組)內(nèi)容送入到文獻中保存。

>既輸入又輸出方式:對于同一種文獻,可以既進行輸入又進行輸出。

?文獻名

給需要使用數(shù)據(jù)文獻所起名字,它涉及文獻主名和擴展名兩某些。符合命名規(guī)

定任何標記符都可以作為主名,如可用gongzi作為工資文獻主名。擴展名由1-3

個字符所構(gòu)成,如可用txt作為一種擴展名。在一種文獻名中可以省略擴展名。若

帶有擴展名,則用句點與主名分開。如works.ran、工資.bin等。

?文獻類型和文獻流

在C語言系統(tǒng)中,系統(tǒng)預(yù)定義了一種文獻類型,文獻類型標記符為FILE,當(dāng)需

要使用一種數(shù)據(jù)文獻時.,必要依照該文獻名和訪問方式返回一種具備FILE類型指針

值,接著把這個值保存到具備FILE*類型指針變量中,后來就用這個指針變量(文

獻流)代替所相應(yīng)文獻,完畢對文獻操作。咱們前面提到stdin和stdout分別是

系統(tǒng)定義原則輸入和輸出文獻流。

?文獻結(jié)束符(EOF)

在每個數(shù)據(jù)文獻結(jié)尾都運用一種字節(jié)保存一種文獻結(jié)束標記(T),在stdio.h

中,把T定義為符號常量EOF。

?文獻長度

文獻中保存數(shù)據(jù)所占有存儲字節(jié)數(shù)。當(dāng)一種文獻用來保存記錄構(gòu)造數(shù)據(jù)時,有

時也把保存記錄個數(shù)稱為文獻長度,此時文獻字節(jié)長度等于記錄個數(shù)乘以記錄構(gòu)造

類型長度。

?數(shù)據(jù)文獻分類

C語句文獻按存儲信息方式不同可分為字符文獻和字節(jié)文獻兩種。字符文獻又

稱文本文獻或ASCII碼文獻。字節(jié)文獻又稱二進制文獻或內(nèi)部格式文獻。

字符文獻:文獻中保存字符串信息和數(shù)值信息都采用字符ASCH碼形式。固然

對于中文信息采用2字節(jié)中文區(qū)位碼。如保存常數(shù)23時?,相應(yīng)保存ASCH碼為50

和51o

字節(jié)文獻:文獻中保存字符串信息仍采用字符ASCII碼形式,而保存數(shù)值信息

則采用其內(nèi)部格式。如保存常數(shù)23時,由于它是一種int類型常數(shù),須占用4個字

節(jié),相應(yīng)保存二進制數(shù)為00010111,前面尚有3個字節(jié)24個0。

?文獻操作函數(shù)

涉及打開文獻、關(guān)閉文獻、讀取數(shù)據(jù)、寫入數(shù)據(jù)、移動文獻指針位置等,它們

函數(shù)原型都保存在系統(tǒng)頭文獻stdio.h中,調(diào)用這些函數(shù)時必要通過#include

命令包括此頭文獻。

二、文獻打開和關(guān)閉

1.打開數(shù)據(jù)文獻

要訪問一種文獻,一方面要按照一定方式打開一種文獻,并使之與一種文獻流

相聯(lián)系,然后才干進行存取數(shù)據(jù)操作。當(dāng)對一種文獻解決操作結(jié)束后,就把它關(guān)閉

掉。

打開一種文獻,需要調(diào)用C函數(shù)庫中fopen()函數(shù),得到相相應(yīng)文獻流。該函

數(shù)原型為:

FILE*fopen(constchar*fname,constchar*mode);

fname參數(shù):用于指向要打開文獻文獻名字符串,該字符串內(nèi)可以帶有盤符和

途徑名,若省略盤符和途徑名則隱含為當(dāng)前盤和當(dāng)前程徑,即保存當(dāng)前程序文獻磁

盤和途徑,

mode參數(shù):用于指定打開文獻方式,它也是以字符串形式給出,mode是指向

該字符串指針。

如果調(diào)用該函數(shù)成功,則返回一種文獻指針,即文獻名為fname、打開方式mode

所相應(yīng)文獻流,后來就運用它操作文獻。如果調(diào)用該函數(shù)失敗,則返回空指針

(NULL),表白沒有打開指定文獻,不能進行訪問操作。

2.打開數(shù)據(jù)文獻方式

打開數(shù)據(jù)文獻方式有如下用字符串表達12中不同方式:

"r"〃打開一種用于輸入文本文獻,若文獻不存在則打開失敗

〃打開一種用于輸出文本文獻,存在清空,不存在則建立

"a"〃打開一種用于向尾部追加輸出文本文獻,不存在則建立

"rb"〃打開一種用于輸入二進制文獻,若文獻不存在則打開失敗

"wb〃〃打開一種用于輸出二進制文獻,存在清空,不存在則建立

"ab〃〃打開一種用于向尾部追加輸出二進制文獻,不存在則建立

"r+〃〃打開一種用于讀/寫操作文本文獻,不存在則打開失敗

,+"〃打開一種用于讀/寫操作文本文獻,不存在則建立

"a+"〃打開一種用于讀/追加寫操作文本文獻,不存在則建立

“rb+”〃打開一種用于讀/寫操作二進制文獻,不存在則打開失敗

“wb+”〃打開一種用于讀/寫操作二進制文獻,不存在則建立

“ab+”〃打開一種用于讀/追加寫操作二進制文獻,不存在則建立

總之:r(read)為讀、w(write)為寫、b(binary)為二進制、+為讀/寫

3.打開數(shù)據(jù)文獻舉例

(1)FILE*fpl;〃定義一種文獻指針變量fpl

fpl=fopenCxxkl.dat\V9;〃以只寫方式打開當(dāng)前程徑和目錄中

〃本文文獻”xxkl.dat”,返回文獻流賦給文獻指針變量fpl

(2)FILE*fp2=fopen("d:\\C語言練習(xí)\\wr.dat","r");//以只讀方式

〃打開指定目錄內(nèi)文本文獻”wr.dat”,返回文獻流賦給fp2

(3)FILE*fp3=fopen("xxk2.ran","wb+”);〃為同步可以進行讀/寫

〃和二進制操作方式而打開當(dāng)前目錄中“xxk2.ran”文獻,

〃返回文獻流賦給文獻指針變量fp3

4.數(shù)據(jù)文獻關(guān)閉

關(guān)閉一種文獻,需要調(diào)用C函數(shù)庫中fclose()函數(shù),該函數(shù)原型為:

intfclose(FILE*fp);

如果fp所相應(yīng)文獻關(guān)閉成功則返回0,否則返回-1(EOF)表達失敗。

若要關(guān)閉已經(jīng)打開fpl文獻流所相應(yīng)”xxkl.dat”文獻,則調(diào)用:

fclose(fpl);

打開一種文獻并解決結(jié)束后,最佳使用fcloseO函數(shù)調(diào)用關(guān)閉它,這樣才可以

保證暫時存儲在文獻緩沖區(qū)內(nèi)容所有寫入到外存文獻中。

三、文本文獻訪問操作

1.向文本文獻輸出數(shù)據(jù)

調(diào)用在stdio.h頭文獻中聲明fputc()函數(shù)或fputs()函數(shù)。這兩個函數(shù)原型為:

intfputc(intch,FILE*stream);〃向文獻寫入一種字符

intfputs(constchar*str,FILE*stream);〃向文獻寫入一種字符串

fputc函數(shù)在操作成功時返回原字符,否則返回

fputs函數(shù)在操作成功時返回0,否則返回T。

應(yīng)用舉例

例1向d盤xxk目錄下wrl.dat文獻依次輸出26個小寫英文字母。

分析:若d盤上沒有xxk目錄,則要一方面建立此目錄,然后才可以編寫C程序使

用此目錄建立文獻。在程序主函數(shù)中,一方面要依照文獻名和訪問方式打開此文獻,

得到相應(yīng)文獻流,接著依次向其寫入26個小寫英文字母,最后關(guān)閉該文獻。此題參

照程序如下:

#include<stdio.h>

#include<stdlib.h>

voidmain(void)

(

inti;

FILE*fl;〃定義文獻指針以便保存文獻流

fl=fopenCd:\\xxk\\wr1.dat","w");〃以寫文本方式打開返回文獻流

if(fl-NULL){〃當(dāng)fl相應(yīng)文獻不存在則退出運營

printf("不可以打開文獻!\n");

exit(1);

)

for(i=0;i<26;i++)

fputcCa+i,fl);〃向fl文獻流輸出每個字母

fclose(fl);〃關(guān)閉fl所相應(yīng)文獻

}

通過使用操作系統(tǒng)提供記事本窗口可以查看該文獻內(nèi)容。

例2把從鍵盤上輸入若干行文本字符原原本本地存入到d盤xxk目錄下wr2.dat文

獻中,直到從鍵盤上輸入一空行(即只按下回車鍵)為止。

分析:此程序主函數(shù)同樣涉及定義文獻流、打開文獻、接受鍵盤輸入和寫文獻、關(guān)

閉文獻等操作。

#include<stdio.h>

#include<stdlib.h>

ttinclude<string.h>

voidmain(void)

charstr[80];〃定義一種字符數(shù)組,保存輸入一行字符

FILE*f2;〃定義文獻指針對象,用來保存一種文獻流

f2=fopen(/zd:\\xxk\\wr2.dat","w");〃以寫方式訪問文獻

if(!f2){〃當(dāng)f2打開失敗時退出運營

printf("CannotopenFile.\nz/);

exit(1);

)

printf("在下面輸入若干行文本建立文本文獻:\n");

while(1){〃執(zhí)行while循環(huán)

gets(str);〃用str保存從鍵盤上輸入一行字符

strcat(str,"\n");〃在字符串末尾添加一種換行符

if(*str=='\n')break;〃若輸入是空串則離開循環(huán)

fputs(str,f2);〃把str所指向字符串寫入到f2文獻

)

fclose(f2);〃關(guān)閉f2所相應(yīng)文獻

)

2.從文本文獻輸入數(shù)據(jù)

調(diào)用在stdio.h頭文獻中聲明fgetcO函數(shù)或fgetsO函數(shù)。這兩個函數(shù)原型為:

intfgetc(FILE*stream);

char*fgets(char*str,intlength,FILE*stream);

fgetc函數(shù)從文獻流中當(dāng)前字節(jié)位置讀出一種字符并返回。若讀到文獻結(jié)束標

記則返回

fputs函數(shù)從文獻流中當(dāng)前字節(jié)位置起讀出一行字符(要不大于length長度)

并保存到str字符數(shù)組空間,同步返回str值。若沒有讀到任何內(nèi)容則返回NULL。

應(yīng)用舉例

例3從上面例1所建立"d:\xxk\wrl.dat”文獻中輸入所有數(shù)據(jù)并依次顯示到屏幕

上。

分析:該文獻保存著26個小寫英文字符,以讀方式打開該文獻后,文獻當(dāng)前訪問

位置是文獻開始位置,即第1個字節(jié)位置,每次讀出一種字節(jié)內(nèi)容(字符)后,當(dāng)

前訪問位置自動后移,接著可以讀取下一種字符。程序如下:

#include<stdio.h>

#include<stdlib.h>

voidmain(void)

(

charch;

FILE*f3=fopen("d:\\xxk\\wrl.dat","r");〃得到輸入文獻流

if(!f3){〃當(dāng)f3打開失敗時退出程序運營

printf(??d:\\xxk\\wrl.datfilenotopen!\nz,);

exit(1);

)

ch=fgetc(f3);〃從文獻開始處讀出一種字符

while(ch!=EOF){//ch不等于文獻結(jié)束符時則循環(huán)

printfch);〃向屏幕窗口輸出ch所保存字符

ch=fgetc(f3);〃繼續(xù)從文獻讀出一種字符

printf("\n");

fclose(f3);〃關(guān)閉f3所相應(yīng)文獻

該程序運營成果如下:

abcdefghijkImnopqrstuvwxyz

例4從上面例2所建立“d:\xxk\wr2.dat”文獻中按行讀出所有數(shù)據(jù),并把它們依

次顯示到屏幕上,同步記錄出文獻內(nèi)容中行數(shù)。

分析:一方面以讀方式打開文獻返回文獻流,接著從文獻頭開始依次讀出每行字符

串并顯示輸出和計數(shù),最后關(guān)閉文獻。

#include<stdio.h>

#include<stdlib.h>

voidmain(void)

(

inti=0;〃定義i用來記錄行數(shù)

charstr[80];〃定義str數(shù)組用來保存一行字符串

FILE*f4=fopen("d:\\xxk\\wr2.dat","r");〃得到相應(yīng)文獻流

if(!f4){printf("文獻沒有打開!\n");exit(l);)

while(!feof(f4))〃文獻未結(jié)束時執(zhí)行循環(huán)

char*p=fgets(str,80,f4);〃讀出一行字符串到str字符數(shù)組

if(!p)break;〃若從文獻中沒有讀到內(nèi)容則退出

printfstr);〃向屏幕輸出str所指向字符串

i++;〃行數(shù)增1

printf("文本文獻中行數(shù)為:%d\n/z,i);

fclose(f4);〃關(guān)閉f4所相應(yīng)文獻

四、二進制文獻訪問操作

?讀出和寫入信息函數(shù)

對二進制文獻是按固定字節(jié)數(shù)進行信息讀寫訪問操作。調(diào)用在Stdio.h頭文獻

中聲明freadO函數(shù)可以從二進制文獻中讀出固定字節(jié)數(shù)信息,調(diào)用fwriteO函數(shù)

可以向二進制文獻中寫入固定字節(jié)數(shù)信息。這兩個函數(shù)原型為:

unsignedintfread(void*buffer,unsignedintnum,

unsignedintcount,FILE*stream);

unsignedintfwrite(constvoid*buffer,unsignedintnum,

unsignedintcount,FILE*stream);

參數(shù)闡明:stream參數(shù)給出要進行操作二進制文獻流,num和count參數(shù)分別

表達待讀寫信息塊中一種數(shù)據(jù)類型長度和個數(shù),它們之積為信息塊字節(jié)數(shù),buffer

參數(shù)所指向存儲空間是信息在內(nèi)存中保存地點。

函數(shù)功能:調(diào)用fread函數(shù)是從stream所示文獻中當(dāng)前字節(jié)位置讀出

num*count個字節(jié)信息并保存到由buffer所指向存儲空間中。調(diào)用fwrite函數(shù)是

把從buffer所指向存儲空間中num*count個字節(jié)信息寫入到由stream所示文獻中,

從當(dāng)前字節(jié)位置起向后存儲。

?移動文獻指針位置(當(dāng)前待讀寫字節(jié)位置)

在stdio.h頭文獻中還提供有移動文獻指針位置函數(shù):

intfseek(FILE*stream,longintnumintorigin);

功能:運用該函數(shù)可以把文獻指針位置移動到整個文獻中任何字節(jié)位置。隨時

從這個位置起讀寫信息。

參數(shù)闡明:

stream參數(shù)給出要進行操作文獻流。

origin參數(shù)必要是三個符號常量SEEK_SET、SEEK_CUR或SEEK_END之一。它們

在stdio.h頭文獻中定義。

SEEK_SET表達文獻開始位置,即第1個字節(jié)位置;SEEK_END表達文獻結(jié)尾位

置,即保存文獻結(jié)束標記位置;SEEK/UR表達當(dāng)前文獻指針位置。

num參數(shù)給出移動文獻位置指針位移量,為正數(shù)時則表達從origin所給參照點

向后移動num個字節(jié),為負數(shù)時表達向前移動num個字節(jié),移動后位置就是當(dāng)前文

獻指針位置。

調(diào)用該函數(shù)時,若文獻位置指針移動成功,則返回0,否則返回非0值。

?應(yīng)用舉例

例1編一程序,一方面運用48、62、25、73、66、80、78、54、36、47等10

個整數(shù)初始化一種整型數(shù)組a[10],接著把a中每個元素值依次寫入到二進制文獻

“d:\xxk\data.bin”中,然后再對數(shù)組a進行升序排序,把排序成果再一次寫入到

上述二進制文獻中。

分析:一方面以二進制寫方式打開給定文獻,接著把數(shù)組a[10]中數(shù)據(jù)寫入到

文獻中,再接著對數(shù)組a[10]進行升序排列,最后再把數(shù)組a[10]中數(shù)據(jù)寫入到文獻

中。對數(shù)組a[10]進行升序排列可以單獨編寫出函數(shù)定義。程序如下:

#include<stdio.h>

#include<stdlib.h>

inta[10]={48,62,25,73,66,80,78,54,36,47);〃定義并初始化數(shù)組

voidSeleteSort(inta[],intn)〃對數(shù)組a[10]進行升序排序

{〃采用選取排序辦法

inti,j,k,x;

for(i=l;i<n;i++)(〃順序比較和互換nT次

k=iT;

for(j=i;j<n;j++)〃k為當(dāng)前比較區(qū)間內(nèi)最小元素下標

if(a[j]<a[k])k=j;

x=a[i-l];a[i-l]=a[k];a[k]=x;〃互換

voidmain(void)

(

inti;

FILE*fpl;

fpl=fopen("d:\\xxk\\data.bin","wb");〃以二進制寫打開文獻

if(!fpl){printf("文獻沒有打開!\n");exit(l);}

for(i=0;i<10;i++)〃向文獻寫入a數(shù)組中每個元素值

fwrite(&a[i],sizeof(int),1,fpl);

SeleteSort(a,10);〃調(diào)用排序算法

fwrite(a,sizeof(int),10,fpl);//把數(shù)組a[10]一次寫入文獻

fclose(fpl);〃關(guān)閉fpl所相應(yīng)文獻

)

例2從例1所建立二進制文獻中,一方面讀出文獻后半某些保存按升序排列

10個整數(shù)并顯示,然后再讀出前半某些保存10個整數(shù)并顯示出來。

分析:依照文獻名和訪問方式定義文獻流,移動文獻位置指針,讀取后10個

有序數(shù)據(jù),再把文獻指針位置移到文獻開始,再讀取前10個數(shù)據(jù)。

#include<stdio.h>

#include<stdlib.h>

inta[10];〃用來保存從文獻中讀取10個整數(shù)

voidmain(void)

(

inti;

FILE*fpl;

fpl=fopen(〃d:\\xxk\\data.bin〃,〃rb〃);〃以二進制讀打開文獻

if(!fpl){printf(〃文獻沒有打開!\n〃);exit(l);)

fseek(fpl,10*sizeof(int),SEEKSET);

〃把文獻指針位置移到10個整數(shù)之后,即第11個整數(shù)位置

fread(a,sizeof(int),10,fpl);

〃一次讀出后10個整數(shù)到a[10]數(shù)組中保存

for(i=0;i<10;i++)printf(,z%d〃,a[i]);

〃依次顯示出按升序排列10個整數(shù)

printf(〃\n〃);

fseek(fpl,0,SEEKSET);〃把文獻位置指針移到文獻開始位置

for(i=0;i<10;i++){〃依次讀出并顯示前10個整數(shù)

fread(&a[i],sizeof(int),1,fpl);

printf(〃%d〃,a[i]);

printf(〃\n〃);

fclose(fpl);〃關(guān)閉fpl所相應(yīng)文獻

程序運營成果:

25364748546266737880

48622573668078543647

例3編一程序,從鍵盤上輸入若干條Pupil類型學(xué)生記錄到“Student.bin”

二進制文獻中,當(dāng)輸入姓名為〃AAA〃后結(jié)束。假定Pupil類型包括兩個域,即學(xué)生姓

名和成績。

分析:定義文獻流、從鍵盤輸入和向文獻流寫入每個學(xué)生記錄、關(guān)閉文獻。

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

structPupil{charname[10];intgrade;};〃定義學(xué)生記錄構(gòu)造

structPupilx;〃定義學(xué)生構(gòu)造變量

voidmain(void){

char*p=〃Student.bin”;〃定義文獻名字符串

FILE*fpl=fopen(p,〃wb〃);〃以二進制寫方式打開文獻

if(!fpl){printf(〃文獻沒有打開,退出運營!\n〃);exit(1);)

printf(〃請輸入若干條學(xué)生記錄,輸入姓名AAA后結(jié)束:\n〃);

while(1){

scanf(〃%s〃,x.name);〃輸入姓名

if(strcmp(x.name,〃AAA〃)=0)break;〃輸入結(jié)束退出循環(huán)

scanf(〃淑1〃,&x,grade);〃輸入成績

fwrite(&x,sizeof(x),1,fpl);〃向文獻寫入一條記錄

fclose(fpl);

printf("數(shù)據(jù)輸入完畢,程序正常結(jié)束.\n");

)

假定從鍵盤上輸入和顯示成果如下:

請輸入若干條學(xué)生記錄,輸入姓名AAA后結(jié)束:

zhshj76

hgyin84

shian68

zhb92

zjmin70

xjip63

AAA

數(shù)據(jù)輸入完畢,程序正常結(jié)束.

此6條學(xué)生記錄被依次保存到“Student.bin”二進制文獻中,每個記錄所占有

字節(jié)數(shù)為sizeof(structPupil)>這個文獻占有6*sizeof(structPupil)+1字節(jié)。

例4編一程序,從例3建立“Student,bin”二進制文獻中,依次讀出每個Pupil

類型學(xué)生成績記錄,并輸出出來,同步記錄出學(xué)生記錄數(shù)。

#include<stdio.h>

#include<stdlib.h>

structPupil{charname[10];intgrade;);〃學(xué)生類型定義

voidPrint(FILE*fio);〃打印輸出文獻中所有記錄

intCount(FILE*fio);〃記錄出文獻中所有記錄數(shù)

voidmain(void)

FILE*fio=fopen("Student,bin”,〃rb+〃);

〃以二進制讀寫方式打開文獻

if(!fio){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論