⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 new text document.txt

📁 板结构,满足三类边界条边,热源在外部 ,用vc++编写工程文件很大,源程序里的主函数同大家分享
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include "stdafx.h"
#include "hapibird.h"

#include "hapibirdDoc.h"
#include "hapibirdView.h"
#include "dlg.h"
#include "dlg12.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView

IMPLEMENT_DYNCREATE(CHapibirdView, CView)

BEGIN_MESSAGE_MAP(CHapibirdView, CView)
	//{{AFX_MSG_MAP(CHapibirdView)
	ON_COMMAND(ID_OUTPUT, OnOutput)
	ON_COMMAND(ID_INPUT, OnInput)
	ON_COMMAND(ID_GRID, OnGrid)
	ON_COMMAND(ID_CALCULATE, OnCalculate)
	ON_COMMAND(ID_bianjie, Onbianjie)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView construction/destruction

CHapibirdView::CHapibirdView()
{
	// TODO: add construction code here

}

CHapibirdView::~CHapibirdView()
{
}

BOOL CHapibirdView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView drawing

void CHapibirdView::OnDraw(CDC* pDC)
{
	CHapibirdDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	int x0,y0;
	float xx[200],yy[200];
	char c1[4];
	CString ss;
//坐标原点
	x0=200;
	y0=80;
//坐标变换
	if(sizel>sizew)
	{sizex=550/numl;
	sizey=550*sizew/(sizel*numw);

	for(i=0;i<=numl;i++)
   {
	   xx[i]=i*550/numl;
    }   
  for(i=0;i<=numw;i++)
  {
	  yy[i]=i*sizew*550/(numw*sizel);
	  
   }
	}
	else
	{sizey=550/numw;
	sizex=550*sizel/(sizew*numw);

	for(i=0;i<=numl;i++)
   {
	   xx[i]=i*550*sizel/(numl*sizew);
    }   
  for(i=0;i<=numw;i++)
  {
	  yy[i]=i*550/numw;
	  
   }}
 //画直线    
     	for(i=0;i<=numw;i++)
		{
		    pDC->MoveTo(x0+xx[0],y0+yy[i]);
            pDC->LineTo(x0+xx[numl],y0+yy[i]); 
      	  
		}
        for(i=0;i<=numl;i++)
        {
		
			pDC->MoveTo(x0+xx[i],y0+yy[0]);
            pDC->LineTo(x0+xx[i],y0+yy[numw]);
		}

//画斜线
      	for(i=0;i<=numw-1;i++)
		{
	      for(j=0;j<=numl-1;j++)	
		  {
	         pDC->MoveTo(x0+xx[j],y0+yy[i]);
             pDC->LineTo(x0+xx[j+1],y0+yy[i+1]);
		  }	
		}    

//画节点圆
        for(i=0;i<=numw;i++)

		{
			for(j=0;j<=numl;j++)
			{ 
				r=5;
		        CRect rcEllipse(x0+xx[j]-r,y0+yy[i]-r,x0+xx[j]+r,y0+yy[i]+r);
		        pDC->Ellipse(rcEllipse);
			}
		}
  
//节点编号
	 k=1;
	 for(i=0;i<=numw;i++)
	 {
		for(j=0;j<=numl;j++)
		 {
	          itoa(k,c1,10);
	          ss=c1;
	          pDC->TextOut(x0-28+xx[j],y0-7+yy[i],ss);
	          k=k+1;
		 }
	 }

//单元编号
	    m=1;
        for(i=0;i<=numw-1;i++)
		{
	      for(j=0;j<=numl-1;j++)
		  {	
	         itoa(2*m-1,c1,10);
	         ss=c1;
           	 pDC->TextOut(x0+0.25*sizex+xx[j],y0+0.55*sizey+yy[i],ss);
			  
			  
			 itoa(2*m,c1,10);
	         ss=c1;
	         pDC->TextOut(x0+0.55*sizex+xx[j],y0+0.25*sizey+yy[i],ss);
             
	         m=m+1;
		  }
		}
/**/	
/*
//画直线    
     	for(i=1;i<=numw+1;i++)
		{
		    pDC->MoveTo(x0+x[1],y0+y[i]);
            pDC->LineTo(x0+x[1]+sizel,y0+y[i]); 
      	  
		}
        for(i=1;i<=numl+1;i++)
        {
		
			pDC->MoveTo(x0+x[i],y0+y[1]);
            pDC->LineTo(x0+x[i],y0+y[1]+sizew);
		}

//画斜线
      	for(i=1;i<=numw;i++)
		{
	      for(j=1;j<=numl;j++)	
		  {
	         pDC->MoveTo(x0+x[j],y0+y[i]);
             pDC->LineTo(x0+x[j+1],y0+y[i+1]);
		  }	
		}    

//画节点圆
        for(i=1;i<=numw+1;i++)

		{
			for(j=1;j<=numl+1;j++)
			{ 
				r=5;
		        CRect rcEllipse(x0+x[j]-r,y0+y[i]-r,x0+x[j]+r,y0+y[i]+r);
		        pDC->Ellipse(rcEllipse);
			}
		}
  
//节点编号
	 k=1;
	 for(i=1;i<=numw+1;i++)
	 {
		for(j=1;j<=numl+1;j++)
		 {
	          itoa(k,c1,10);
	          ss=c1;
	          pDC->TextOut(x0-0.55*sizex+x[j],y0-0.15*sizey+y[i],ss);
	          k=k+1;
		 }
	 }

//单元编号
	    m=1;
        for(i=1;i<=numw;i++)
		{
	      for(j=1;j<=numl;j++)
		  {	
	         itoa(2*m-1,c1,10);
	         ss=c1;
           	 pDC->TextOut(x0+0.25*sizex+x[j],y0+0.55*sizey+y[i],ss);
			  
			  
			 itoa(2*m,c1,10);
	         ss=c1;
	         pDC->TextOut(x0+0.55*sizex+x[j],y0+0.25*sizey+y[i],ss);
             
	         m=m+1;
		  }
		}
*/
}

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView printing

