第二章 BMP位图类的创建与MFC单文档视图类的显示

时间:2019-05-13 22:31:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《第二章 BMP位图类的创建与MFC单文档视图类的显示》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《第二章 BMP位图类的创建与MFC单文档视图类的显示》。

第一篇:第二章 BMP位图类的创建与MFC单文档视图类的显示

BMP位图文件的4个组成部分

bmp文件大体上分成四个部分。

位图文件头BITMAPFILEHEADER、位图信息头BITMAPINFOHEADER、调色板Palette、实际的位图数据ImageDate 第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。其定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;1.文件头信息块

0000-0001 :文件标识,为字母ASCII码“BM”。0002-0005 :文件大小。

0006-0009 :保留,每字节以“00”填写。

000A-000D :记录图像数据区的起始位置。各字节的信息含义依次为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。

第2部分为位图信息头BITMAPINFOHEADER,也是一个结构体类型的数据结构,该结构的长度也是固定的,为40个字节(WORD为无符号16位整数,DWORD为无符号32位整数,LONG为32位整数)。其定义如下: typedef struct tagBITMAPINFOHEADER { DWORD biSize;图像描述信息块的大小,常为28H。

LONG biWidth;

LONG biHeight;

WORD biPlanes;=1

WORD biBitCount;记录像素的位数

DWORD biCompression;数据压缩方式

DWORD biSizeImage;图像区数据的大小

LONG biXPelsPerMeter;指定目标设备的水平分辨率,单位是像素/米

LONG biYPelsPerMeter;

DWORD biClrUsed;位图实际用到的颜色数

DWORD biClrImportant;位图显示过程中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的。

} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;2.图像描述信息块

000E-0011:图像描述信息块的大小,常为28H。0012-0015:图像宽度。0016-0019:图像高度。

001A-001B:图像的plane总数(恒为1)。

001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。0022-0025:图像区数据的大小。

0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。

002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。

002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。第3部分为颜色表。颜色表实际上是一个RGBQUAD结构的数组,数组的长度由biClrUsed指定(如果该值为零,则由biBitCount指定,即2的biBitCount次幂个元素)。RGBQUAD结构是一个结构体类型,占4个字节,其定义如下:

typedef struct tagRGBQUAD { BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;}RGBQUAD;3.颜色表

颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。即首先4字节表示颜色号0的颜色,接下来表示颜色号1的颜色,依此类推。

第4部分是位图数据,即图像数据,其紧跟在位图文件头、位图信息头和颜色表(如果有颜色表的话)之后,记录了图像的每一个像素值。对于有颜色表的位图,位图数据就是该像素颜色在调色板中的索引值;对于真彩色图,位图数据就是实际的R、G、B值(三个分量的存储顺序是B、G、R)。下面分别就2色、16色、256色和真彩色位图的位图数据进行说明:

— 对于2色位图,用1位就可以表示该像素的颜色,所以1个字节能存储8个像素的颜色值。

— 对于16色位图,用4位可以表示一个像素的颜色。所以一个字节可以存储2个像素的颜色值。

— 对于256色位图,1个字节刚好存储1个像素的颜色值。— 对于真彩色位图,3个字节才能表示1个像素的颜色值。需要注意两点:

第一,Windows规定一个扫描行所占的字节数必须是4的倍数,不足4的倍数则要对其进行扩充。假设图像的宽为biWidth个像素、每像素biBitCount个比特,其一个扫描行所占的真实字节数的计算公式如下:

DataSizePerLine =(biWidth * biBitCount /8+ 3)/ 4*4 那么,不压缩情况下位图数据的大小(BITMAPINFOHEADER结构中的biSizeImage成员)计算如下:

biSizeImage = DataSizePerLine * biHeight 第二,一般来说,BMP文件的数据是从图像的左下角开始逐行扫描图像的,即从下到上、从左到右,将图像的像素值一一记录下来,因此图像坐标零点在图像左下角。

CDIB类的建立

