操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)【精選文檔】_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)【精選文檔】_第2頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余23頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)【精選文檔】評(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)。通過(guò)高級(jí)語(yǔ)言編寫和實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件系統(tǒng),模擬文件管理的工作過(guò)程,從而對(duì)各種文件操作系統(tǒng)命令的實(shí)質(zhì)內(nèi)容和執(zhí)行過(guò)程有比較深入的了解.二、實(shí)驗(yàn)內(nèi)容和要求編程模擬一個(gè)簡(jiǎn)單的文件系統(tǒng),實(shí)現(xiàn)文件系統(tǒng)的管理和控制功能.在用戶程序中通過(guò)使用文件系統(tǒng)提供的create,open,read

2、,write,close,delete等文件命令,對(duì)文件進(jìn)行操作.以下報(bào)告主要包括:1.可行性分析2.需求分析3。概要設(shè)計(jì)4。詳細(xì)設(shè)計(jì)5.測(cè)試6.總結(jié)三、可行性分析1、技術(shù)可行性對(duì)于圖形編程還不了解,但是經(jīng)過(guò)本學(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í),不作其他用途,與外界沒(méi)什么聯(lián)系,可行。四、需求分析編寫程序?qū)崿F(xiàn)文件系統(tǒng),主要有以下幾點(diǎn)要求:1、實(shí)現(xiàn)無(wú)窮級(jí)目錄管理及文件管理基本操作2、實(shí)現(xiàn)共享“別名”

