操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、評(píng)定等級(jí) 操作系統(tǒng)課程設(shè)計(jì)文件系統(tǒng)管理學(xué) 院 計(jì)算機(jī)學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 姓 名 學(xué) 號(hào) 2013年1月8日廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院制文件系統(tǒng)管理一、實(shí)驗(yàn)?zāi)康哪M文件系統(tǒng)的實(shí)現(xiàn)的基本功能,了解文件系統(tǒng)的基本結(jié)構(gòu)和文件系統(tǒng)的管理方法看,加深了解文件系統(tǒng)的內(nèi)部功能的實(shí)現(xiàn)。通過高級(jí)語(yǔ)言編寫和實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件系統(tǒng),模擬文件管理的工作過程,從而對(duì)各種文件操作系統(tǒng)命令的實(shí)質(zhì)內(nèi)容和執(zhí)行過程有比較深入的了解。二、實(shí)驗(yàn)內(nèi)容和要求編程模擬一個(gè)簡(jiǎn)單的文件系統(tǒng),實(shí)現(xiàn)文件系統(tǒng)的管理和控制功能。在用戶程序中通過使用文件系統(tǒng)提供的create,open,read,write,close,delete等文件

2、命令,對(duì)文件進(jìn)行操作。以下報(bào)告主要包括:1.可行性分析2.需求分析3.概要設(shè)計(jì)4.詳細(xì)設(shè)計(jì)5.測(cè)試6.總結(jié)三、可行性分析1、技術(shù)可行性對(duì)于圖形編程還不了解,但是經(jīng)過本學(xué)期的三次實(shí)驗(yàn)的練習(xí),可以設(shè)計(jì)好命令操作界面。利用大二期間學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)可以模擬出此課程設(shè)計(jì)的要求。2、經(jīng)濟(jì)可行性課程設(shè)計(jì)作為本課程的練習(xí)及進(jìn)一步加深理解。與經(jīng)濟(jì)無(wú)關(guān),可以不考慮。(零花費(fèi),零收益)3.法律可行性自己編寫的程序,僅為練習(xí),不作其他用途,與外界沒什么聯(lián)系,可行。四、需求分析編寫程序?qū)崿F(xiàn)文件系統(tǒng),主要有以下幾點(diǎn)要求:1、實(shí)現(xiàn)無(wú)窮級(jí)目錄管理及文件管理基本操作2、實(shí)現(xiàn)共享“別名”3、加快了文件檢索五、概要設(shè)計(jì)為了克服單級(jí)目

3、錄所存在的缺點(diǎn),可以為每一位用戶建立一個(gè)單獨(dú)的用戶文件目錄UFD(User File Directory)。這些文件目錄可以具有相似的結(jié)構(gòu),它由用戶所有文件的文件控制塊組成。此外,在系統(tǒng)中再建立一個(gè)主文件目錄MFD (Master File Directory);在主文件目錄中,每個(gè)用戶目錄文件都占有一個(gè)目錄項(xiàng),其目錄項(xiàng)中包括用戶名和指向該用戶目錄的指針。本設(shè)計(jì)主要實(shí)現(xiàn)下面幾個(gè)數(shù)據(jù)結(jié)構(gòu):M D F用戶名文件目錄指針用戶名文件目錄指針U F D文件名保護(hù)碼文件長(zhǎng)度文件名A F D打開文件名打開保護(hù)碼讀寫指針總體的流程圖如下:六、詳細(xì)設(shè)計(jì)主要數(shù)據(jù)結(jié)構(gòu):1.MFD(Master File Direc

4、tory),主要用以存放用戶,可以增加存放密碼的字符數(shù)組,本設(shè)計(jì)沒有保密安全方面的憂慮,為了使用時(shí)操作更簡(jiǎn)單省去密碼。所以,MFD結(jié)構(gòu)僅包括用戶名和指向子目錄的一個(gè)指針,以及指向下一用戶的連接點(diǎn),為線性結(jié)構(gòu)。struct MFD char name20; /用戶名 UFD *bst_pointer; /文件目錄指針 MFD *link;2. UFD(User File Directory),用于存放文件的數(shù)據(jù)結(jié)構(gòu)。由于本設(shè)計(jì)為了加快檢索速度,使用了二叉排序樹的結(jié)構(gòu),所以UFD結(jié)構(gòu)中相應(yīng)加入了用于樹結(jié)構(gòu)的parent,leftchild,和rightchild記錄鏈接情況。當(dāng)本文件為普通文件時(shí),