BOOL CHapibirdView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CHapibirdView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CHapibirdView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView diagnostics

#ifdef _DEBUG
void CHapibirdView::AssertValid() const
{
	CView::AssertValid();
}

void CHapibirdView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CHapibirdDoc* CHapibirdView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHapibirdDoc)));
	return (CHapibirdDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHapibirdView message handlers

void CHapibirdView::OnOutput() 
{	

	float l[200][200],data;
    float u[200][200];

   fp3=fopen("shiyan3.txt","w");
//输出总刚
	 for(j=1;j<=jz;j++)
			{
				 fprintf(fp2,"\n");

		         for(r=1;r<=jz;r++)
				 {
			        fprintf(fp3,"%f",kz[j][r]);
             		  
				 }
			}
//输出右端

	 for(j=1;j<=jz;j++)
		  {
		
		   fprintf(fp3,"\n");
		   fprintf(fp3,"%f\n",f[j]);
		  }
	
/*	kz[1][1]=1;
    kz[1][2]=2;
	kz[1][3]=3;
	kz[2][1]=2;
	kz[2][2]=5;
	kz[2][3]=2;
	kz[3][1]=3;
	kz[3][2]=1;
	kz[3][3]=5;
	f[1]=14;
	f[2]=18;
	f[3]=20;
	jz=3;
*/	for(j=1;j<=jz;j++)
			{
				 fprintf(fp2,"\n");
		         for(r=1;r<=jz;r++)
				 {
			        fprintf(fp3,"%f",kz[j][r]);             		  
				 }
			}
for(j=1;j<=jz;j++)
		  {
		   fprintf(fp3,"\n");
		   fprintf(fp3,"%f\n",f[j]);
		  }	  

//给初值
	 for(i=1;i<=jz;i++)
	{ 
		  for(j=1;j<=jz;j++)
		{
	       u[i][j]=0.0;
		   l[i][j]=0.0;
		}
	}
/*	for(i=1;i<=jz;i++)
	{
		l[i][i]=1;}
*///LU分解
    	for(i=1;i<=jz;i++)
		{
		    u[1][i]=kz[1][i];
//		}
//		for(i=2;i<=jz;i++)
//		{
		l[i][1]=kz[i][1]/u[1][1];
		}
		
//	    fprintf(fp3," %f %f\n",kz[1][i],l[i][1]);
	
	 

	for(r=2;r<=jz;r++)
	{
		for(i=r;i<=jz;i++)
		{
			data=0.0;
			for(k=1;k<=r-1;k++)
			{
		      data=data+l[r][k]*u[k][i];
			}
			u[r][i]=kz[r][i]-data;
			data=0.0;
		    for(k=1;k<=r-1;k++)
			{
		      data=data+l[i][k]*u[k][r];
			}
			l[i][r]=(kz[i][r]-data)/u[r][r];
			
		}
	}
//输出lu
   for(i=1;i<=jz;i++)
	{   fprintf(fp3,"\n");
		
	    for(j=1;j<=jz;j++)
		{
	       fprintf(fp3," %f",l[i][j]);
		}
	}
    fprintf(fp3,"\n");
    for(i=1;i<=jz;i++)
	{   fprintf(fp3,"\n");
		
	    for(j=1;j<=jz;j++)
		{
	       fprintf(fp3," %f",u[i][j]);
		}
	}
	fprintf(fp3,"\n");
     float kk[200][200];
	 for(j=1;j<=jz;j++)
		  {
			  for(m=1;m<=jz;m++)
			  {
				  kk[j][m]=0;
				  for(k=1;k<=jz;k++)
				  {
					  
                    kk[j][m]=kk[j][m]+l[j][k]*u[k][m];
				  } 	

			  }

		  }
	 for(i=1;i<=jz;i++)
	{   fprintf(fp3,"\n");
		
	    for(j=1;j<=jz;j++)
		{
	       fprintf(fp3," %f",kk[i][j]);
		}
	}


      y[1]=f[1];
      for(i=2;i<=jz;i++)
	  {	data=0;
        for(k=1;k<=i-1;k++)
	   {
		   data=data+l[i][k]*y[k];
	   }
       y[i]=f[i]-data;
	  }
       for(j=1;j<=jz;j++)
		{
//	       fprintf(fp3," %f",y[j]);
		}

	  t[jz]=y[jz]/u[jz][jz];
      for(i=jz-1;i>=1;i--)
	  {    data=0.0;
            for(k=i+1;k<=jz;k++)
			{
		    data=data+u[i][k]*t[k];
			}
           t[i]=(y[i]-data)/u[i][i];
	  }
	  for(j=1;j<=jz;j++)
		{
		   fprintf(fp3," %d\n",j);
	       fprintf(fp3,"    %f\n",t[j]);
		}

	  fclose(fp3);


}

void CHapibirdView::OnInput() 
{

	dlg DLG;

	DLG.DoModal(); 
	
	sizel=DLG.m_sizel;
	sizew=DLG.m_sizew;
	numl=DLG.m_numl;
	numw=DLG.m_numw;
	kk0=DLG.m_kk0;

}

void CHapibirdView::OnGrid() 
{
 
  for(i=1;i<=numl+1;i++)
   {
	   x[i]=i*sizel/numl;
    }   
  for(i=1;i<=numw+1;i++)
  {
	  y[i]=i*sizew/numw;
	  
   }
//输出节点和坐标
  
    fp=fopen("jdzb.txt","w");
       k=1;
       for(i=1;i<=numw+1;i++)
	   {  
	     for(j=1;j<=numl+1;j++)
		 { 
           xy[k][1]=x[j];
		   xy[k][2]=-y[i];
		   
		   fprintf(fp," %d %f %f\n",k,xy[k][1],xy[k][2]);
		   k=k+1;
		 }
	   }
	   jz=k-1;
//	   fprintf(fp," %d\n",jz);

    fclose(fp);	
//输出单元和对应的节点号

	fp1=fopen("dyjd.txt","w");
        m=1;
		k=1;
        for(i=1;i<=numw;i++)
		{
	      for(j=1;j<=numl;j++)
		  {
	        e=2*m-1;
	        ejd[e][1]=k;
			ejd[e][2]=k+numl+1;
			ejd[e][3]=k+numl+2;
 	        fprintf(fp1," %d %d %d %d\n",e,ejd[e][1],ejd[e][2],ejd[e][3]);
           
			e=2*m;
			ejd[e][1]=k;
			ejd[e][2]=k+numl+2;
			ejd[e][3]=k+1;
	       
			fprintf(fp1," %d %d %d %d\n",e,ejd[e][1],ejd[e][2],ejd[e][3]);

             k=k+1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -