圖書管理信息系統(tǒng)的設(shè)計實現(xiàn)分析_第1頁
圖書管理信息系統(tǒng)的設(shè)計實現(xiàn)分析_第2頁
圖書管理信息系統(tǒng)的設(shè)計實現(xiàn)分析_第3頁
圖書管理信息系統(tǒng)的設(shè)計實現(xiàn)分析_第4頁
圖書管理信息系統(tǒng)的設(shè)計實現(xiàn)分析_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. 數(shù)據(jù)構(gòu)造課程設(shè)計報告設(shè)計題目:圖書管理信息系統(tǒng)的設(shè)計與實現(xiàn)專業(yè) 通信工程物聯(lián)網(wǎng) 班級學(xué)生*指導(dǎo)教師起止時間2012-8-20至2012-9-11師學(xué)院2012年下學(xué)期一、設(shè)計題目十七、圖書管理信息系統(tǒng)的設(shè)計與實現(xiàn)【問題描述】圖書信息所表示的就是一個數(shù)據(jù)庫文件。圖書管理一般包括:圖書采編、圖書編目、圖書查詢及圖書流通借、還書等。要求設(shè)計一個圖書管理信息系統(tǒng),用計算機實現(xiàn)上述系統(tǒng)功能?!靖疽蟆拷⒁粋€圖書信息數(shù)據(jù)庫文件,輸入假設(shè)干種書的記錄,建立一個以書號為關(guān)鍵字的索引文件;在主數(shù)據(jù)庫文件中建立以書名、作者及作為次關(guān)鍵字的索引以及對應(yīng)的索引鏈頭文件,如下圖;建立關(guān)于書號、書名、作者及的圖書

2、查詢;實現(xiàn)圖書的借還子系統(tǒng),包括建立讀者文件、借還文件、讀者管理及圖書借還等相關(guān)的處理。記錄號書號書名指針1作者指針2指針3分類藏書量借出數(shù)11021數(shù)據(jù)庫0小云0人民郵電00218021014數(shù)據(jù)構(gòu)造0小洋0中國科學(xué)00136031106操作系統(tǒng)0許海平0人民郵電10247041108數(shù)據(jù)構(gòu)造2一0清華大學(xué)00135051203程序設(shè)計0小云1中國科學(xué)20356062201數(shù)據(jù)庫1許海平3清華大學(xué)40216072360數(shù)據(jù)構(gòu)造4小云5人民郵電30135080030程序設(shè)計5小洋2清華大學(xué)603570a)圖書主索引文件書名鏈頭地址長度作者鏈頭地址長度鏈頭地址長度數(shù)據(jù)庫62小云73人民郵電73數(shù)

3、據(jù)構(gòu)造73小洋82中國科學(xué)52操作系統(tǒng)31許海平62清華大學(xué)83程序設(shè)計82一41b)書名索引鏈頭文件c) 作者索引鏈頭文件 d)索引鏈頭文件二、設(shè)計容設(shè)計一個計算機管理系統(tǒng)完成圖書管理根本業(yè)務(wù)。 1每種書的登記容包括書號、書名、著作者、現(xiàn)存量和庫存量; 2對書號建立索引表線性表以提高查找效率; 3采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加; 4借閱:如果一種書的現(xiàn)存量大于0,則借出一本,登記借閱者的書證號和還期限,改變現(xiàn)存量; 5歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。三、概要設(shè)計:確定所需模塊及模塊間調(diào)用關(guān)系分析:首先應(yīng)該定義借書人的構(gòu)造體信息

4、和圖書構(gòu)造體信息,為了便于查找圖書和借書人,分別對其建立單鏈表。然后定義buy(),SearchByNum (),SearchByName(), borrow(),return()五個函數(shù)分別實現(xiàn)圖書采編入庫的功能,按書號查詢的功能,按書名查找的功能,借書功能和還書功能。 .根據(jù)任務(wù)的要求,先定義頭文件。然后寫出借書人和圖書的構(gòu)造體信息。為了便于查找圖書和存儲借書人的信息,分別對借書人和圖書采用鏈表的形式存放。 /頭文件的聲明 #include #include #include #define MA*SIZE 100 /最大值定義為100 #define LIST_INIT_SIZE 100