5、為下級(jí)記錄申請(qǐng)AFD(file),folder為空。同樣,當(dāng)本文件為文件夾時(shí),為它申請(qǐng)相應(yīng)的空間,AFD為空。以此來(lái)達(dá)到無(wú)窮級(jí)別目錄的存儲(chǔ)。struct UFD UFD *parent; UFD *leftchild; UFD *rightchild; UFD *folder; /作為文件夾時(shí)指向下一層,文件時(shí)為空 UFD *pre_folder; /指向上一層目錄(文件夾時(shí)用到) AFD *file; /作文文件時(shí)文件的具體內(nèi)容 char name30; /文件(夾)名字 int length; /作為文件時(shí)文件的長(zhǎng)度,默認(rèn)為0 char rw; /讀寫標(biāo)志r or w char share

6、; /共享標(biāo)志y or n char file_folder; /指示此文件是文件或文件夾,f為文件,o為文件夾;3.AFD,存放文件的內(nèi)容的結(jié)構(gòu),比較簡(jiǎn)單,文件內(nèi)容用一個(gè)字符數(shù)組存儲(chǔ),為順序結(jié)構(gòu),最多可存放99個(gè)字符struct AFD char afd_file100; int read; /讀指針 int write; /寫指針;4.RECstruct REC /UFD的線性鏈,用于記錄共享文件和已打開文件 UFD *file; REC *link;關(guān)鍵函數(shù)說(shuō)明:void Log_in(); /登陸void Init_user(); /創(chuàng)建用戶void Check_user(); /查看

7、用戶以上三個(gè)函數(shù)為開始時(shí)管理用戶創(chuàng)建和登陸的函數(shù)。開始時(shí)沒有用戶,需要?jiǎng)?chuàng)建后才可登陸。創(chuàng)建用戶即自動(dòng)分配一個(gè)存放用戶文件的UFD,此時(shí)的UFD為空,需要后續(xù)的創(chuàng)建文件以及文件夾的分配。UFD *operations(UFD *fileBST); /文件夾的操作調(diào)用用戶登陸后即開始對(duì)該用戶文件UFD的操作,同時(shí),若在文件夾中創(chuàng)建一個(gè)文件夾,它同樣可以分配得到一個(gè)UFD,對(duì)用戶文件的操作可以重復(fù)調(diào)用,以此來(lái)達(dá)到無(wú)窮級(jí)目錄的操作。在里層文件的操作和外層的是一樣的,但若要退回外層文件夾就需要逐層返回,不能立即跳到某一層某地址。操作完畢后返回改變后的文件存儲(chǔ)狀態(tài)。void fcreate(UFD *fi

8、leBST); /對(duì)文件夾的六個(gè)基本操作UFD *fdelete(UFD *fileBST);void fopen(UFD *fileBST);void fclose(UFD *fileBST);void fread_write(UFD *fileBST,char f); /讀寫操作。按選擇f=5為讀6為寫以上五個(gè)函數(shù)為對(duì)文件的六個(gè)基本操作,其中讀文件和寫文件部分代碼相同,所以由一個(gè)函數(shù)完成。在create五個(gè)函數(shù)中,分別對(duì)文件夾fileBST做了相應(yīng)的處理,由于刪除文件的函數(shù)可能會(huì)刪除到頭結(jié)點(diǎn),所以需要一個(gè)返回值。void insertBST(UFD *fileBST,UFD *newBST

9、); /在fileBST中插入新的結(jié)點(diǎn)newBSTUFD *searchBST(UFD *fileBST,char name); /在fileBST樹中查找名字為name的結(jié) /點(diǎn)并返回該結(jié)點(diǎn),文件不存在則返回空void BSTtraverse(UFD *fileBST); /遍歷二叉樹UFD *deleteBST(UFD *fileBST,char name30); /刪除name結(jié)點(diǎn),返回刪除后的結(jié)點(diǎn)由于該設(shè)計(jì)的存儲(chǔ)結(jié)構(gòu)用到了二叉排序樹,所以把相關(guān)的操作寫成函數(shù),供基本操作的函數(shù)調(diào)用。insert函數(shù)在fileBST中插入新的結(jié)點(diǎn)newBST;search函數(shù)在fileBST樹中查找名字為