class CDib { public:

LPRGBQUAD

m_lpRgbQuad;//颜色表指针

LPBYTE

m_lpData;//位图数据指针

UINT

m_numberOfColors;//颜色数

BOOL

m_bValid;//位图是否有效 BOOL

m_bHasRgbQuad;//是否有颜色表 HPALETTE

m_hPalette;

//调色板句柄

LPBITMAPFILEHEADER m_lpBmpFileHeader;//位图文件头指针

LPBITMAPINFOHEADER m_lpBmpInfoHeader;//位图信息头指针

LPBITMAPINFO

m_lpBmpInfo;//位图信息指针 LPBYTE

m_lpDib;//位图指针,包含除位图文件头的所有内容、需要动态分配和释放 DWORD size;public:

char m_fileName[256];

LPCTSTR GetFileName();

BOOL LoadFile(LPCTSTR dibFileName);BOOL SaveFile(LPCTSTR filename);//LPCTSTR GetFileName();

LONG GetWidth();

LONG GetHeight();

DWORD GetSize();//获取位图大小

WORD GetBitCount();//获取单个像素所占的位数

UINT GetLineByte();//获取每行像素所占字节数

UINT GetNumOfColor();//获取位图颜色数

LPRGBQUAD GetRgbQuad();//获取位图颜色表

LPBYTE

GetData();

//获取位图数据 BOOL Draw(CDC* pDC,BYTE *,CPoint origin,CSize size);//显示位图 BOOL HasRgbQuad();//判断是否有颜色表?

BITMAPINFO* GetInfo();

BOOL IsGrade();//判断是否为灰度图像 WORD PaletteSize(LPBYTE lpDIB);WORD DIBNumColors(LPBYTE lpDIB);

BOOL IsValid();//判断位图是否有效? protected:

DWORD CalcRgbQuadLength();//计算位图颜色表的长度 BOOL MakePalette();//根据颜色表生成调色板 void Empty(BOOL bFlag=TRUE);//清理空间

public: CDib(void);~CDib(void);

};

主要成员函数:

////////////////////////////////////////////////////////// //函数功能:从文件加载位图

//输入参数:LPCTSTR dibFileName表示待加载位图文件路径 //返回值:加载是否成功

///////////////////////////////////////////////////////////

BOOL CDib::LoadFile(LPCTSTR dibFileName){

strcpy(m_fileName,dibFileName);//记录位图文件名 CFile dibFile;//选择读模式定义文件对象

if(!dibFile.Open((LPCTSTR)m_fileName, CFile::modeRead|CFile::shareDenyWrite)){ } //Empty(FALSE);//为位图文件头指针分配空间,并初始化为 return FALSE;m_lpBmpFileHeader=(LPBITMAPFILEHEADER)new BYTE[sizeof(BITMAPFILEHEADER)];

memset(m_lpBmpFileHeader,0,sizeof(BITMAPFILEHEADER));//读取位图文件头

int nCount= dibFile.Read(m_lpBmpFileHeader,sizeof(BITMAPFILEHEADER));//读bmp文件头信息到指针m_lpBmpfileHeader if(nCount!=sizeof(BITMAPFILEHEADER))return FALSE;if(m_lpBmpFileHeader->bfType == 0x4d42)//判断是否是bmp文件

{ DWORD fileLength = dibFile.GetLength();//获取文件长度信息 size = fileLength-sizeof(BITMAPFILEHEADER);//文件数据区大小=文件长度-文件头大小

m_lpDib=new BYTE[size];memset(m_lpDib,0,size);dibFile.Read((void*)m_lpDib, size);//读除bmp文件头外的所有数据到指

dibFile.Close();//关闭文件

m_lpBmpInfo =(LPBITMAPINFO)m_lpDib;//获取bmp文件的信息 m_lpBmpInfoHeader =(LPBITMAPINFOHEADER)m_lpDib;//获取文件信息头地址 针m_lpDib m_lpRgbQuad =(LPRGBQUAD)(m_lpDib +m_lpBmpInfoHeader->biSize);

//颜色表地址=pDib +m_lpBmpInfoHeader->biSize;

int m_numberOfColors =GetNumOfColor();//颜色数 if(m_lpBmpInfoHeader->biClrUsed == 0)// m_lpBmpInfoHeader->biClrUsed =m_numberOfColors;//颜色表的大小CalcRgbQuadLength(){return m_numberOfColors *sizeof(RGBQUAD)} DWORD colorTableSize =CalcRgbQuadLength();//位图数据区地址

m_lpData =m_lpDib + m_lpBmpInfoHeader->biSize+ colorTableSize;

if(m_lpRgbQuad ==(LPRGBQUAD)m_lpData)// No color table m_lpRgbQuad = NULL;

}

m_lpBmpInfoHeader->biSizeImage = GetSize();m_bValid = TRUE;return TRUE;}