5、/圖書證使用者最大值定義為100 /借書人的構(gòu)造體 typedef struct Boro/借書記錄 char BNum20;/所借書的書號 char BorDate8;/借書日期 char RetDate8;/歸還日期 struct Boro *ne*t; Bor;typedef struct LinkBook Bor *ne*t;/該圖書證的借書記錄 char um20;/圖書證號 int Total;/借書的數(shù)量 lendLIST_INIT_SIZE;/借書人數(shù)組 /圖書的構(gòu)造體信息 typedef struct LNode char CardNum20;/圖書證號 struct LNo

6、de *ne*t; LinkList; /借書人 typedef struct book /每種圖書需要登記的容包括書號、書名、作者、總庫存量和現(xiàn)庫量。 char num20;/書號 char name20;/書名 char auth20;/作者 char pub20;/ int TotNum;/總庫存 int NowNum;/現(xiàn)庫存 LinkList *ne*t;/借了該書的人 ook; 1、新圖書采編入庫的設(shè)計方案 采編入庫:新購入一種書,如果該書在圖書賬目中已經(jīng)存在,則將其庫存量增加包括總庫存量和現(xiàn)庫存量,如果該書不存在,則在圖書賬目中增加一種書,總庫存量和現(xiàn)庫存量均為1。為了便于查找,

7、另外定義了一個專門用于查找的函數(shù)BinarySearch(),使用的是折半查找法。1折半查找法查找書號 int mid=0;/外部函數(shù)mid,用來返回查找到的位置 int BinarySearch(ook boo,char SearchNum) /二分法查找比擬書號 由于函數(shù)不能有兩個返回值,所以設(shè)置一個外部變量mid,用來返回查找到的位置 int low=0,high=total-1; int found=0; while(lowmid&total;i-) /插在適合位置 保持有序 booi=booi-1; /空出插入位置 printf(該書在書庫中不存在。設(shè)立新書目,請補全書的詳細(xì)信息。n

8、); strcpy(booi.num,BuyNum); printf(該書購入的數(shù)量是:); scanf( %d,&booi.NowNum); booi.TotNum=booi.NowNum; printf(該書的名字是:); scanf( %s,&); printf(該書的作者是:); scanf( %s,&booi.auth); printf(該書的是:); scanf( %s,&booi.pub);/補全信息 booi.ne*t=NULL; total+;/總量+1 printf(已增加該書的信息。 %s 的書 %s 作者是 %s ,是 %s ,目前的總庫存是 %d ,

9、現(xiàn)庫存是 %d 。n,booi.num,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); printf(入庫成功.n); 3、查找圖書的設(shè)計方案 為了更便于查找,這里設(shè)計了兩種查找方案,按書號查找和按書名查找。在按書號查找中使用了折半查找法的查找函數(shù)。按書號查找方案中都顯示圖書的所有狀態(tài),包括是在庫還是借出,如果借出,并顯示何人借走。 1.按書號查找 void SearchByNum(ook &boo,char SeaNum) /BY NUM 根據(jù)書號查找 LinkList *p; p=boomid.ne*t; if(BinarySe

10、arch(boo,SeaNum)=false)printf(對不起,未找到您想查找的書。n);/二分查找 沒找到 else/找到了的話 printf( 書號 書名 作者 現(xiàn)庫存 總庫存 n); printf(-n); printf(%10s%10s%10s%10s%10d%10dn,boomid.num,,boomid.auth,boomid.pub,boomid.NowNum,boomid.TotNum); if(boomid.ne*t!=NULL) printf( 已借該書的 n); printf( 圖書證號 n); while(p) printf(%14sn,p-C

11、ardNum); p=p-ne*t; while(p) printf( %s ,p-CardNum);/在按書號查找的函數(shù)里也顯示借了這本書的借閱者的證號 p=p-ne*t; printf( n); /顯示查找的書籍的信息 2.按書名查找 void SearchByName(ook &boo) /BY NAME 根據(jù)書名查找 char SeaName20; printf(輸入想查找的書的書名:n); scanf( %s,&SeaName); printf(找到符合該書名的書的詳細(xì)信息如下:n); for(int i=0;i0) /看現(xiàn)庫存是否大于0 boomid.NowNum-;/借出一本,少