10、name的結(jié)點(diǎn)并返回該結(jié)點(diǎn),文件不存在則返回空;還有traverse和delete函數(shù)對(duì)二叉排序樹做了基本的操作。void print_path(UFD *fileBST); /輸出當(dāng)前路徑void print_open_file(); /輸出已打開的文件為了在文件系統(tǒng)中使用戶看出路徑及一些相關(guān)的狀態(tài),設(shè)置了輸出文件路徑的函數(shù),路徑由每個(gè)文件的結(jié)構(gòu)體中pre_folder記錄上一層的文件夾名字,這樣逐層輸出即可達(dá)到目的。每執(zhí)行一次操作就輸出一次已打開的文件的具體情況,打開的文件應(yīng)及時(shí)關(guān)閉,否則刪除時(shí)會(huì)有刪除失敗提示。UFD *check_share(char name30); /在共享鏈中檢查

11、是否有name文件,有則/返回該UFD,沒則NULLvoid del_in_share(UFD *node); /在共享鏈中刪除node結(jié)點(diǎn)以上兩個(gè)函數(shù)為對(duì)共享文件的處理函數(shù),當(dāng)打開或讀寫文件時(shí)在本層文件中未找到相應(yīng)的文件時(shí),就用check_share函數(shù)在共享文件中查找,如果存在就返回該文件的UFD,不存在就返回NULL,而del_in_share函數(shù)是伴隨著刪除文件的函數(shù)出現(xiàn)的,目的是為了刪除文件以后不會(huì)在共享鏈中再存在。具體代碼如下:filesysterm.hstruct AFD char afd_file100; int read; /讀指針 int write; /寫指針;struc

12、t UFD UFD *parent; UFD *leftchild; UFD *rightchild; UFD *folder; /作為文件夾時(shí)指向下一層,文件時(shí)為空UFD *pre_folder; /指向上一層目錄(文件夾時(shí)用到) AFD *file; /作文文件時(shí)文件的具體內(nèi)容 char name30; /文件(夾)名字 int length; /作為文件時(shí)文件的長(zhǎng)度,默認(rèn)為0 char rw; /讀寫標(biāo)志r or w char share; /共享標(biāo)志y or n char file_folder; /指示此文件是文件或文件夾,f為文件,o為文件夾;struct MFD char nam

13、e20; /用戶名 UFD *bst_pointer; /文件目錄指針 MFD *link;struct REC /UFD的線性鏈,用于記錄共享文件和已打開文件 UFD *file; REC *link;void Log_in(); /登陸void Init_user(); /創(chuàng)建用戶void Check_user(); /查看用戶UFD *operations(UFD *fileBST); /文件夾的操作調(diào)用,user不為空時(shí)為第一層void fcreate(UFD *fileBST); /對(duì)文件夾的六個(gè)基本操作UFD *fdelete(UFD *fileBST);void fopen(UF

14、D *fileBST);void fclose(UFD *fileBST);void fread_write(UFD *fileBST,char f); /代碼有重復(fù),合并讀寫操作。按選擇s=5為讀6為寫void insertBST(UFD *fileBST,UFD *newBST); /新文件插入到user文件樹中UFD *searchBST(UFD *fileBST,char name); /在fileBST樹中查找名字為name的結(jié)點(diǎn)并返回該結(jié)點(diǎn) /文件不存在則返回空void BSTtraverse(UFD *fileBST); /遍歷二叉樹UFD *deleteBST(UFD *fil

15、eBST,char name30); /刪除成功返回1,失敗返回0void print_path(UFD *fileBST); /輸出當(dāng)前路徑void print_open_file(); /輸出已打開的文件UFD *check_share(char name30); /在共享鏈中檢查是否有name文件,有則返回UFD,沒則NULLvoid del_in_share(UFD *node); /在共享鏈中刪除node結(jié)點(diǎn)main.cpp#include #include#includefilesystem.hMFD *mfd_link=NULL; /用戶鏈表MFD *pre_user; /當(dāng)前操