else {

} m_bValid = FALSE;AfxMessageBox(“This isn't a bitmap file!”);return FALSE;///////////////////////////////////////////////// //将位图保存到文件

//LPCTSTR filename表示位图文件保存路径文件名 //返回值,TRUE-表示成功

///////////////////////////////////////////////// BOOL CDib::SaveFile(LPCTSTR filename){

CFile dibFile;//以写模式打开文件

if(!dibFile.Open((LPCTSTR)filename, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive)){ } return FALSE;strcpy(m_fileName,filename);dibFile.Write(m_lpBmpFileHeader,sizeof(BITMAPFILEHEADER));//将位图文件头结构写进文件

dibFile.Write(m_lpBmpInfoHeader,sizeof(BITMAPINFOHEADER));//将位图信息头结构写进文件

DWORD dwRgbQuandLength=CalcRgbQuadLength();//计算颜色表长度

if(dwRgbQuandLength!=0)dibFile.Write(m_lpRgbQuad,dwRgbQuandLength);//若存在颜色表,则将颜色表写进位图文件

} DWORD dwDataSize=GetLineByte()*GetHeight();dibFile.Write(m_lpData,dwDataSize);//将位图数据写进位图文件 dibFile.Close();//关闭文件 return TRUE;

////////////////////////////////////////// //根据颜色表生成调色板

/////////////////////////////////////////// BOOL CDib::MakePalette(){ DWORD dwRgbQuadLength=CalcRgbQuadLength();if(dwRgbQuadLength==0)return FALSE;//为表示图像为真彩色图像,没有调色板 if(m_hPalette!=NULL)//删除旧的调色板对象

{

} //申请缓冲器,初始化为 DeleteObject(m_hPalette);m_hPalette=NULL;/*调色板编程见到这样两个结构: typedef struct tagPALETTEENTRY {

BYTE peRed;

BYTE peGreen;

BYTE peBlue;

BYTE peFlags;} PALETTEENTRY;

typedef struct tagLOGPALETTE {

WORD

palVersion;

WORD

palNumEntries;

PALETTEENTRY palPalEntry[1];// } LOGPALETTE;*/ DWORD dwNumOfColor=GetNumOfColor();DWORD dwSize= 2*sizeof(WORD)+dwNumOfColor*sizeof(PALETTEENTRY);LPLOGPALETTE lpLongPalette=(LPLOGPALETTE)new

BYTE[dwSize];

memset(lpLongPalette,0,dwSize);//生成逻辑调色板

lpLongPalette->palVersion=0x300;lpLongPalette->palNumEntries=dwNumOfColor;LPRGBQUAD lpRgbQuad =(LPRGBQUAD)m_lpRgbQuad;// m_lpRgbQuad位图文件颜色表地址

} for(int i=0;i

} m_hPalette=CreatePalette(lpLongPalette);//创建逻辑调色板 delete []lpLongPalette;return TRUE;lpLongPalette->palPalEntry[i].peRed=lpRgbQuad->rgbRed;lpLongPalette->palPalEntry[i].peGreen=lpRgbQuad->rgbGreen;lpLongPalette->palPalEntry[i].peBlue=lpRgbQuad->rgbBlue;lpLongPalette->palPalEntry[i].peFlags=0;lpRgbQuad++;LPCTSTR CDib::GetFileName(){ }

LONG CDib::GetWidth(){ } return m_lpBmpInfoHeader->biWidth;return m_fileName;

LONG CDib::GetHeight(){ }

DWORD CDib::GetSize(){

}

WORD CDib::GetBitCount(){ } return m_lpBmpInfoHeader->biBitCount;if(m_lpBmpInfoHeader->biSizeImage!=0){ } else { return GetWidth()*GetHeight();return m_lpBmpInfoHeader->biSizeImage;return m_lpBmpInfoHeader->biHeight;}

UINT CDib::GetLineByte(){ } /////////////////////////////////////////////// //获取图像使用的颜色数

////////////////////////////////////////////// UINT CDib::GetNumOfColor(){ UINT dwNumOfColor;//m_lpBmpInfoHeader->biClrUsed图像中使用的颜色数,m_lpBmpInfoHeader->biBitCount像素位数,,if((m_lpBmpInfoHeader->biClrUsed==0)&&(m_lpBmpInfoHeader->biBitCount<9)){

