




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2.2.2 ShaPe files 數據說明ShaPe files是ESRl提供的一種矢量數據格式,它沒有拓撲信息,一個ShaPe files由一組文件組成,其中必要的基本文件包括坐標文件(.shp )、索引文件(.shx )和屬性文件(.dbf )三個文件。1.坐標文件的結構說明坐標文件(.shp)用于記錄空間坐標信息。它由頭文件和實體信息兩部分構成(如圖2.1所示)。1)坐標文件的文件頭坐標文件的文件頭是一個長度固定(100 bytes)的記錄段,一共有 9個int型和7個double型數據,主要記錄內容見表2.2。文件頭記錄頭記錄內容記錄頭記錄內容記錄頭記錄內容記錄頭記錄內容記錄頭記錄內
2、容圖2.1坐標文件的結構起始位置名稱數值類型位序09994In tegerbig4UnUSed0In tegerbig8UnUSed0In tegerbig12UnUSed0In tegerbig16UnUSed0In tegerbig20UnUSed0In tegerbig24文件長度文件的實際長度In tegerbig28版本號1000In tegerLittIe32幾何類型表示這個ShaPefiIe 文件所記錄的空間數據 的幾何類型In tegerLittIe36Xmin空間數據所占空間范圍的 X方向最小值DoubleLittIe44Ymin空間數據所占空間范圍的 Y方向最小值Doubl
3、eLittIe52XmaX空間數據所占空間范圍的 X方向最大值DoubleLittIe60YmaX空間數據所占空間范圍的 Y方向最大值DoubleLittIe68*Zmin空間數據所占空間范圍的 Z方向最小值DoubleLittIe76*ZmaX空間數據所占空間范圍的 Z方向最大值DoubleLittIe84*Mmi n最小MeaSUre值DoubleLittIe92*MmaX最大MeaSUre值DoubleLittIe表2.2 ShaPefiIeS頭文件表注:最后4個加星號特別標示的四個數據只有當這個ShaPefiIe 文件包含Z方向坐標或者具有 MeaSUre值時才有值,否則為 0.0。所
4、謂MeaSUre值,是用于存儲需要的附加數據,可以用來記錄各種數據,例如權 值、道路長度等信息。(1) 位序細心的讀者會注意到表2.2中的數值的位序有 LittIe 和big的區別,對于位序是big的數據我們在讀取時要小心。通常,數據的位序都是LittIe,但在有些情況下可能會是big ,二者的區別在于它們位序的順序Little 即可。轉換原(ss) 中相反。一個位序為 big 的數據,如果我們想得到它的真實數值,需要將它的位序轉換成 理非常簡單,就是交換字節順序,下面是作者實現的在兩者間進行轉換的程序,代碼如下:/ 位序轉換程序unsigned long OnChange ByteOrder
5、 (int indata)char ss8;char ee8;unsigned long val = unsigned long(indata);_ultoa( val, ss, 16 );/將十六進制的數 (val) 轉到一個字符串int i;int length=strlen(ss);if(length!=8)for(i=0;i<8-length;i+)eei='0'for(i=0;i<length;i+)eei+8-length=ssi; for(i=0;i<8;i+)ssi=eei;/* 進行倒序int t;t=ss0;ss0=ss6;ss6=t;t=
6、ss1;ss1=ss7;ss7=t;=ss2;ss2=ss4;ss4=t;ss3ss5/*=ss3;=ss5;=t;*將存有十六進制數(Val)的字符串(SS)中的十六進制數轉成十進制數int VaIUe=0;for(i=0;i<8;i+)int k;CStri ng mass;mass=ssi;if(ssi='a' |ssi='b' |ssi='c' |ssi='d' |ssi='e' |ssi='f)k=10+ssi-'a'elseSSCa nf(mass,"%d&quo
7、t;, &k);VaIUe=Value+i nt(k*pow(16,7-i);return (value);(2) ShaPefiIe 文件支持的幾何類型(ShaPeTyPe)ShaPefiIe文件所支持的幾何類型如表2.3所示:編號幾何類型0Null ShaPe (表示這個ShaPefiIe 文件不含坐標)1Point (表示ShaPefiIe文件記錄的是點狀目標,但不是多點)3PoIyLine (表示ShaPefiIe 文件記錄的是線狀目標)5Polygon (表示ShaPefiIe 文件記錄的是面狀目標)8MUItiPOint(表示ShaPefiIe 文件記錄的是多點,即點集合)
8、11PointZ (表示ShaPefiIe 文件記錄的是二維點狀目標)13PoIyLineZ (表示ShaPefiIe 文件記錄的是二維線狀目標)15PolygonZ (表示ShaPefiIe 文件記錄的是二維面狀目標)18MUItiPOintZ (表示ShaPefiIe文件記錄的是二維點集合目標)21PointM (表示含有MeaSUre值的點狀目標)23PoIyLineM (表示含有 MeaSUre值的線狀目標)25PolygonM (表示含有MeaSUre值的面狀目標)28MUItiPOintM (表示含有MeaSUre值的多點目標)31MUItiPatCh (表示復合目標)表2.3 S
9、haPefiIeS文件支持的幾何類型對于一個不是記錄NUIl ShaPe 類型的ShaPefiIe 文件,它所記錄的空間目標的幾何類型必須一致,不能在一個ShaPefiIe文件中同時記錄兩種不同類型的幾何目標。讀取坐標文件(.shp )的文件頭的代碼如下:Void OnReadShP ( CString ShP )FILE* m_Shp;/*ShP 文件指針/打開坐標文件if(m_Shp(Shp,"rb")=NULL)return;/讀取坐標文件頭的內容開始int ;int Unu sed;int ;int Version;int ShapeType;double Xmi
10、n;double Ymi n;double Xmax;double Ymax;double Zmin;double Zmax;double Mmin;double Mmax;fread(&, sizeof(int), 1,m_Shp);= OnChange ByteOrder ();for(i=0;i<5;i+)fread(&Unused,sizeof(int), 1,m_Shp);fread(&, sizeof(int), 1,m_Shp);= OnChange ByteOrder ();fread(&Version, fread(&ShapeT
11、ype, fread(&Xmin, fread(&Ymin, fread(&Xmax, fread(&Ymax, fread(&Zmin, fread(&Zmax, fread(&Mmin, fread(&Mmax,sizeof(int), 1,m_Shp)sizeof(int), 1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Sh
12、p);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);/ 讀取坐標文件頭的內容 結束 / 根據幾何類型讀取實體信息2) 實體信息的內容每一個記錄段記錄一個地理實體目標的坐標信息,實體信息負責記錄坐標信息, 它以記錄段為基本單位,每個記錄段分為記錄頭和記錄內容兩部分。記錄頭的內容包括記錄號( Record Number )和坐標記錄長度 (Content Length) 兩個記錄項。它們的位 序都是 big 。記錄號( Record Number )和坐標記錄長度 (Content Length) 兩
13、個記錄項都是 int 型,并且 shapefile 文件中的記錄號都是從 1 開始的。記錄內容包括目標的幾何類型( ShaPeTyPe)和具體的坐標記錄(X、Y),記錄內容因要素幾何類型的不 同其具體的內容及格式都有所不同。下面分別介紹點狀目標(Point )、線狀目標(PoIyLine )和面狀目標(Polygon )三種幾何類型的.shp文件的記錄內容:點狀目標ShaPefiIe中的點狀目標由一對X、Y坐標構成,坐標值為雙精度型( double )。點狀目標的記錄內容如表 2.4 :記錄項數值數據類型長度個數位序幾何類型(ShaPeTyPe)1 (表示點狀目標)int型41LittIeX方
14、向坐標X方向坐標值double型81LittIeY方向坐標Y方向坐標值double型81LittIe表2.4點狀目標的記錄內容F面是讀取點狀目標的記錄內容的代碼:On ReadPOi ntShp(CStri ng ShP)/打開坐標文件/讀取坐標文件頭的內容 開始/讀取點狀目標的實體信息int RecordNumber;int Conten tLe ngth;int num=0;while(fread(&RecordNumber,SiZeof( in t),1,Shp)!=0)nu m+;fread(&Con te ntLe ngth,sizeof(i nt),1,Shp);R
15、eCOrdNUmber= OnChange ByteOrder (RecordNumber);ContentLength= OnChange ByteOrder (ContentLength);int ShapeType;double x;double y;fread(&shapeType, SiZeof( in t),1,Shp);fread( &x, SiZeOf(double),1,Shp);fread( &y, SiZeOf(double),1,Shp);線狀目標ShaPefile中的線狀目標是由一系列點坐標串構成,一個線目標可能包括多個子線段,子線段之間可以是
16、相離的,同時子線段之間也可以相交。ShaPefiIe 允許出現多個坐標完全相同的連續點,當讀取文件時一定要注意這種情況,但是不允許出現某個退化的、長度為O的子線段出現。線狀目標的記錄內容如表2.5 :具體的數據結構如下:PoIyLi neDouble4BoxIn tegerNUmPartSIn tegerNUmPOi ntsIn tegerNumPartsPartSPoi ntNumPoi ntsPoi nts/當前線狀目標的坐標范圍/當前線目標所包含的子線段的個數/當前線目標所包含的頂點個數/每個子線段的第一個坐標點在Points的位置/記錄所有坐標點的數組記錄項數值數據類型長度個數位序幾何
17、類型(ShaPeTyPe)3 (表示線狀目標)int型41LittIe坐標范圍(Box)表示當前線目標的坐 標范圍double型324LittIe子線段個數 (NUmPartS)表示構成當前線目標 的子線段的個數int型41LittIe坐標點數(NUmPOints)表示構成當前線目標 所包含的坐標點個數int型41LittIePartS數組記錄了每個子線段的 坐標在Points數組中的起始位置int型4 × NUmPartSNUmPartSLittIePointS數組記錄了所有的坐標信 息Point 型根據點個數 來確定NUmPOi ntsLittIe表2.5線狀目標的記錄內容這些記
18、錄項的具體含義如下:Box記錄了當前的線目標的坐標范圍,它是一個double型的數組,按照 Xmin、Ymin、Xmax、YmaX的順序記錄了坐標范圍;NUmPartS記錄了當前線目標所包含的子線段的個數;NumPoints 記錄了當前線目標的坐標點總數;Parts 記錄了每個子線段的第一個坐標點在坐標數組 points 中的位置,以便讀取數據;PointS是用于存放當前線目標的X Y坐標的數組。下面是讀取線狀目標的記錄內容的代碼:OnReadLineShp(CString Shp)/ 打開坐標文件/ 讀取坐標文件頭的內容 開始/ 讀取線狀目標的實體信息int RecordNumber;int
19、 ContentLength;int num =0;while(fread(&RecordNumber,Sizeof(int),1,Shp)!=0)fread(&ContentLength,Sizeof(int),1,Shp);RecordNumberContentLength= OnChange ByteOrder (RecordNumber);= OnChangeByteOrder (ContentLength);int ShapeType;double Box4;int NumPartS;int NumPointS;int *PartS;fread(&ShapeT
20、ype,Sizeof(int),1,Shp);/ 讀 Boxfor(i=0;i<4;i+)fread(Box+i,Sizeof(double),1,Shp);/ 讀 NumPartS 和 NumPointSfread(&NumParts,sizeof(int),1,Shp);rtsi;tsi;fread(&NumPoints, sizeof(int), 1,Shp); / 讀 Parts 和 PointsParts=new intNumParts;for(i=0;i<NumParts;i+)fread(Parts+i, sizeof(int),int pointNu
21、m;for(i=0;i<NumParts;i+)if(i!=NumParts-1)pointNumelsepointNumdouble *PointsX;double *PointsY;1,Shp);=Partsi+1-Pa=NumPoints-Parsizeof(double),1,Shp);sizeof(double),1,Shp);PointsX =new doublepointNum;PointsY =new doublepointNum;for(j=0;j<pointNum;j+)fread(PointsX+j,fread(PointsY+j,delete PointsX
22、;delete PointsY;delete Parts;(3) 面狀目標shapefile 中 的面狀目標是由多個子環構成,每個子環是由至少四個頂點構成的封閉的、無自相交現象 的環。 對于含有島的多邊形,構成它的環有內外環之分, 每個環的頂點的排 列順序或者方向說明了這個環到 底是內環還是外環。一個內環的頂點是按照逆時針順序排列的;而對于外環,它的頂點排列順序是順時針方 向。如果一個多邊形只由 一個環構成,那么它的頂點排列順序肯定是順時針方向。PolygonDouble4IntegerIntegerIntegerNumParts PartsPointNumPoints Points每條多邊形
23、記錄的數據結構與線目標的數據結構完全相同,Box / 當前面狀目標的坐標范圍NumParts / 當前面目標所包含的子環的個數NumPoints / 構成當前面狀目標的所有頂點的個數/ 每個子環的第一個坐標點在 Points 的位置/ 記錄所有坐標點的數組對于一個 shapefile 中的多邊形,它必須滿足下面三個條件:構成多邊形的每個子環都必須是閉合的,即每個子環的第一個頂點跟最后一個頂點是同一個點; 每個子環在 Points 數組中的排列順序并不重要, 但每個子環的頂點必須按照一定的順序連續排列; 存儲在 shapefile 中的多邊形必須是干凈的。所謂一個干凈的多邊形,它必須滿足兩點:沒
24、有自相交現象。 這就要求任何一個子環不能跟其它的子環相交, 共線的現 象也將被當作相 交。但是允許兩個子環的頂點重合;對于一個不含島的多邊形或者是含島的多邊形的外環, 它們的頂點排列順序必須是順時針方向; 而對于內環,它的排列順序必須是逆時針方向。所謂的“臟多邊形”就是指頂點排列順序為順時 針的內環。圖 2.2 中的多邊形是一個典型的例子。這個多邊形包括一個島,所有頂點的個數為8。 NumParts 等于 2,NumPoints 等于 10。請注意內環(島)的頂點的排列順序是逆時針的(如圖2.3 所示)。v5圖 2.2 帶島的多邊形0055v10v21v32v43v14v55v86v77v6圖
25、2.3帶島的多邊形的坐標記錄面狀目標的記錄內容如表2.6 :記錄項數值數據類型長度個數位序幾何類型(ShaPeTyPe)5 (表示面狀目標)int型41LittIe坐標范圍(BoX)表示當前面目標的坐標 范圍double型324LittIe子線段個數 (NUmPartS)表示構成當前面狀目標 的子環的個數int型41LittIe坐標點數(NUmPOints)表示構成當前面狀目標 所包含的坐標點個數int型41LittIePartS數組記錄了每個子環的坐標 在Points數組中的起始位置int型4 × NUmPartSNUmPartSLittIePointS數組記錄了所有的坐標信息Po
26、int 型根據點個數 來確定NUmPOi ntsLittIe表2.6面狀目標的記錄內容F面是讀取面狀目標的記錄內容的代碼:void On ReadAreaShP(CStri ng ShP)/打開坐標文件/讀取坐標文件頭的內容 開始/讀取面狀目標的實體信息int RecordNumber;int Conten tLe ngth;SiZeof( in t),1,m_Shp)!=0)while(fread(&RecordNumber,fread(&ContentLength,sizeof(int),1,m_Shp);RecordNumber= OnChange ByteOrder (
27、RecordNumber);ContentLength= OnChange ByteOrder (ContentLength);int shapeType;double Box4;int NumParts;int NumPoints;int *Parts;fread(&shapeType,sizeof(int),1,m_Shp);i;/ 讀 Boxfor(i=0;i<4;i+)fread(Box+i,sizeof(double),1,m_Shp);/ 讀 NumParts 和 NumPointsfread(&NumParts,sizeof(int),1,m_Shp);fr
28、ead(&NumPoints,sizeof(int),1,m_Shp);/ 讀 Parts 和 PointsParts =new intNumParts;for(i=0;i<NumParts;i+)fread(Parts+i, sizeof(int), 1,m_Shp);int pointNum;int xx;int yy;for(i=0;i<NumParts;i+)if(i!=NumParts-1)pointNum =Partsi+1-Partselse;pointNum=NumPoints-Partsidouble *Poi ntsX;double *Poi ntsY;
29、Poi ntsX =new doublepo in tNum;Poi ntsY =new doublepo in tNum;for(j=0;j<poi ntNum;j+)fread(Poi ntsX+j, SiZeof(double),1,m_Shp);fread(Poi ntsY+j, SiZeOf(double),1,m_Shp);delete Poi ntsX;delete Poi ntsY;delete Parts;2.屬性文件的結構說明(如屬性文件(.dbf)用于記錄屬性信息。它是一個標準的 DBF文件,也是由頭文件和實體信息兩部分構成 圖2.4所示)。圖2.4屬性文件的結構1
30、) 屬性文件的文件頭其中文件頭部分的長度是不定長的,它主要對DBF文件作了一些總體說明(見表 2.7 ),其中最主要的是對這個DBF文件的記錄項的信息進行了詳細地描述,比如對每個記錄項的名稱、數據類型、長度等信息都 有具體的說明。在文件中 的位置內容說明01個字節表示當前的版本信息1 33個字節表示最近的更新日期,按照 YYMMDD格式。4 71個32位數文件中的記錄條數。8 91個16位數文件頭中的字節數。10 111個16位數一條記錄中的字節長度。12 132個字節保留字節,用于以后添加新的說明性信息時使用,這里用O來填寫。141個字節表示未完成的操作。151個字節dBASE IV 編密碼
31、標記。16 2712個字節保留字節,用于多用戶處理時使用。281個字節DBF文件的MDX標識。在創建一個 DBF表時,如果使用了 MDX格式的索引文件,那么 DBF表的表頭中的這個字節就自 動被設置了一個標志,當你下次試圖重新打開這個DBF表的時候,數據引擎會自動識別這個標志,如果此標志為真,貝U 數據引擎將試圖打開相應的MDX文件。291個字節Lan guage driver ID.30 312個字節保留字節,用于以后添加新的說明性信息時使用,這里用O來填寫。32 X(n*32)個字 節記錄項信息描述數組。n表示記錄項的個數。這個數組的結構 在表2.8中有詳細的解釋。X+ 11個字節作為記錄
32、項終止標識。表2.7屬性文件(.dbf )的文件頭位置內容說明0 1011個字節記錄項名稱,是 ASCII碼值。111個字節記錄項的數據類型,是 ASCII碼值。(B C D G L、M和 N,具體的解釋見表 2.9 )。12 154個字節保留字節,用于以后添加新的說明性信息時使用,這里用0來填寫。161個字節記錄項長度,二進制型。171個字節記錄項的精度,二進制型。18 192個字節保留字節,用于以后添加新的說明性信息時使用,這里用0來填寫。201個字節工作區ID。21 3010個字節保留字節,用于以后添加新的說明性信息時使用,這里用0來填寫。311個字節MDX標識。如果存在一個 MDX格式
33、的索引文件, 那么這個記 錄項為真,否則為空。表2.8記錄項信息描述代碼數據類型允許輸入的數據B二進制型各種字符。C字符型各種字符。D日期型用于區分年、月、日的數字和一個字符,內部存儲按照 YYYYMMD格式。G(Ge neralOr OLE)各種字符。N數值型-.0 1 2 3 4 5 6 7 8 9(NUmeriC)L邏輯型(LOgiCaI )? Y y N n T t F f (?表示沒有初始化)。M(MemO)各種字符。表2.9 dbf文件中的數據類型2)屬性文件的實體信息實體信息部分就是一條條屬性記錄,每條記錄都是由若干個記錄項構成,因此只要依次循環讀取每條記 錄就可以了。3)一個讀
34、取dbf文件的例子假設要讀取一個名為 Soil的dbf文件(存儲了土地利用信息),它含有8個記錄項,記錄項信息如表2.10所示:記錄項名稱數據類型長度小數位數Area數值型(double)3115Perimeter數值型(double)3115soils數值型(int)J110soils id數值型(int):110soil code字符型(CharaCter )3無SUit字符型(CharaCter )1無Cen troid x數值型(double)3115Cen troid y數值型(double)3115表2.10 dbf文件中的數據類型下面是讀取這個 dbf文件的代碼:void On
35、ReadDbf(CStri ng Dbf)FILE* m_Dbf;/*Dbf文件指針/打開dbf文件if(m_Dbf(Dbf,"rb")=NULL)return;int i,j;/* 讀取dbf文件的文件頭開始BYTE VerSiO n;fread(&versio n,1,1,m_Dbf);BYTE date3;for(i=0;i<3;i+)fread(date+i, 1, 1,m_Dbf);int RecordNum;fread(&RecordNum,short HeaderByteNum;/*sizeof(int),1,m_Dbf);fread(&
36、amp;HeaderByteNum,sizeof(short), 1,m_Dbf);short RecordByteNum fread(&RecordByteNum,short Reserved1;sizeof(short), 1,m_Dbf);fread(&Reserved1,sizeof(short), 1,m_Dbf);BYTE Flag4s; fread(&Flag4s,BYTE EncrypteFlag; fread(&EncrypteFlag,for(i=0;i<3;i+)fread(&Unused,BYTE MDXFlag;fread
37、(&MDXFlag, sizeof(BYTE),BYTE LDriID; fread(&LDriID,sizeof(BYTE), 1,m_Dbf);sizeof(BYTE), 1,m_Dbf);sizeof(int), 1,m_Dbf);1,m_Dbf);short Reserved2;sizeof(BYTE), 1,m_Dbf);fread(&Reserved2,sizeof(short), 1,m_Dbf);BYTE name11;BYTE fieldType;int Reserved3;BYTE fieldLength;BYTE decimalCount;shor
38、t Reserved4;BYTE workID;short Reserved55;BYTE mDXFlag1;int fieldscount;fieldscount = (HeaderByteNum - 32) / 32;/ 讀取記錄項信息共有 8 個記錄項for(i=0;i< HeaderByteNum;i+)bytes11, 1,m_Dbf);bytessizeof(BYTE), 1,m_Dbf);bytes=0;/FieldName11fread(name,/FieldType1fread(&fieldType,/Reserved34Reserved3fread(&
39、Reserved3, sizeof(int), 1,m_Dbf); /FieldLength-1bytesfread(&fieldLength,sizeof(BYTE), 1,m_Dbf);/DecimalCount-1 bytes fread(&decimalCount,sizeof(BYTE), 1,m_Dbf);/Reserved42 bytesReserved4 =0;fread(&Reserved4, sizeof(short),1,m_Dbf);fread(&workID,sizeof(BYTE), 1,m_Dbf);bytes/WorkID/Res
40、erved510 bytesfor(j=0;j<5;j+)fread(Reserved5+j,sizeof(short), 1,m_Dbf);/MDXFlag11 bytesfread(&mDXFlag1, sizeof(BYTE), 1,m_Dbf);BYTE terminator;fread(&terminator, sizeof(BYTE), 1,m_Dbf);/ 讀取 dbf 文件頭結束double Area,Perimeter,Centroid_y,Centroid_x;int Soils_,Soils_id;CString Soil_code,suit;BYT
41、E deleteFlag;char media31;/ 讀取 dbf 文件記錄 開始for(i=0;i<RecordNum;i+)fread(&deleteFlag, sizeof(BYTE), 1,m_Dbf);/ 讀取 Area doublefor(j=0;j<31;j+)fread(media+j, sizeof(char), 1,m_Dbf);Area =atof(media);/ 讀取 Perimeter doublefor(j=0;j<31;j+)fread(media+j, sizeof(char), 1,m_Dbf);Perimeter =atof(media);/ 讀取 soils_ intfor(j=0;j<31;j+)s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對賭協議跟投資協議書
- 電工師傅帶徒弟協議書
- 揭陽公積金抵扣協議書
- 電梯補簽協議書
- 聯姻合作協議書
- 遺產贈予協議書
- 追資投資協議書
- 碰傷調解協議書
- 美國后勤協議書
- 工程股份制合同協議書
- 《基于STM32單片機健康監測模塊的設計與實現》7200字(論文)
- 靜脈留置針留置護理
- 設備技術規范書模板
- 2025年浙江寧波慈溪工貿集團限公司面向社會公開招聘工作人員16人高頻重點提升(共500題)附帶答案詳解
- 公路橋梁工程前場安全培訓
- 企業門衛培訓課件
- 企業門衛培訓內容
- 年產1000噸方便面工廠設計說明書
- 2024-2025學年數學滬科版七年級上冊期末綜合測試卷(四)(含答案)
- 2025年中考英語模擬試卷猜題卷(含答案)
- 基礎護理學選擇試題庫+答案
評論
0/150
提交評論