16、作用戶UFD *pre_opera_folder=NULL;/當(dāng)前操作文件夾int folder_depth=0; /記錄當(dāng)前文件深度(用于輔助pre_folder的初始化)REC *share_file=NULL;REC *open_file=NULL;void print_path(UFD *fileBST) /輸出路徑 if(fileBST-pre_folder!=NULL) print_path(fileBST-pre_folder); printf(/%s,fileBST-pre_folder-name); else printf(/%s,pre_user-name);void pr

17、int_open_file() REC *temp; int i=5; temp=open_file; while(temp!=NULL) printf(%st%dtt,temp-file-name,temp-file-length); if(temp-file-rw=r)printf(只讀t); else printf(可讀寫t); if(temp-file-share=y)printf(是t); else printf(否t); for(i=0;ifile-file-afd_filei!=0) printf(%c,temp-file-file-afd_filei); else break;

18、 if(temp-file-file-afd_filei!=0&i=5) printf(.); printf(n); temp=temp-link; void BSTtraverse(UFD *fileBST) /遍歷二叉樹(前序遍歷) UFD *left,*right; printf(%s,fileBST-name); if(fileBST-file_folder=o) /輸出.以區(qū)分文件夾 printf(.t); else printf(t); if(fileBST-leftchild!=NULL) /遞歸 left=fileBST-leftchild; BSTtraverse(left)

19、; if(fileBST-rightchild!=NULL) right=fileBST-rightchild; BSTtraverse(right); UFD *searchBST(UFD *fileBST,char name30)/在fileBST樹中查找名字為name的結(jié)點(diǎn)并返回該結(jié)點(diǎn) /文件不存在則返回空 int flag; flag=strcmp(fileBST-name,name); if(flag=0) return fileBST; /查找成功 else if(flag0) if(fileBST-leftchild=NULL) return NULL; /查找失敗 else s

20、earchBST(fileBST-leftchild,name); /遞歸調(diào)用 else if(fileBST-rightchild=NULL) return NULL; else searchBST(fileBST-rightchild,name); void insertBST(UFD *fileBST,UFD *newBST) /將結(jié)點(diǎn)newBST插入原二叉樹fileBST中 int flag; flag=strcmp(fileBST-name,newBST-name); if(flag0) if(fileBST-leftchild=NULL) /插入 fileBST-leftchild

21、=newBST; newBST-parent=fileBST; else insertBST(fileBST-leftchild,newBST); /遞歸調(diào)用 else if(fileBST-rightchild=NULL) /插入 fileBST-rightchild=newBST; newBST-parent=fileBST; else insertBST(fileBST-rightchild,newBST); /遞歸調(diào)用 /*flag=0 的情況已在創(chuàng)建時(shí)排除*/UFD *deleteBST(UFD *fileBST,char name30)/刪除名字問name的文件結(jié)點(diǎn) UFD *pa

22、rent_file=NULL,*del_file=NULL; UFD *move_file=NULL,*move_file_parent; del_file=searchBST(fileBST,name); if(del_file=NULL) printf(沒有此文件,刪除失敗!n);getch(); return fileBST; /查找失敗 if(del_file-file_folder=o&strcmp(del_file-folder-name,NULL)!=0) printf(注意,本系統(tǒng)未能實(shí)現(xiàn)級(jí)聯(lián)刪除,請(qǐng)先逐個(gè)刪除文件!); printf(文件夾非空,刪除失??!n);getch()