12、1 if(boomid.ne*t=NULL) /假設(shè)該書信息下顯示該種書還沒被人借過 m=(LinkList *)malloc(sizeof(LNode);/分配 boomid.ne*t=m;/該圖書信息中的鏈表的第一個結(jié)點 strcpy(m-CardNum,CaNum); m-ne*t=NULL;/后一個結(jié)點為空 else /如果已經(jīng)有人在借這書了 m=boomid.ne*t; while(m-ne*t) /遍歷到最后一個結(jié)點 m=m-ne*t; n=(LinkList *)malloc(sizeof(LNode);/分配空間,增加1個結(jié)點 m-ne*t=n; strcpy(n-CardNu

13、m,CaNum);/記錄證號 n-ne*t=NULL; int i=0; for(i=0;ine*t)p=p-ne*t;/遍歷到最后一個結(jié)點 q=(Bor *)malloc(sizeof(Boro);/分配空間 p-ne*t=q; strcpy(q-BNum,BorrowNum); /記錄書號 printf(輸入歸還日期:); scanf(%s,&q-RetDate); q-ne*t=NULL; printf(借閱成功.n); break; /找到證了就跳出循環(huán) if(i=Retotal)/如果沒有這證的信息 strcpy(Lini.um,CaNum); /記錄證號 p=(Bor *)mall

14、oc(sizeof(Boro); /分配空間 Lini.ne*t=p; strcpy(p-BNum,BorrowNum); printf(輸入歸還日期:); scanf( %s,&p-RetDate); p-ne*t=NULL; Retotal+; /借閱證號信息總數(shù)加1 printf(借閱成功.n); else printf(借閱失敗.該書現(xiàn)在庫存為0.n); 5、歸還圖書的設(shè)計方案 定義了一個return函數(shù),當(dāng)進(jìn)展還書時,在借閱者表里查找借閱者,注銷對借閱者的登記。在圖書鏈表中改變該書的現(xiàn)存量,把現(xiàn)存量增加。 void Return(ook &boo,lend &Lin,char Ret

15、urnNum,char BorrowerNum) Bor *p,*q; LinkList *m,*n; int flag=0;/設(shè)置一個參數(shù) if(!BinarySearch(boo,ReturnNum)|!total) /沒書 printf(書庫中無此書.n); if(BinarySearch(boo,ReturnNum) /有書 m=boomid.ne*t; if(!strcmp(m-CardNum,BorrowerNum) /如果是第一個借的人還的 boomid.NowNum+; /現(xiàn)庫存加1 boomid.ne*t=m-ne*t; /刪除結(jié)點 free(m); /釋放該結(jié)點的空間空間

16、else while(m-ne*t) /查找歸還者的借閱者結(jié)點 if(!strcmp(m-ne*t-CardNum,BorrowerNum) /如果找到 n=m-ne*t; /n為歸還者的借閱結(jié)點 m-ne*t=n-ne*t; /m指向歸還者的借閱結(jié)點的下一結(jié)點 free(n); /釋放空間 boomid.NowNum+; /現(xiàn)庫存加1 break; m=m-ne*t; /在借閱者表里查找借閱者信息 for(int i=0;iBNum,ReturnNum) /如果是歸還的是借的第一本書 Lini.ne*t=p-ne*t; /指向下一借書結(jié)點 free(p); /釋放結(jié)點空間 printf(成功

17、歸還該書.n); flag=1; break; else /找不到 while(p-ne*t) /找到歸還書的借書結(jié)點 if(!strcmp(p-ne*t-BNum,ReturnNum) /如果找到 q=p-ne*t; /q為歸還書的借書結(jié)點 p-ne*t=q-ne*t; /p指向下一借書結(jié)點 free(q); /釋放空間 printf(成功歸還該書.n); flag=1; break; p=p-ne*t; for(int k=0;kRetotal;k+) if(!Link.ne*t) int j; for(j=k;jRetotal;j+) Linj=Linj+1; /其后都往前移一位,覆蓋掉

18、當(dāng)前信息 strcpy(Linj.um, ); /刪除圖書證號 Retotal-; /圖書證數(shù)減1 /刪除當(dāng)前狀態(tài)下沒借書的圖書證的信息,節(jié)省空間 if(flag=0) printf(無該證信息.n); 6、定義主函數(shù),在主函數(shù)中設(shè)計出主界面。便于用戶進(jìn)入后能夠根據(jù)提示方便操作。并且在主函數(shù)中定義出要實現(xiàn)的根本功能,在分別另外去實現(xiàn)。分別在主函數(shù)中定義有:Buy(Bo,BNum); SearchByNum(Bo,BNum);SearchByName(Bo);Borrow(Bo,Lin,BNum,um);Return(Bo,Lin,BNum,um)五個函數(shù)。 四、算法描述:給出各模塊流程圖及代碼

19、圖書管理系統(tǒng)的總體構(gòu)造如圖書管理系統(tǒng)圖書采編入庫按書號查找按書名查找借閱圖書圖書歸還 完整代碼如下:wj.h/借書人的構(gòu)造體 typedef struct Boro/借書記錄 char BNum20;/所借書的書號 char BorDate8;/借書日期 char RetDate8;/歸還日期 struct Boro *ne*t; Bor; typedef struct LinkBook Bor *ne*t;/該圖書證的借書記錄 char um20;/圖書證號 int Total;/借書的數(shù)量 lendLIST_INIT_SIZE;/借書人數(shù)組 /圖書的構(gòu)造體信息 typedef struct

20、 LNode char CardNum20;/圖書證號 struct LNode *ne*t; LinkList; /借書人 typedef struct book /每種圖書需要登記的容包括書號、書名、作者、總庫存量和現(xiàn)庫量。 char num20;/書號 char name20;/書名 char auth20;/作者 char pub20;/ int TotNum;/總庫存 int NowNum;/現(xiàn)庫存 LinkList *ne*t;/借了該書的人 ook; int Retotal;/讀者數(shù)量 int total; /定義外部變量.書的種類數(shù) /構(gòu)造體初始化 void InitBo(oo

21、k boo) /初始化圖書信息 for(int i=0;iMA*SIZE;i+) booi.NowNum=0; booi.TotNum=0; booi.ne*t=NULL; void InitRe(lend &Lin) /初始化借閱者信息 for(int i=0;iLIST_INIT_SIZE;i+) Lini.ne*t=NULL; int mid=0;/外部函數(shù)mid,用來返回查找到的位置 int BinarySearch(ook boo,char SearchNum) /二分法查找比擬書號 /由于函數(shù)不能有兩個返回值,所以設(shè)置一個外部變量mid,用來返回查找位置 int low=0,hig

22、h=total-1; int found=0; while(low0)/書號不同 high=mid-1; else low=mid+1; if(found=0) return 0; /查找失敗 void Buy(ook boo, char BuyNum) /* 采編入庫:新購入一種書,如果該書在圖書賬目中已經(jīng)存在,則將其庫存量增加包括總庫存量和現(xiàn)庫存量,如果該書不存在,則在圖書賬目中增加一種書,總庫存量和現(xiàn)庫存量均為1。 */ if(BinarySearch(boo,BuyNum) /如果書庫中有此書 boomid.TotNum+; /總庫存加1 boomid.NowNum+; /現(xiàn)庫存加1

23、printf(入庫成功.n); printf(已更改書庫中該書的信息。 %s 的書 %s 作者是 %s ,是 %s ,目前的總庫存是 %d ,現(xiàn)庫存是 %d 。n,boomid.num,,boomid.auth,boomid.pub,boomid.TotNum,boomid.NowNum); if(!BinarySearch(boo,BuyNum) int i=0,j=0; while(booi.numj!=0) i+; /for(i=total;imid&total;i-) /插在適合位置 保持有序 /booi=booi-1; /空出插入位置 printf(該書在書庫中

24、不存在。n設(shè)立新書目,請補全書的詳細(xì)信息。n); strcpy(booi.num,BuyNum); printf(該書購入的數(shù)量是:); scanf( %d,&booi.NowNum); booi.TotNum=booi.NowNum; printf(該書的名字是:); scanf( %s,&); printf(該書的作者是:); scanf( %s,&booi.auth); printf(該書的是:); scanf( %s,&booi.pub);/補全信息 booi.ne*t=NULL; total+;/總量+1 printf(已增加該書的信息。 %s 的書 %s 作者是

25、%s ,是 %s ,目前的總庫存是 %d ,現(xiàn)庫存是 %d 。n,booi.num,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); printf(入庫成功.n); void Borrow(ook boo,lend &Lin,char BorrowNum,char CaNum) /借閱:如果一種書的現(xiàn)庫存量大于零,則借出一本書,將現(xiàn)庫存量減1,并登記借閱者的圖書證號和歸還期限。 Bor *p,*q; LinkList *m,*n; /索引表中圖書信息和借書人信息 if(!BinarySearch(boo,BorrowNum)|tota

26、l=0) /如果沒有找到此書 printf(書庫里沒這書。n);/如果有這書 if(BinarySearch(boo,BorrowNum) /書庫里有 if(boomid.NowNum0) /看現(xiàn)庫存是否大于0 boomid.NowNum-;/借出一本,少1 if(boomid.ne*t=NULL) /假設(shè)該書信息下顯示該種書還沒被人借過 m=(LinkList *)malloc(sizeof(LNode);/分配 boomid.ne*t=m;/該圖書信息中的鏈表的第一個結(jié)點 strcpy(m-CardNum,CaNum); m-ne*t=NULL;/后一個結(jié)點為空 else /如果已經(jīng)有人在

27、借這書了 m=boomid.ne*t; while(m-ne*t) /遍歷到最后一個結(jié)點 m=m-ne*t; n=(LinkList *)malloc(sizeof(LNode);/分配空間,增加1個結(jié)點 m-ne*t=n; strcpy(n-CardNum,CaNum);/記錄證號 n-ne*t=NULL; int i=0; /定義整型的i記錄下讀者的數(shù)量 for(i=0;ine*t)p=p-ne*t;/遍歷到最后一個結(jié)點 q=(Bor *)malloc(sizeof(Boro);/分配空間 ,用來記錄索引表中該借書證的信息 p-ne*t=q; strcpy(q-BNum,BorrowNum

28、); /記錄書號 printf(輸入借書日期:); scanf(%s,&q-BorDate);printf(輸入歸還日期:); scanf(%s,&q-RetDate); q-ne*t=NULL; printf(借閱成功.n); break; /找到證了就跳出循環(huán) if(i=Retotal)/如果沒有這證的信息 strcpy(Lini.um,CaNum); /記錄證號 p=(Bor *)malloc(sizeof(Boro); /分配空間 Lini.ne*t=p; strcpy(p-BNum,BorrowNum); printf(輸入借書日期:); scanf( %s,&p-BorDate);

29、 printf(輸入歸還日期:); scanf( %s,&p-RetDate); p-ne*t=NULL; Retotal+; /借閱證號信息總數(shù)加1 printf(借閱成功.n); else printf(借閱失敗.該書現(xiàn)在庫存為0.n); void Return(ook boo,lend &Lin,char ReturnNum,char BorrowerNum) / 歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。 Bor *p,*q; LinkList *m,*n; int flag=0;/設(shè)置一個參數(shù) if(!BinarySearch(boo,ReturnNum)|!total) /沒書

30、printf(書庫中無此書.n); if(BinarySearch(boo,ReturnNum) /有書 m=boomid.ne*t; if(!strcmp(m-CardNum,BorrowerNum) /如果是第一個借的人還的 boomid.NowNum+; /現(xiàn)庫存加1 boomid.ne*t=m-ne*t; /刪除結(jié)點 free(m); /釋放該結(jié)點的空間空間 else while(m-ne*t) /查找歸還者的借閱者結(jié)點 if(!strcmp(m-ne*t-CardNum,BorrowerNum) /如果找到 n=m-ne*t; /n為歸還者的借閱結(jié)點 m-ne*t=n-ne*t; /

31、m指向歸還者的借閱結(jié)點的下一結(jié)點 free(n); /釋放空間 boomid.NowNum+; /現(xiàn)庫存加1 break; m=m-ne*t; /在借閱者表里查找借閱者信息 for(int i=0;iBNum,ReturnNum) /如果歸還的是借的第一本書 Lini.ne*t=p-ne*t; /指向下一借書結(jié)點 free(p); /釋放結(jié)點空間 printf(成功歸還該書.n); flag=1; break; else /找不到 while(p-ne*t) /找到歸還書的借書結(jié)點 if(!strcmp(p-ne*t-BNum,ReturnNum) /如果找到 q=p-ne*t; /q為歸還書

32、的借書結(jié)點 p-ne*t=q-ne*t; /p指向下一借書結(jié)點 free(q); /釋放空間 printf(成功歸還該書.n); flag=1; break; p=p-ne*t; for(int k=0;kRetotal;k+) if(!Link.ne*t) int j; for(j=k;jCardNum); p=p-ne*t; while(p) printf( %s ,p-CardNum);/在按書號查找的函數(shù)里也顯示借了這本書的借閱者的證號 p=p-ne*t; printf( n); /顯示查找的書籍的信息 void SearchByName(ook boo) /BY NAME 根據(jù)書名查

33、找 char SeaName20; printf(輸入想查找的書的書名:n); scanf( %s,&SeaName); printf(找到符合該書名的書的詳細(xì)信息如下:n); for(int i=0;itotal;i+) if(strcmp(SeaName,)=0)/如果書名一樣 printf(書號:%sn書名:%sn %sn:%sn總庫存量:%dn現(xiàn)庫存量:%dnn,booi.num,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); /顯示符合信息的所有書籍的信息 zhs.cpp#include #include

34、 #include #define MA*SIZE 100 /最大值定義為100 #define LIST_INIT_SIZE 100/圖書證使用者最大值定義為100 #includewj.hvoid main() ook BoMA*SIZE; lend Lin; int i,j; char BNum20; char um20; for(i=0;iMA*SIZE;i+) for(j=0;j20;j+) Boi.numj=0; printf(-歡 迎 進(jìn) 入 圖 書 管 理 系 統(tǒng)!-nn); int choice=5; int SearchCho=5,ViewCho=10; while(cho

35、ice!=0) printf(請選擇:nn); printf(ttt1.新 圖 書 采 編 入 庫 nnn ); printf(ttt2.按 書 號 查 找 圖 書 nnn ); printf(ttt3.按 書 名 查 找 圖 書 nnn); printf(ttt4.借 閱 圖 書 nnn ); printf(ttt5.歸 還 圖 書 nnn ); printf(ttt0.退 出 系 統(tǒng) nnn);/顯示菜單 scanf( %d,&choice); switch(choice) case 1:/采編入庫 printf(請輸入入庫的書的書號:); scanf( %s,BNum); Buy(Bo,BNum); break; case 2:/根據(jù)書號查處 printf(請輸入書號:);/輸入書號查找 scanf(

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論