3、3、加快了文件檢索五、概要設(shè)計(jì)為了克服單級(jí)目錄所存在的缺點(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打開(kāi)文件名打開(kāi)保護(hù)碼讀寫指針總體的流程圖如下:六、詳細(xì)設(shè)計(jì)主要數(shù)據(jù)結(jié)構(gòu):1

4、.MFD(Master File Directory),主要用以存放用戶,可以增加存放密碼的字符數(shù)組,本設(shè)計(jì)沒(méi)有保密安全方面的憂慮,為了使用時(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ì)為了加快檢索速度,使用了二叉排序樹(shù)的結(jié)構(gòu),所以UFD結(jié)構(gòu)中相應(yīng)加入了用于樹(shù)結(jié)構(gòu)的parent,leftchild,和rightchi

5、ld記錄鏈接情況。當(dāng)本文件為普通文件時(shí),為下級(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

6、 or w char share; /共享標(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的線性鏈,用于記錄共享文件和已打開(kāi)文件 UFD *file; REC link;;關(guān)鍵函數(shù)說(shuō)明:void Log_in(); /登陸void Init_user(); /創(chuàng)建用戶void C

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

8、create(UFD fileBST); /對(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,U

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

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

11、享鏈中檢查是否有name文件,有則/返回該UFD,沒(méi)則NULLvoid del_in_share(UFD node); /在共享鏈中刪除node結(jié)點(diǎn)以上兩個(gè)函數(shù)為對(duì)共享文件的處理函數(shù),當(dāng)打開(kāi)或讀寫文件時(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; /寫指針;s

12、truct 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 name

13、20; /用戶名 UFD bst_pointer; /文件目錄指針 MFD *link;;struct REC /UFD的線性鏈,用于記錄共享文件和已打開(kāi)文件 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(UFD fil

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

15、name30); /刪除成功返回1,失敗返回0void print_path(UFD fileBST); /輸出當(dāng)前路徑void print_open_file(); /輸出已打開(kāi)的文件UFD *check_share(char name30); /在共享鏈中檢查是否有name文件,有則返回UFD,沒(méi)則NULLvoid del_in_share(UFD node); /在共享鏈中刪除node結(jié)點(diǎn)main。cpp#include iostreamincludepre_folder-name); else printf(/%s,pre_username);void print_open_file(

16、) REC *temp; int i=5; temp=open_file; while(temp!=NULL) printf(stdtt,tempfilename,temp-file-length); if(temp-file-rw=r)printf(只讀t”); else printf(可讀寫t”); if(tempfile-share=y)printf(”是t); else printf(”否t”); for(i=0;ifilefile-afd_filei!=0) printf(c,tempfilefile-afd_filei); else break; if(tempfilefileaf

17、d_filei!=0i=5) printf(。.); printf(”n”); temp=templink; void BSTtraverse(UFD fileBST) /遍歷二叉樹(shù)(前序遍歷) UFD *left,right; printf(%s,fileBSTname); if(fileBSTfile_folder=o) /輸出.。以區(qū)分文件夾 printf(。.t”); else printf(t”); if(fileBSTleftchild!=NULL) /遞歸 left=fileBSTleftchild; BSTtraverse(left); if(fileBSTrightchild

18、!=NULL) right=fileBST-rightchild; BSTtraverse(right); UFD searchBST(UFD fileBST,char name30)/在fileBST樹(shù)中查找名字為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 searchBST(fileBSTleftchild

19、,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插入原二叉樹(shù)fileBST中 int flag; flag=strcmp(fileBST-name,newBSTname); if(flag0) if(fileBSTleftchild=NULL) /插入 fileBSTleftchild=newBST; newBSTparent=fileBST

20、; else insertBST(fileBSTleftchild,newBST); /遞歸調(diào)用 else if(fileBSTrightchild=NULL) /插入 fileBSTrightchild=newBST; newBSTparent=fileBST; else insertBST(fileBSTrightchild,newBST); /遞歸調(diào)用 /flag=0 的情況已在創(chuàng)建時(shí)排除*/UFD deleteBST(UFD fileBST,char name30)/刪除名字問(wèn)name的文件結(jié)點(diǎn) UFD parent_file=NULL,del_file=NULL; UFD *move

21、_file=NULL,move_file_parent; del_file=searchBST(fileBST,name); if(del_file=NULL) printf(”沒(méi)有此文件,刪除失??!n”);getch(); return fileBST; /查找失敗 if(del_filefile_folder=ostrcmp(del_filefolder-name,”NULL”)!=0) printf(”注意,本系統(tǒng)未能實(shí)現(xiàn)級(jí)聯(lián)刪除,請(qǐng)先逐個(gè)刪除文件!”); printf(”文件夾非空,刪除失??!n);getch(); return fileBST; if(del_fileshare=y)

22、 /先在共享鏈中刪除 del_in_share(del_file); parent_file=del_fileparent; 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_fileleftchild=NULL;free(del_file); elseparent_file-rightchild=NULL;

23、free(del_file); else if(del_file-leftchild=NULLdel_file-rightchild=NULL) /被刪除結(jié)點(diǎn)沒(méi)有做孩子或右孩子 if(del_fileleftchild=NULL) /沒(méi)有左孩子 if(parent_file=NULL)/刪除的為根結(jié)點(diǎn)fileBST=del_filerightchild;del_filerightchild-parent=NULL; else if(parent_file-leftchild=del_file) /右孩子接上 parent_fileleftchild=del_file-rightchild; d

24、el_filerightchild-parent=parent_file; else /右孩子接上 parent_filerightchild=del_filerightchild; del_file-rightchildparent=parent_file; else /沒(méi)有右孩子 if(parent_file=NULL)/刪除的為根結(jié)點(diǎn)fileBST=del_fileleftchild;del_fileleftchildparent=NULL; else if(parent_file-leftchild=del_file) /左孩子接上 parent_fileleftchild=del_f

25、ileleftchild; del_fileleftchild-parent=parent_file; else /左孩子接上 parent_filerightchild=del_fileleftchild; del_file-leftchildparent=parent_file; free(del_file); else /左右孩子都有 move_file_parent=del_file-leftchild; move_file=move_file_parentrightchild; if(move_file=NULL) /被刪除結(jié)點(diǎn)的左孩子沒(méi)有右孩子 if(parent_file=NUL

26、L) /刪除的為根結(jié)點(diǎn) fileBST=move_file_parent; fileBSTrightchild=del_file-rightchild; fileBSTparent=NULL; else if(parent_fileleftchild=del_file) parent_file-leftchild=move_file_parent; else parent_filerightchild=move_file_parent; move_file_parentparent=parent_file; move_file_parentrightchild=del_file-rightch

27、ild; else while(move_filerightchild!=NULL) /尋找右邊最底下的結(jié)點(diǎn) move_file=move_filerightchild; move_file_parent=move_file_parentrightchild; move_file_parentrightchild=NULL; move_file-leftchild=del_file-leftchild; move_file-rightchild=del_filerightchild; if(move_filerightchild!=NULL) move_filerightchildparent

28、=move_file; /右孩子的雙親也要改變 move_fileparent=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=share_file; second=share_filelink; if(second=NULL) share_file=NULL;free(fi

29、rst); else do if(second-file=node) first-link=secondlink;free(second); else first=firstlink; second=secondlink; while(second!=NULL);void fcreate(UFD *fileBST) /在fileBST的同一層創(chuàng)建文件 char s;char name30;int flag=0; UFD newfile,*temp=NULL; REC stemp;system(”cls”); printf(-n”); printf(”- 文 件 系 統(tǒng)/創(chuàng) 建 文 件-n”);

30、 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!=1s!=2) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n”); while(s!=1&s!=2);if(strcmp(fileBST-name,NULL”)=0) /節(jié)點(diǎn)已有(未賦值)用于本層文件夾的第一個(gè)文件的特殊情況 newfile=fileBST;elsenewfile=(UFD*)malloc(sizeo

31、f(UFD)); /創(chuàng)建樹(shù)節(jié)點(diǎn)newfileleftchild=NULL;newfile-rightchild=NULL; printf(”請(qǐng)輸入文件(夾)名:”); scanf(%s,name); fflush(stdin); /搜索二叉樹(shù),文件重名就創(chuàng)建失敗 temp=searchBST(fileBST,name); if(temp!=NULL) printf(已存在該文件(夾),創(chuàng)建失敗!n”); strcpy(newfilename,NULL); return; strcpy(newfile-name,name);if(folder_depth=1) newfilepre_folder

32、=NULL;elsenewfilepre_folder=pre_opera_folder;/指向正在操作文件夾 while(1) /讀寫否,共享否 printf(”只讀r還是可讀寫w:”); scanf(%c”,(newfilerw); fflush(stdin); printf(是否共享y/n:”); scanf(”c,(newfileshare); fflush(stdin); if((newfilerw=r|newfilerw=w)(newfileshare=y|newfile-share=n)) break; printf(輸入有誤,請(qǐng)重新輸入!n”); /*以下為文件和文件夾初始化中

33、不同的地方* if(s=1) newfilefile_folder=f; newfile-folder=NULL; newfilefile=(AFD)malloc(sizeof(AFD)); printf(”請(qǐng)輸入文件的內(nèi)容(100):”); scanf(”s”,newfile-fileafd_file); fflush(stdin); newfilelength=strlen(newfile-fileafd_file); else /文件夾的初始化 newfile-file_folder=o; newfilefile=NULL; newfile-length=0; newfilefolder

34、=(UFD)malloc(sizeof(UFD)); /連上一個(gè)空文件節(jié)點(diǎn)newfilefolder-pre_folder=newfile; newfile-folder-leftchild=NULL; strcpy(newfilefolder-name,”NULL”); newfile-folderrightchild=NULL; /*if(fileBST!=newfile)insertBST(fileBST,newfile); /初始化完成后插入到二叉樹(shù)中 else newfileparent=NULL;/第一個(gè)結(jié)點(diǎn)略去插入,其雙親結(jié)點(diǎn)為空if(newfile-share=y) /接入共享

35、鏈 stemp=(REC)malloc(sizeof(REC)); stemp-file=newfile; stemplink=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; /檢查文件是否打開(kāi),打開(kāi)則刪除失敗while(temp!=NULL) if(strcmp(tempfilename,name)=0) pri

36、ntf(文件打開(kāi)中,請(qǐng)關(guān)閉后再刪除!”); getch(); return fileBST; else temp=templink; fileBST=deleteBST(fileBST,name); return fileBST;void fopen(UFD fileBST) char name30; UFD temp=NULL,temp1=NULL; printf(”請(qǐng)輸入要打開(kāi)的文件的名字:”); scanf(”s”,name); fflush(stdin); temp=searchBST(fileBST,name); if(temp=NULL) printf(”文件不存在!n); tem

37、p=check_share(name); if(temp=NULL) printf(”文件不存在!n”); return; /*找到文件,以下為打開(kāi)部分* if(tempfile_folder=o) /打開(kāi)文件夾 folder_depth+; temp1=pre_opera_folder; /保護(hù)正在操作文件 pre_opera_folder=temp; temp-folder=operations(tempfolder); pre_opera_folder=temp1; /寫回 folder_depth; else /打開(kāi)文件 REC *newopen; newopen=(REC*)malloc(sizeof(REC);/接入打開(kāi)鏈 newopenfile=temp; newopen-link=open_file; open_file=newopen; printf(”已成功打開(kāi)問(wèn)s!n”,tempname); getch(); void

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論