




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn))CRC即循環(huán)冗余校驗(yàn)碼(CyclicRedundancyCheck):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
CRC算法參數(shù)模型解釋:
NAME:參數(shù)模型名稱。WIDTH:寬度,即CRC比特?cái)?shù)。POLY:生成項(xiàng)的簡寫,以16進(jìn)制表示。例如:CRC-32即是0x04C11DB7,忽略了最高位的1,即完整的生成項(xiàng)是0x104C11DB7。INIT:這是算法開始時寄存器(crc)的初始化預(yù)置值,十六進(jìn)制表示。REFIN:待測數(shù)據(jù)的每個字節(jié)是否按位反轉(zhuǎn),True或False。REFOUT:在計(jì)算后之后,異或輸出之前,整個數(shù)據(jù)是否按位反轉(zhuǎn),True或False。XOROUT:計(jì)算結(jié)果與此參數(shù)異或后得到最終的CRC值。
///**********************************************************************
///Name:CRC-4/ITU
x4+x+1
///Poly:0x03
///Init:0x00
///Refin:true
///Refout:true
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc1(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0x0C);//0x0C=(reverse0x03)(8-4)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc};
}
///**********************************************************************
///Name:CRC-5/EPC
x5+x3+1
///Poly:0x09
///Init:0x09
///Refin:false
///Refout:false
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc2(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0x48;//Initialvalue:0x48=0x09(8-5)
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc0x80)0)
crc=(byte)((crc1)^0x48);//0x48=0x09(8-5)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{(byte)(crc3)};
}
///**********************************************************************
///Name:CRC-5/ITU
x5+x4+x2+1
///Poly:0x15
///Init:0x00
///Refin:true
///Refout:true
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc3(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0x15);//0x15=(reverse0x15)(8-5)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc
};
}
///**********************************************************************
///Name:CRC-5/USB
x5+x2+1
///Poly:0x05
///Init:0x1F
///Refin:true
///Refout:true
///Xorout:0x1F
///*************************************************************************
publicstaticbyte[]Crc4(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0x1F;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0x14);//0x14=(reverse0x05)(8-5)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{(byte)(crc^0x1F)
};
}
///**********************************************************************
///Name:CRC-6/ITU
x6+x+1
///Poly:0x03
///Init:0x00
///Refin:true
///Refout:true
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc5(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0x30);//0x30=(reverse0x03)(8-6)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc
};
}
///**********************************************************************
///Name:CRC-7/MMC
x7+x3+1
///Poly:0x09
///Init:0x00
///Refin:false
///Refout:false
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc6(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc0x80)0)
crc=(byte)((crc1)^0x12);//0x12=0x09(8-7)
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{(byte)(crc1)
};
}
///**********************************************************************
///Name:CRC8
x8+x2+x+1
///Poly:0x07
///Init:0x00
///Refin:false
///Refout:false
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc7(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc0x80)0)
crc=(byte)((crc1)^0x07);
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc
};
}
///**********************************************************************
///Name:CRC-8/ITU
x8+x2+x+1
///Poly:0x07
///Init:0x00
///Refin:false
///Refout:false
///Xorout:0x55
///*************************************************************************
publicstaticbyte[]Crc8(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc0x80)0)
crc=(byte)((crc1)^0x07);
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{(byte)(crc^0x55)
};
}
///**********************************************************************
///Name:CRC-8/MAXIM
x8+x5+x4+1
///Poly:0x31
///Init:0x00
///Refin:true
///Refout:true
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc9(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0x8C);//0x8C=reverse0x31
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc
};
}
///**********************************************************************
///Name:CRC-8/ROHC
x8+x2+x+1
///Poly:0x07
///Init:0xFF
///Refin:true
///Refout:true
///Xorout:0x00
///*************************************************************************
publicstaticbyte[]Crc10(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
bytecrc=0xFF;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(byte)((crc1)^0xE0);//0xE0=reverse0x07
else
crc=(byte)(crc1);
}
}
returnnewbyte[]{crc
};
}
///Z1協(xié)議校驗(yàn)碼計(jì)算
staticbyte[]table={0x00,0x1C,0x38,0x24,0x70,0x6C,0x48,0x54,0xE0,0xFC,
0xD8,0xC4,0x90,0x8C,0xA8,0xB4,0xDC,0xC0,0xE4,0xF8,
0xAC,0xB0,0x94,0x88,0x3C,0x20,0x04,0x18,0x4C,0x50,
0x74,0x68,0xA4,0xB8,0x9C,0x80,0xD4,0xC8,0xEC,0xF0,
0x44,0x58,0x7C,0x60,0x34,0x28,0x0C,0x10,0x78,0x64,
0x40,0x5C,0x08,0x14,0x30,0x2C,0x98,0x84,0xA0,0xBC,
0xE8,0xF4,0xD0,0xCC,0x54,0x48,0x6C,0x70,0x24,0x38,
0x1C,0x00,0xB4,0xA8,0x8C,0x90,0xC4,0xD8,0xFC,0xE0,
0x88,0x94,0xB0,0xAC,0xF8,0xE4,0xC0,0xDC,0x68,0x74,
0x50,0x4C,0x18,0x04,0x20,0x3C,0xF0,0xEC,0xC8,0xD4,
0x80,0x9C,0xB8,0xA4,0x10,0x0C,0x28,0x34,0x60,0x7C,
0x58,0x44,0x2C,0x30,0x14,0x08,0x5C,0x40,0x64,0x78,
0xCC,0xD0,0xF4,0xE8,0xBC,0xA0,0x84,0x98,0xA8,0xB4,
0x90,0x8C,0xD8,0xC4,0xE0,0xFC,0x48,0x54,0x70,0x6C,
0x38,0x24,0x00,0x1C,0x74,0x68,0x4C,0x50,0x04,0x18,
0x3C,0x20,0x94,0x88,0xAC,0xB0,0xE4,0xF8,0xDC,0xC0,
0x0C,0x10,0x34,0x28,0x7C,0x60,0x44,0x58,0xEC,0xF0,
0xD4,0xC8,0x9C,0x80,0xA4,0xB8,0xD0,0xCC,0xE8,0xF4,
0xA0,0xBC,0x98,0x84,0x30,0x2C,0x08,0x14,0x40,0x5C,
0x78,0x64,0xFC,0xE0,0xC4,0xD8,0x8C,0x90,0xB4,0xA8,
0x1C,0x00,0x24,0x38,0x6C,0x70,0x54,0x48,0x20,0x3C,
0x18,0x04,0x50,0x4C,0x68,0x74,0xC0,0xDC,0xF8,0xE4,
0xB0,0xAC,0x88,0x94,0x58,0x44,0x60,0x7C,0x28,0x34,
0x10,0x0C,0xB8,0xA4,0x80,0x9C,0xC8,0xD4,0xF0,0xEC,
0x84,0x98,0xBC,0xA0,0xF4,0xE8,0xCC,0xD0,0x64,0x78,
0x5C,0x40,0x14,0x08,0x2C,0x30
};
publicstaticbyte[]Crc11(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
inti;
bytecrc=0x00;
inttableIndex;
for(i=start;ilength;i++)
{
tableIndex=crc^(buffer[i]0xFF);
crc=table[tableIndex];
}
returnnewbyte[]{crc};
}
///**********************************************************************
///Name:CRC-12
x16+x12+x5+1
///Poly:0x80
///Init:0x0000
///Refin:true
///Refout:true
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc12(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
shortiQ=0,iR=0;
for(inti=start;ilength;i++)
{
//多項(xiàng)式除法
//如果該位為1
if((buffer[i](0x80iR))0)
{
//則在余數(shù)尾部添1否則添0
crc|=0x01;
}
//如果12位除數(shù)中的最高位為1,則夠除
if(crc=0x1000)
{
crc^=0x180D;
}
crc=1;
iR++;
if(8==iR)
{
iR=0;
iQ++;
}
}
//對后面添加的12個0做處理
for(inti=0;ii++)
{
if(crc=0x1000)
{
crc^=0x180D;
}
crc=1;
}
crc=1;
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/CCITT
x16+x12+x5+1
///Poly:0x1021
///Init:0x0000
///Refin:true
///Refout:true
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc13(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0x8408);//0x8408=reverse0x1021
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/CCITTFALSE
x16+x12+x5+1
///Poly:0x1021
///Init:0xFFFF
///Refin:false
///Refout:false
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc14(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0xFFFF;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=(ushort)(buffer[i]8);
for(intj=0;jj++)
{
if((crc0x8000)0)
crc=(ushort)((crc1)^0x1021);
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/DNP
x16+x13+x12+x11+x10+x8+x6+x5+x2+1
///Poly:0x3D65
///Init:0x0000
///Refin:true
///Refout:true
///Xorout:0xFFFF
///*************************************************************************
publicstaticbyte[]Crc15(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0xA6BC);//0xA6BC=reverse0x3D65
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes((ushort)~crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/IBM
x16+x15+x2+1
///Poly:0x8005
///Init:0x0000
///Refin:true
///Refout:true
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc16(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0xA001);//0xA001=reverse0x8005
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/MAXIM
x16+x15+x2+1
///Poly:0x8005
///Init:0x0000
///Refin:true
///Refout:true
///Xorout:0xFFFF
///*************************************************************************
publicstaticbyte[]Crc17(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0xA001);//0xA001=reverse0x8005
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes((ushort)~crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/MODBUS
x16+x15+x2+1
///Poly:0x8005
///Init:0xFFFF
///Refin:true
///Refout:true
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc18(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0xFFFF;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0xA001);//0xA001=reverse0x8005
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/USB
x16+x15+x2+1
///Poly:0x8005
///Init:0xFFFF
///Refin:true
///Refout:true
///Xorout:0xFFFF
///*************************************************************************
publicstaticbyte[]Crc19(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0xFFFF;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0xA001);//0xA001=reverse0x8005
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes((ushort)~crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/X25
x16+x12+x5+1
///Poly:0x1021
///Init:0xFFFF
///Refin:true
///Refout:true
///Xorout:0xFFFF
///*************************************************************************
publicstaticbyte[]Crc20(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0xFFFF;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=buffer[i];
for(intj=0;jj++)
{
if((crc1)0)
crc=(ushort)((crc1)^0x8408);//0x8408=reverse0x1021
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes((ushort)~crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC-16/XMODEM
x16+x12+x5+1
///Poly:0x1021
///Init:0x0000
///Refin:false
///Refout:false
///Xorout:0x0000
///*************************************************************************
publicstaticbyte[]Crc21(byte[]buffer,intstart=0,intlen=0)
{
if(buffer==null||buffer.Length==0)returnnull;
if(start0)returnnull;
if(len==0)len=buffer.Length-start;
intlength=start+len;
if(lengthbuffer.Length)returnnull;
ushortcrc=0;//Initialvalue
for(inti=start;ilength;i++)
{
crc^=(ushort)(buffer[i]8);
for(intj=0;jj++)
{
if((crc0x8000)0)
crc=(ushort)((crc1)^0x1021);
else
crc=(ushort)(crc1);
}
}
byte[]ret=BitConverter.GetBytes(crc);
Array.Reverse(ret);
returnret;
}
///**********************************************************************
///Name:CRC32
x32+x26+
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全教育培訓(xùn)交通安全強(qiáng)化知識競賽試題庫
- 2025年報(bào)關(guān)員職業(yè)資格考試試卷:進(jìn)出口貿(mào)易實(shí)務(wù)案例分析
- 2025年物流師(中級)物流案例分析知識鑒定試卷
- 外研版中考英語復(fù)習(xí) 學(xué)科素養(yǎng) 主題:自然生態(tài)與環(huán)境保護(hù) 課件
- 2025年阿拉伯語水平測試模擬試卷:阿拉伯語詞匯與語法實(shí)戰(zhàn)訓(xùn)練試題集
- 醫(yī)療設(shè)備采購協(xié)議合同書
- 婚姻咨詢服務(wù)協(xié)議
- 企業(yè)年度公關(guān)策劃與執(zhí)行協(xié)議
- 文化旅游小鎮(zhèn)項(xiàng)目開發(fā)對社區(qū)社會穩(wěn)定風(fēng)險(xiǎn)評估與風(fēng)險(xiǎn)防范報(bào)告
- 建筑行業(yè)項(xiàng)目經(jīng)理出資證明書(6篇)
- 2025年湖北省高考政治試卷真題(含答案)
- 多芯粒集成芯片系統(tǒng)級可測試性設(shè)計(jì)優(yōu)化研究
- 2025年中國USB-C充電器行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 老齡化社會的數(shù)字包容-洞察及研究
- 廣東省深圳市寶安區(qū)2023-2024學(xué)年二年級下冊期末測試數(shù)學(xué)試卷(含答案)
- 2025江蘇揚(yáng)州寶應(yīng)縣“鄉(xiāng)村振興青年人才”招聘67人筆試備考試題及參考答案詳解
- 北京市順義區(qū)2023-2024學(xué)年五年級下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 2025公基題庫(附答案解析)
- 2025年山東省普通高中學(xué)業(yè)水平合格考預(yù)測歷史試卷(含答案)
- 三大監(jiān)測培訓(xùn)試題及答案
- 超市商場保密協(xié)議書
評論
0/150
提交評論