switch(m_lpBmpInfoHeader->biBitCount)

{

case 1:dwNumOfColor=2;break;

case 4:dwNumOfColor=16;break;

case 8:dwNumOfColor=256;

} } else

dwNumOfColor=m_lpBmpInfoHeader->biClrUsed;return dwNumOfColor;}

DWORD CDib::CalcRgbQuadLength(){ DWORD dwNumOfColor=GetNumOfColor();if(dwNumOfColor>256){

dwNumOfColor=0;} return dwNumOfColor*sizeof(RGBQUAD);} //////////////////////////////////////// //获取颜色表 return(GetWidth()*GetBitCount()/8+3)/4*4;//返回颜色表指针

/////////////////////////////////////// LPRGBQUAD CDib::GetRgbQuad(){ return m_lpRgbQuad;} ////////////////////////////////////// //获取位图数据区指针

//////////////////////////////////// LPBYTE CDib::GetData(){ return m_lpData;}

/////////////////////////////////////////////////////////// //函数功能:显示位图

//CDC *pDC表示设备环境指针

//CPoint origin 表示显示矩形区域的左上角 //CSize size表示显示矩形区域的大小

//////////////////////////////////////////////////////////// BOOL CDib::Draw(CDC* pDC,BYTE * lpData,CPoint origin,CSize size){

if(!IsValid())return FALSE;if(m_lpDib==NULL)return FALSE;HPALETTE hOldPalette=NULL;if(m_hPalette!=NULL)//如果位图有调色板则选进设备环境中 hOldPalette=SelectPalette(pDC->GetSafeHdc(),m_hPalette,TRUE);pDC->SetStretchBltMode(COLORONCOLOR);//设置位图伸缩模式 //将位图在pDC所指向的设备上进行显示

StretchDIBits(pDC->GetSafeHdc(),origin.x,origin.y,size.cx,size.cy,0,0,GetWidth(),GetHeight(),lpData,m_lpBmpInfo,DIB_RGB_COLORS,SRCCOPY);if(hOldPalette!=NULL)SelectPalette(pDC->GetSafeHdc(),hOldPalette,TRUE);//恢复旧的调试板

} BOOL CDib::HasRgbQuad(){ } BOOL CDib::IsValid(){ } BOOL CDib::IsGrade(){ } void

CDib::Empty(BOOL bFlag)//清理空间 { if(bFlag)strcpy(m_fileName,“");return(GetBitCount()<9&&GetBitCount()>0);return m_bValid;return m_bHasRgbQuad;return TRUE;

} if(m_lpBmpFileHeader!=NULL){

} if(m_lpDib!=NULL){

} if(m_hPalette!=NULL){

} m_bHasRgbQuad=FALSE;m_bValid=FALSE;DeleteObject(m_hPalette);m_hPalette=NULL;delete[] m_lpDib;m_lpDib=NULL;m_lpBmpInfo=NULL;m_lpBmpInfoHeader=NULL;m_lpRgbQuad=NULL;m_lpData=NULL;delete[] m_lpBmpFileHeader;m_lpBmpFileHeader=NULL;

MFC单文档中图像的显示与操作

一、创建MFC单文档工程:DIPAX

二、在DIPAX工程添加CDib类的定义及其实现。

三、在DIPAX工程MFC单文档中创建两个视图类,左右分开

1、首先创建类:

class CDynSplitterWnd :public CSplitterWnd { public: CDynSplitterWnd(void);~CDynSplitterWnd(void);};在CMainFrame中包含上述类的头文件,重写CMainFrame类的方法virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);

2、在重写类之前,创建新的视图类

class CDynSplitView : public CView //第一个视图类:CdipaxView

以及在CMainFrame里创建上述窗口分割类的对象CDynSplitterWnd m_wndSplitter;

3、现在可以重写上述OnCreateClient()方法了:{

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)// TODO: 在此添加专用代码和/或调用基类 if(!m_wndSplitter.CreateStatic(this, 1, 2)){ TRACE0(”Failed to Splitter windown“);return FALSE;} // add the first splitter panean input view in column 1 if(!m_wndSplitter.CreateView(0, 1,RUNTIME_CLASS(CDynSplitView), CSize(0, 0), pContext)){ TRACE0(”Failed to create second panen“);return FALSE;} // activate the input view SetActiveView((CView*)m_wndSplitter.GetPane(0,1));return TRUE;//return CFrameWnd::OnCreateClient(lpcs, pContext);