23、; return fileBST; if(del_file-share=y) /先在共享鏈中刪除 del_in_share(del_file); parent_file=del_file-parent; if(del_file-leftchild=NULL&del_file-rightchild=NULL) /被刪除結(jié)點(diǎn)為子葉結(jié)點(diǎn) if(del_file=fileBST) /只有一個(gè)結(jié)點(diǎn) strcpy(fileBST-name,NULL); else if(parent_file-leftchild=del_file) parent_file-leftchild=NULL;free(del_f

24、ile); elseparent_file-rightchild=NULL;free(del_file); else if(del_file-leftchild=NULL|del_file-rightchild=NULL) /被刪除結(jié)點(diǎn)沒有做孩子或右孩子 if(del_file-leftchild=NULL) /沒有左孩子 if(parent_file=NULL)/刪除的為根結(jié)點(diǎn)fileBST=del_file-rightchild;del_file-rightchild-parent=NULL; else if(parent_file-leftchild=del_file) /右孩子接上 p

25、arent_file-leftchild=del_file-rightchild; del_file-rightchild-parent=parent_file; else /右孩子接上 parent_file-rightchild=del_file-rightchild; del_file-rightchild-parent=parent_file; else /沒有右孩子 if(parent_file=NULL)/刪除的為根結(jié)點(diǎn)fileBST=del_file-leftchild;del_file-leftchild-parent=NULL; else if(parent_file-lef

26、tchild=del_file) /左孩子接上 parent_file-leftchild=del_file-leftchild; del_file-leftchild-parent=parent_file; else /左孩子接上 parent_file-rightchild=del_file-leftchild; del_file-leftchild-parent=parent_file; free(del_file); else /左右孩子都有 move_file_parent=del_file-leftchild; move_file=move_file_parent-rightchi

27、ld; if(move_file=NULL) /被刪除結(jié)點(diǎn)的左孩子沒有右孩子 if(parent_file=NULL) /刪除的為根結(jié)點(diǎn) fileBST=move_file_parent; fileBST-rightchild=del_file-rightchild; fileBST-parent=NULL; else if(parent_file-leftchild=del_file) parent_file-leftchild=move_file_parent; else parent_file-rightchild=move_file_parent; move_file_parent-p

28、arent=parent_file; move_file_parent-rightchild=del_file-rightchild; else while(move_file-rightchild!=NULL) /尋找右邊最底下的結(jié)點(diǎn) move_file=move_file-rightchild; move_file_parent=move_file_parent-rightchild; move_file_parent-rightchild=NULL; move_file-leftchild=del_file-leftchild; move_file-rightchild=del_file

29、-rightchild; if(move_file-rightchild!=NULL) move_file-rightchild-parent=move_file; /右孩子的雙親也要改變 move_file-parent=del_file-parent; if(fileBST=del_file) /刪除的為根結(jié)點(diǎn) fileBST=move_file; free(del_file); printf(成功刪除文件%sn,name); getch(); return fileBST;void del_in_share(UFD *node) REC *first,*second; first=sha

30、re_file; second=share_file-link; if(second=NULL) share_file=NULL;free(first); else do if(second-file=node) first-link=second-link;free(second); else first=first-link; second=second-link; while(second!=NULL);void fcreate(UFD *fileBST) /在fileBST的同一層創(chuàng)建文件 char s;char name30;int flag=0; UFD *newfile,*tem