4、运行效果

四、在视图类CdipaxView中显示位图 1.在CdipaxDoc文档类中添加:

(1)添加头文件 #include ”DIB.h“(2)添加成员变量: CDib Cdib;CString filename;int statedoc;(3)添加OnFileOpen()事件函数: OnFileOpen()void CdipaxDoc::OnFileOpen(){ // TODO: 在此添加命令处理程序代码

CFileDialog dlg(TRUE,_T(”BMP“),_T(”*.BMP“),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(”位图文件(*.BMP)|*.BMP|“));

if(IDOK==dlg.DoModal())

filename.Format(”%s",dlg.GetPathName());

Cdib.LoadFile(filename);

statedoc=1;}(4)在构造函数中添加: CdipaxDoc::CdipaxDoc(){ // TODO: 在此添加一次性构造代码

statedoc=0;}

2、在CdipaxView视图类中添加:

(1)在CdipaxView.h中添加成员变量

public: CString filename;int state1;(2)在构造函数中添加: CdipaxView::CdipaxView(){ // TODO: 在此处添加构造代码 state1=0;}(3)改写菜单项:

(4)改写工具栏:

(5)在CdipaxView中为菜单ID_ORIGINIMAGE添加事件处理程序: void CdipaxView::OnOriginimage(){ // TODO: 在此添加命令处理程序代码

CdipaxDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);filename=pDoc->filename;state1=1;Invalidate();}

(6)重写OnDraw函数:

void CdipaxView::OnDraw(CDC* pDC){ CdipaxDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);

// TODO: 在此处为本机数据添加绘制代码

if(state1==1){

pDoc->Cdib.Draw(pDC,pDoc->Cdib.m_lpData,CPoint(0,0),CSize(pDoc->Cdib.GetWidth(),pDoc->Cdib.GetHeight()));

}

}(7)运行效果:

五、一个简单的二值化操作

1、在CDynSplitView中显示经过处理之后的图像(1)在CDynSplitView.h中添加 public: BYTE* image_out;//处理后图像数据区指针 BYTE* image_in;//处理前图像数据区指针

long m_imagex;//图像的宽度 long m_imagey;//图像的高度

int state2;//CDynSplitView视图类是否为当前视图 CPalette hPalette;public: void clearmem(void);//复制图像数据

(2)构造函数

CDynSplitView::CDynSplitView(){

image_out=NULL;

image_in=NULL;

state2=0;

m_imagex=0;

m_imagey=0;}(3)成员函数的实现

void CDynSplitView::clearmem(void){ CdipaxDoc* pDoc =(CdipaxDoc*)GetDocument();ASSERT_VALID(pDoc);pDoc->statedoc=0;state2=1;m_imagex=pDoc->Cdib.GetWidth();m_imagey=pDoc->Cdib.GetHeight();

long int size=m_imagex*m_imagey;if(pDoc->Cdib.GetBitCount()>8)

size=size*3;image_out=new BYTE[size];image_in=new BYTE[size];memcpy(image_in,pDoc->Cdib.m_lpData,size);//复制原图像到处理区 }(4)改写OnDraw()函数:

void CDynSplitView::OnDraw(CDC* pDC){ CdipaxDoc* pDoc = GetDocument();

} ASSERT_VALID(pDoc);if(!pDoc->statedoc&&state2==1){

pDoc->Cdib.Draw(pDC,image_out,CPoint(0,0),CSize(m_imagex,m_imagey));}

2、灰度图像的二值化处理操作

(1)添加图像操作菜单:ID_BINARIZATION,标题为二值化处理,并添加事件处理程序。

void CDynSplitView::OnBinarization(){ // TODO: 在此添加命令处理程序代码

clearmem();//复制图像数据

for(int i=0;i

for(int j=0;j

{

if(*(image_in+i*m_imagex+j)>128)

*(image_out+i*m_imagex+j)=255;

else

*(image_out+i*m_imagey+j)=0;

} } Invalidate();}

二值化处理:像素灰度值>128的为白色值255,否则为黑色值0。

第二篇:福建省高职单招制造类《金属加工与实训》复习答案

金属加工与实训答案

一、判断题:

1.√,2.√,3.×,4.√,5.×,6.×,7.×,8.×,9.×,10.×,11.×,12.×,13.√,14.√,15.√,16.×,17.×,18.√,19.√,20.×,21.√,22.×,23.√,24.×,25.×,26.×,27.×,28.√,29.×,30.×,31.√,32.√,33.×,34.×,35.√,36.×,37.√,38.√,39.√,40.√,41.×,42.√,43.√,44.√,45.×,46.×,47.×,48.×,49.×,50.×,51.×,52.√,53.√,54.×,55.×,56.×,57.×,58.√,59.√,60.√,61.×,62.×,63.√,64.√,65.√,66.×,67√,68.×,69.×,70.×,71.√,72.√,73.√,74.×,75.√,76.×,77.×,78.×,79.×,80.√,81.√,82.×,83.×,84.×,85.×,86.√,87.×,88.×,89.√,90.√,91.√,92.×,93.√,94.×,95.×,96.√,97.×,98.√,99.×,100.×,101.√,102.×,103.×,104.×,105.×,106.√,107.√,108.×,109.√,110.√,111.√,112.×,113.×,114.√,115.√,116.×,117.×,118.×。

二、选择题:

1.D,2.C,3.A,4.B,5.C,6.A,7.A,8.B,9.A,10.B,11.C,12.B,13.C,14.B,15.A,16.D,17.C,18.B,19.A,20.A,21.C,22.B,23.A,24.B,25.A,26.A,27.D,28.A,29.A,30.A,31.D,32.B,33.A,34.C,35.C,36.C,37.C,38.A,39.A,40.A,41.C,42.B,43.A,44.B,45.B,46.D,47.B,48.A,49.D,50.D,51.A,52.C,53.B,54.D,55.C,56.C,57.B,58.D,59.A,60.B,61.B,62.C,63.A,64.C,65.D,66.B,67.C,68.B,69.C,70.D,71.C,72.C,73.DAC,74.C,75.C,76.B,77.B,78.C,79.A,80.A,81.B,82.A,83.A,84.B,85.A,86.A,87.A,88.C。

第三篇:科技计划与基金项目申报咨询合同(一单一算 资金扶持类)

科技计划与基金项目申报咨询合同(一单一算 资金扶持类)

委托方(甲方):项目联系人:电话:电子信箱:传真:通讯地址:受托方(乙方):北京中企讯科技发展有限公司地址:北京市海淀区复兴路甲36号百朗园A2段1016室项目联系人:张雪梅电话:010-88202511电子信箱: zhongqixunkeji@126.com 传真:010-88202808依据《中华人民共和国合同法》,在甲乙双方保证其主体合法的基础上,甲方委托乙方就申报国家或省市资助计划项目提供咨询服务,为促使项目申报成功,甲、乙双方本着平等自愿、互惠互利的原则,达成如下协议,双方共同恪守。

甲方项目为:(以实际申报名称为准)。经乙方初步判断,认为甲方可以申报的科技计划或基金是:。

资金扶持类项目概念:是指项目立项后国家部委、省市项目主管部门以无偿资助、贷款贴息、退税等方式为企业提供资金扶持的科技项目;

第一条、甲方的权利和义务

1、甲方应及时完整地向乙方提供必要的基础材料,协助乙方完成申报材料的编制;

2、甲方根据乙方的咨询意见,及时办理相关附件,保证申报材料的完整并能成功递交到政府指定部门;

3、甲方向乙方提供的材料和文件必须真实有效;

4、甲方应当按时、足额向乙方支付本合同约定的咨询服务费;

5、甲方指定的项目联系人,负责转达甲方的要求,提供资料等,如甲方更换项目联系人,应当书面通知乙方;

6、根据乙方的咨询意见,甲方必须认真研读申报须知和申报指南,以确认是否符合申报条件和支持范围。

第二条、乙方的权利和义务

1、在甲方提供准确、完善的可行性研究基础数据的前提下,乙方为甲方申

报上述壹个项目提供咨询服务。服务内容包括撰写申报材料,执行全部网上申报流程,纸质文件递交到政府指定部门,必要时需甲方配合完成;

2、乙方应尽职完成本合同约定的咨询服务内容,维护甲方利益;

3、甲方有权就乙方服务范围内的事项,随时向乙方提出口头或书面询问,乙方应及时作出答复并按甲方要求随时告知工作进度;

4、乙方对申报材料中涉及的所有内容,不得向除国家或省市资助计划项目主管部门外的第三方透露;

5、本埠企业的项目申报材料由乙方负责通过地方相关部门逐级申报,外埠企业的项目申报材料由甲方按照乙方指导路线通过地方相关部门或机构逐级上报;

6、乙方的项目联系人与甲方项目联系人就合同中约定的内容相互联系,如乙方更换项目联系人,应当书面通知甲方。

第三条、佣金及付款方式

1、甲方同意付给乙方申报材料编制费人民币10000元,合计人民币壹万 元整,自本合同签定之日起三日内,甲方一次性支付乙方申报材料编制费的全部,即合计人民币壹万元整(¥:10000元)。乙方向甲方开具咨询服务费发票。

2、申报材料编制费人民币壹万元,仅作为乙方为甲方申报国家或省市资助计划时编制申报材料,执行全部网上申报流程,纸质文件递交的工作,不包括代办其他事项产生的工本费、行政事业收费和专业机构如会计师事务所的审计费、环评机构收费以及工程咨询甲级证书费用等;

3、由乙方撰写的国家或省市资助计划项目申报参评材料,经专家评审并获得批准立项后,甲方需根据以下四种情形,支付乙方咨询服务费。

(1)对于无偿资助项目,在第一笔资助资金到达甲方账户十个工作日内,甲方按照无偿资助总额的18%一次性付清乙方咨询服务费。乙方向甲方开具咨询服务费发票。

(2)对于贷款贴息项目,政府按照甲方当年向银行还款利息总额的一定比例补贴,在每一笔贴息资金到达甲方账户十个工作日内,甲方按照18%的比例一次性付清乙方咨询服务费,直至资助年限结束;乙方向甲方开具咨询服务费发票。

(3)对于返税资助项目,在五至八年内,政府按照甲方每年缴纳的税金总额,按照一定比例返还,在每一年每一笔返还的税金到达甲方账户十个工作日内,甲方按照18%的比例一次性付清乙方咨询服务费,直至资助年限结束;乙方向甲方开具咨询服务费发票。

(4)对于奖励类项目,甲方收到政府发放的奖金十个工作日内,按照18%的比例一次性付清乙方咨询服务费。乙方向甲方开具咨询服务费发票。

4、项目申报是否成功和项目被批准立项时间以主管部门立项公告或其他政

府文件为准;

5、项目立项后,如甲方需要乙方代为处理项目中期进度汇报、检查和后期验收的,需另支付乙方劳务费,劳务费的数额根据具体情况另议。如因为甲方项目执行结束时技术指标或财务指标未达标,从而使项目验收未能通过,其责任由甲方负责,乙方不承担任何责任;

6、甲方支付给乙方所有的咨询服务费,从自有资金中支付。如延迟支付,按日3‰支付滞纳金。

乙方开户银行名称、开户名和帐号为:

开户银行:北京银行白云支行

开 户 名:北京中企讯科技发展有限公司

帐号:***09038720

第四条、甲、乙双方共同的责任

根据服务内容需要,双方的文件往来必须使用本合同中约定的传真号码、通信地址或电子邮件地址传递,传递后应马上告知对方项目联系人签收。在五个工作日内,对方若无确认回函,可视为对方签收和对所提及的事项已确认,因此而造成的损失由有过错的一方自行承担。如一方需要变更传真号码、通信地址或电子邮件地址的,必须书面告知另一方。

第五条、服务流程

第一步:甲方提供初始资料。以下资料需在签定合同后,在乙方的要求时限内提供;

1.甲方近三年和近一个月的财务报表(包括资产负债表、损益表、现金流量表),如有审计报告需提供审计报告;固定资产投资明细表;成本明细表;执行的税率;项目预期产销量(五年)

2.营业执照;税务登记证;组织机构代码证;银行开户许可证;公司章程;高新技术企业证书;双软认证;ISO认证以及其它获奖证书等。

3.成果鉴定证书、科技查新报告、专利证书或专利受理通知书、专利说明书、软件著作权证书、新品种审定证书、集成电路版权证书、技术使用协议等;

4.检测或检验报告;技术报告;工作报告;项目备案或批准文件;环评意见;公司发展历程介绍;主要管理人员和技术人员以及财务管理人员的个人简历;

第二步:乙方根据申报项目的具体要求和甲方已经提交的资料,列出补充资料清单。并将补充资料清单发给甲方。甲方应在收到乙方补充资料清单后的三个工作日内将全部补充资料交给乙方。

第三步:乙方组织申报材料。乙方在收到甲方全部补充资料后开始编写申报材料,并在十个工作日内将申报材料发送给甲方。

第四步:申报材料确认。甲方在接到乙方发送过来的申报材料后的一个工作

日内确认申报材料

第五步:项目申报。在乙方确认申报材料后的三个工作日内应完成项目的申报。

第六步:请款。甲方的项目被批准立项后,乙方协助甲方向有关部门请款。在第一笔资金到甲方账户时,乙方即完成对甲方的服务流程。

第六条、合同的解除

本合同出现下列情形时,合同宣告解除:

1、乙方不按本合同的约定提供咨询服务,经甲方指出后,仍不改正的,甲方有权解除本合同;

2、甲方的委托事项违反法律或者违反道德规范或者甲方向乙方提供虚假情况的,乙方有权解除本合同;

3、双方确定,出现不可抗力等情形,致使本合同的履行成为不必要或不可能的,可以解除本合同。

第七条、合同的终止

本合同出现下列情形时,合同宣告终止:

1、本合同期限届满,甲乙双方不再续签合同的;

2、甲乙双方通过书面协议自愿解除本合同;

3、因不可抗力致使本合同目的不能实现的;

4、在委托期限届满之前,当事人一方明确表示或以自己的行为表明不履行合同主要义务的;

5、当事人有其他违约或违法行为致使合同目的不能实现的。

第八条、违约责任

1、如果乙方未按照主管部门的要求制作并提交相关申报材料或向甲方提供错误的与项目申报有关的咨询信息,乙方退还甲方该项申报材料编制费。如果乙方工作人员在整理甲方的申报材料时发现甲方项目和企业条件有严重不足而无法申报本合同规定的科技计划或者专项资金时,双方可协商申报另外的科技计划或专项资金。

2、如果因为甲方未按照项目申报时效给乙方提供基础资料和补办附件或者提供虚假材料导致项目申报失败,乙方不退还甲方申报材料编制费,并由甲方赔偿乙方实际经济损失(经济损失的计算标准由甲乙双方另行协商约定);

3、对由乙方初步诊断的国家或省市资助计划项目并且经过甲方认真地确认后,因甲方未能及时提供附件材料或者提供的附件材料不符合要求,未被政府指定部门受理,视为乙方已经完成此项目的申报;

4、乙方无正当理由不提供本合同约定的咨询服务内容或者违反本合同规定的义务,甲方有权要求乙方退还全部已付的申报材料编制费。

5、合作期间,如果甲、乙双方中的任何一方要求终止此合同,因此给对方造成的实际损失应由提出要求的一方负责赔偿。

第九条、合同的变更

本合同履行期间,发生特殊情况时,甲、乙任何一方需要变更或补充本合同的,一方应及时书面通知对方,征得对方同意后即可签定书面变更、补充合同,该合同将成为正式合同不可分割的部分,与本合同具有同等的法律效力。

第十条、争议的处理

双方因履行本合同而发生的争议,应协商、调解解决。协商、调解不成的,可向北京市海淀区人民法院提起诉讼。

第十一条、合同的效力

1、由乙方撰写的国家或省市资助计划项目申报参评材料,经专家评审并获得批准立项后,因无偿资助、贷款贴息、返税、奖励等政府资助方式发放的资助资金周期较长,乙方享受项目批准立项后的权益不受本合同有效期限和合同解除、合同终止的影响,甲方必须继续履行支付乙方无偿资助、贷款贴息、返税、奖励等政府资助总额的18%的咨询服务费,直到项目结束。

2、本合同自双方法定代表人或其授权代表人签字并加盖单位公章或合同专用章之日起生效。有效期三年,即自年月日至年月日止。如果该合同中约定的项目申报失败,乙方在下一个,免收甲方前期申报材料编制费,继续为甲方申报该合同约定的项目。乙方为甲方申报该项目的次数不超过三次。

3、本合同中约定的乙方为甲方申报的国家科技项目不包括只有证书没有资金扶持类的项目。如国家重点新产品、火炬计划(一般项目)等。

甲方 :(盖章)法定代表人/委托代理人:年月日

乙方: 北京中企讯科技发展有限公司(盖章)法定代表人/委托代理人:

年月日

下载第二章 BMP位图类的创建与MFC单文档视图类的显示word格式文档
下载第二章 BMP位图类的创建与MFC单文档视图类的显示.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