31、p=NULL; REC *stemp;system(cls); printf(-n); printf(- 文 件 系 統(tǒng)/創(chuàng) 建 文 件-n); printf(-nn); do printf( 1. 創(chuàng)建文件 n); printf( 2. 創(chuàng)建文件夾 n); printf( 3. 取消 n); printf(請(qǐng)選擇:n); scanf(%c,&s); fflush(stdin); if(s=3)return; if(s!=1&s!=2) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); while(s!=1&s!=2);if(strcmp(fileBST-name,NULL)=0) /節(jié)點(diǎn)已有(未賦

32、值)用于本層文件夾的第一個(gè)文件的特殊情況 newfile=fileBST;elsenewfile=(UFD*)malloc(sizeof(UFD); /創(chuàng)建樹節(jié)點(diǎn)newfile-leftchild=NULL;newfile-rightchild=NULL; printf(請(qǐng)輸入文件(夾)名:); scanf(%s,name); fflush(stdin); /搜索二叉樹,文件重名就創(chuàng)建失敗 temp=searchBST(fileBST,name); if(temp!=NULL) printf(已存在該文件(夾),創(chuàng)建失??!n); strcpy(newfile-name,NULL); retur

33、n; strcpy(newfile-name,name);if(folder_depth=1) newfile-pre_folder=NULL;elsenewfile-pre_folder=pre_opera_folder;/指向正在操作文件夾 while(1) /讀寫否,共享否 printf(只讀r還是可讀寫w:); scanf(%c,&(newfile-rw); fflush(stdin); printf(是否共享y/n:); scanf(%c,&(newfile-share); fflush(stdin); if(newfile-rw=r|newfile-rw=w)&(newfile-s

34、hare=y|newfile-share=n) break; printf(輸入有誤,請(qǐng)重新輸入!n); /*以下為文件和文件夾初始化中不同的地方* if(s=1) newfile-file_folder=f; newfile-folder=NULL; newfile-file=(AFD*)malloc(sizeof(AFD); printf(請(qǐng)輸入文件的內(nèi)容(file-afd_file); fflush(stdin); newfile-length=strlen(newfile-file-afd_file); else /文件夾的初始化 newfile-file_folder=o; newf

35、ile-file=NULL; newfile-length=0; newfile-folder=(UFD*)malloc(sizeof(UFD); /連上一個(gè)空文件節(jié)點(diǎn)newfile-folder-pre_folder=newfile; newfile-folder-leftchild=NULL; strcpy(newfile-folder-name,NULL); newfile-folder-rightchild=NULL; /*if(fileBST!=newfile)insertBST(fileBST,newfile); /初始化完成后插入到二叉樹中 else newfile-parent

36、=NULL;/第一個(gè)結(jié)點(diǎn)略去插入,其雙親結(jié)點(diǎn)為空if(newfile-share=y) /接入共享鏈 stemp=(REC*)malloc(sizeof(REC); stemp-file=newfile; stemp-link=share_file; share_file=stemp; UFD *fdelete(UFD *fileBST) /在fileBST的同一層刪除文件 char name30;REC *temp; printf(請(qǐng)輸入要?jiǎng)h除的文件:); scanf(%s,name); fflush(stdin);temp=open_file; /檢查文件是否打開,打開則刪除失敗while

37、(temp!=NULL) if(strcmp(temp-file-name,name)=0) printf(文件打開中,請(qǐng)關(guān)閉后再刪除!); getch(); return fileBST; else temp=temp-link; fileBST=deleteBST(fileBST,name); return fileBST;void fopen(UFD *fileBST) char name30; UFD *temp=NULL,*temp1=NULL; printf(請(qǐng)輸入要打開的文件的名字:); scanf(%s,name); fflush(stdin); temp=searchBST(

38、fileBST,name); if(temp=NULL) printf(文件不存在!n); temp=check_share(name); if(temp=NULL) printf(文件不存在!n); return; /*找到文件,以下為打開部分* if(temp-file_folder=o) /打開文件夾 folder_depth+; temp1=pre_opera_folder; /保護(hù)正在操作文件 pre_opera_folder=temp; temp-folder=operations(temp-folder); pre_opera_folder=temp1; /寫回 folder_depth-; else /打開文件 REC *newopen; newopen=(REC*)malloc(sizeof(REC);/接入打開鏈 newopen-file=temp; newopen-link=open_file; open_file=newopen; printf(已成功打

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論