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

📄 qjyhsj.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		   title.Left(10);
		   A14 = A14 + "\t" +title;
		   gcvt(fcdyl25[i],100,Temp);
		   title=Temp;
		   title=title+"          ";
		   title.Left(10);
		   A15 = A15 + "\t" +title;
		   gcvt(ygxy[i - 1],100,Temp);
		   title=Temp;
		   title=title+"          ";
		   title.Left(10);
		   A16 = A16 + "\t" +title;
	  }
	  
      try
	  {
		  A01=A01+"\n";
		  f3.WriteString(A01);
		  A02=A02+"\n";
		  f3.WriteString(A02);
		  A03=A03+"\n";
		  f3.WriteString(A03);
		  A33=A33+"\n";
		  f3.WriteString(A33);
		  A04=A04+"\n";
		  f3.WriteString(A04);
		  A05=A05+"\n";
		  f3.WriteString(A05);
		  A06=A06+"\n";
		  f3.WriteString(A06);
		  A07=A07+"\n";
		  f3.WriteString(A07);
		  A08=A08+"\n";
		  f3.WriteString(A08);
		  A09=A09+"\n";
		  f3.WriteString(A09);
		  A10=A10+"\n";
		  f3.WriteString(A10);
		  A11=A11+"\n";
		  f3.WriteString(A11);
		  A12=A12+"\n";
		  f3.WriteString(A12);
		  A13=A13+"\n";
		  f3.WriteString(A13);
		  A14=A14+"\n";
		  f3.WriteString(A14);
		  A15=A15+"\n";
		  f3.WriteString(A15);
		  A16=A16+"\n";
		  f3.WriteString(A16);
		  f3.WriteString("\n");
		  
		  
	  }
      catch (CFileException exception3)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  if( fzs >= 3)
	  {
		  try
		  {
			  title="";
			  gcvt(QL,100,Temp);
			  title1=Temp;
			  title=title+"\t" + " 气举排液量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m^3/d)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt(dzqd,100,Temp);
              title1=Temp;
			  title=title+"\t" +" 注气点深度 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
			  title="";
              gcvt(pjszqd+pgzyc,100,Temp);
              title1=Temp;
			  title=title+"\t" + " 注气点套压 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (MPa)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
			  title="";
              gcvt(pjszqd,100,Temp);
              title1=Temp;
			  title=title+"\t" + " 注气点油压 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (MPa)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
			  title="";
              gcvt(qzhuru/10000,100,Temp);
              title1=Temp;
			  title=title+"\t" +" 注入的气量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m^3/d)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
			  title="";
              gcvt((qzql - qzhuru) / 10000,100,Temp);
              title1=Temp;
			  title=title+"\t" +" 井的产气量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (10^4m^3/d)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              f3.WriteString("\n");
		  }
		  catch (CFileException exception3)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }	
	  }
	  else
	  {
          try
		  {
			  title="";
			  gcvt(QL,100,Temp);
			  title1=Temp;
			  title=title+"\t" + " 气举排液量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m^3/d)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt(dzqd,100,Temp);
			  title1=Temp;
			  title=title+"\t"+" 注气点深度 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt(pjszqd + pgzyc,100,Temp);
			  title1=Temp;
			  title=title+"\t"+" 注气点套压 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (MPa)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt(pjszqd,100,Temp);
			  title1=Temp;
			  title=title+"\t"+" 注气点油压 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (MPa)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt(qzhuru / 10000,100,Temp);
			  title1=Temp;
			  title=title+"\t"+" 注入的气量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (m^3/d)$12" + "\t" + "$14"+"\n";
			  f3.WriteString(title);
              title="";
			  gcvt((qzql - qzhuru)/10000,100,Temp);
			  title1=Temp;
			  title=title+"\t"+" 井的产气量 =$13" + "\t" + "$12" + "\t" + title1 + "$12" + "\t" + "  (10^4m$12" + "\t" + "^3/d)$14"+"\n";
			  f3.WriteString(title);
              f3.WriteString("\n");
		  }
		  catch (CFileException exception3)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }
	  }
      try
	  {
		  //		  f3.WriteString("10\n");
	  }
	  catch (CFileException exception3)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  //	  主窗口.SSPanel1.FloodPercent = 100
	  g_iProgress = 100;	// 计算进度
	  
	  //写入设计结果图形
	  CStdioFile f4;
	  CFileException exception4;
	  /*      title=fileDialog2.GetPathName();
      title1=title.Left(title.GetLength()-3);
	  title=title1+"GDF";*/
//	  templs1.Empty();
	  templs1 = ((CCVenusApp*)AfxGetApp())->GetMyAppPath();
	  templs1  += "\\tempfile.gra";	
	  status1 = f4.Open(templs1,CFile::modeCreate|CFile::modeWrite);	
	  if (!status1)
	  {
		  char s[100];
		  sprintf(s, "Error opening file for reading. Code:%d",
			  exception4.m_cause);
		  AfxMessageBox(s);
		  return;
	  }
      try
	  {
		  title="$$";
		  title=title+"气举排水采气优化设计结果图["+ JSFF + "]\n";
		  f4.WriteString(title);
		  f4.WriteString("深度最小值,m:\n");
		  f4.WriteString("深度最大值,m:\n");
		  f4.WriteString("压力最小值,MPa:\n");
		  f4.WriteString("压力最大值,MPa:\n");
		  f4.WriteString("H\n");
		  f4.WriteString("P\n");
		  f4.WriteString("H__深度,m\n");
		  f4.WriteString("P__压力,MPa\n");
		  f4.WriteString(" 0\n");
	  }
	  catch (CFileException exception4)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  for(J=1;J<=fzs;J++)
	  {
		  if( J == fzs)
		  {
			  NJ = 0;
		  }
		  else
		  {
			  NJ = J;
		  }
		  for(i=0;i<=CSGDZZ;i++)
		  {
			  gcvt(pftidu[NJ][i],100,Temp);
			  title=Temp;
			  gcvt(dfshendu[NJ][i],100,Temp1);
			  title1=Temp1;
			  title=" "+title+" "+title1+"\n";
			  try
			  {
				  f4.WriteString(title);
			  }
			  catch (CFileException exception4)
			  {
				  AfxMessageBox("Error reading file");
				  return;
			  }
		  }
		  if( J == fzs)
		  {
			  for(i=0;i<=CSGDZZ;i++)
			  {
				  if( dshendu[i] > dzqd)
				  {
					  gcvt(pitidu[i],100,Temp);
					  title=Temp;
					  gcvt(dshendu[i],100,Temp1);
					  title1=Temp1;
					  title=" "+title+" "+title1+"\n";
					  try
					  {
						  f4.WriteString(title);
					  }
					  catch (CFileException exception4)
					  {
						  AfxMessageBox("Error reading file");
						  return;
					  }	
				  }
			  }
			  title1="";
			  gcvt(fzs,100,Temp);
			  title=Temp;
			  title.TrimLeft();
			  title1=title1+"第"+title+"只阀压力梯度"+"\n";
			  try
			  {
				  f4.WriteString("-1 -1\n");
				  //			f4.WriteString(" 0             1\n");
				  f4.WriteString(cGraphColor[iColorIndex++]);
				  iColorIndex %= iGraphColorNum;
				  f4.WriteString(title1);
			  }
			  catch (CFileException exception4)
			  {
				  AfxMessageBox("Error reading file");
				  return;
			  }
		  }
		  else
		  {
			  title1="";
			  gcvt(J,100,Temp);
			  title=Temp;
			  title.TrimLeft();
			  title1=title1+"第"+title+"只阀压力梯度"+"\n";
			  try
			  {
				  f4.WriteString("-1 -1\n");
				  //			f4.WriteString(" 0             1\n");
				  f4.WriteString(cGraphColor[iColorIndex++]);
				  iColorIndex %= iGraphColorNum;
				  f4.WriteString(title1);
			  }
			  catch (CFileException exception4)
			  {
				  AfxMessageBox("Error reading file");
				  return;
			  }		  
		  }
	  }
      for(i=1;i<=6;i++)
	  {
		  gcvt(pjszqd,100,Temp);
		  title=Temp;
		  gcvt(dzqd,100,Temp1);
		  title1=Temp1;
          title=" "+title+" "+title1+"\n";
		  try
		  {
			  f4.WriteString(title);
		  }
		  catch (CFileException exception4)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }
	  }
	  try
	  {
		  f4.WriteString("-1 -1\n");
		  //		f4.WriteString(" 0             1\n");
		  f4.WriteString(cGraphColor[iColorIndex++]);
		  iColorIndex %= iGraphColorNum;
		  f4.WriteString("注气点\n");
	  }
	  catch (CFileException exception4)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  for(i=CSGDZZ;i>=0;i=i-1)
	  {
		  try
		  {
			  gcvt(pqtidu[i],100,Temp);
			  title=Temp;
			  gcvt(dshendu[i],100,Temp1);
			  title1=Temp1;
			  title=" "+title+" "+title1+"\n";
			  f4.WriteString(title);
		  }
		  catch (CFileException exception4)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }   
	  }
      try
	  {
		  f4.WriteString("-1 -1\n");
		  //		f4.WriteString(" 0             1\n");
		  f4.WriteString(cGraphColor[iColorIndex++]);
		  iColorIndex %= iGraphColorNum;
		  f4.WriteString("注气压力梯度\n");
	  }
	  catch (CFileException exception4)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  
	  if( pqidong > PIN)
	  {
		  for(i=CSGDZZ;i>=0;i=i-1)
		  {	
			  gcvt(pqqdtd[i],100,Temp);
			  title=Temp;
			  gcvt(dshendu[i],100,Temp1);
			  title1=Temp1;
			  title=" "+title+" "+title1+"\n";
			  try
			  {
				  f4.WriteString(title);
			  }
			  catch (CFileException exception4)
			  {
				  AfxMessageBox("Error reading file");
				  return;
			  }
		  }
          try
		  {
			  f4.WriteString("-1 -1\n");
			  //			f4.WriteString(" 0             1\n");
			  f4.WriteString(cGraphColor[iColorIndex++]);
			  iColorIndex %= iGraphColorNum;
			  f4.WriteString("启动注气压力梯度\n");
		  }
		  catch (CFileException exception4)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }
	  }
	  //	以下模块有问题,不应该继续计算的,应该结束
      for(J=1;J<=fzs - 1;J++)
	  {
          gcvt(pftidu[J][CSGDZZ],100,Temp);
		  title=Temp;
		  gcvt(dfshendu[J][CSGDZZ],100,Temp1);
		  title1=Temp1;
		  title=" "+title+" "+title1+"\n";
		  try
		  {
			  f4.WriteString(title);
		  }
		  catch (CFileException exception4)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }	  
		  gcvt(fczxyy[J],100,Temp);
		  title=Temp;
		  gcvt(dfshendu[J][CSGDZZ],100,Temp1);
		  title1=Temp1;
		  title=" "+title+" "+title1+"\n";
		  try
		  {
			  f4.WriteString(title);
		  }
		  catch (CFileException exception4)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }
	  }
      try
	  {
		  f4.WriteString("-1 -1\n");
		  //		f4.WriteString(" 0             1\n");
		  f4.WriteString(cGraphColor[iColorIndex++]);
		  iColorIndex %= iGraphColorNum;
		  // 问题就出在这里,
		  f4.WriteString("\n");
		  f4.WriteString("There are wrongs\n");

		  f4.WriteString("-10 -10\n");
	  }
	  catch (CFileException exception4)
	  {
		  AfxMessageBox("Error reading file");
		  return;
	  }
	  f3.Close();
	  f4.Close();
	  g_iProgress = 100;	// 计算进度
}

double qjyhsj::ypwfqq(double PWF,double PLI,double QB,double Qomax,double Qtmax,double Prs,double Pb,double Fw)//由PWF求Q
{
	zpjjdfx zpjjs;
	double Q,DLTQ,P1,bccyl,sccyl;
	if( Fw == 1)
	{
		if( PWF > Prs)
		{
			Q = 0;
		}
		else if( PWF <= 0)
		{
			Q = Qtmax;
		}
		else
		{
			//地层压力Pr和井底流压Pwf均低于泡点压力Pb时,流体呈两相流,入井动态关系式如下
			Q = Qtmax * (1 - 0.2 * (PWF / Prs) - 0.8 * pow((PWF / Prs),2));
		}
	}
	else
	{
		if( PWF > Prs)
		{
			Q = 0;
		}
		else if( PWF <= 0)
		{
			Q = Qtmax;
		}
		else
		{
			Q = 0;
			DLTQ = Qtmax / 4;
			int shejishi=10000;
			do
			{
				Q = Q + DLTQ;
				P1=zpjjs.YQPWF(Q, PLI, QB, Qomax, Qtmax, Prs, Pb, Fw);
				if(fabs(P1 - PWF) <= 0.01)
				{
					break;
				}
				if( P1 > PWF)
				{
					bccyl = -1;//bccyl表示本次产液量,-1表示"偏小",0表示"偏大"
				}
				else
				{
					bccyl = 0;
				}
				if( bccyl == 0 && sccyl == 0)//sccyl上次产液量
				{
					DLTQ = -fabs(DLTQ);
				}
				else if( bccyl == -1 && sccyl == -1)
				{
					DLTQ = fabs(DLTQ);
				}
				else if( bccyl == 0 && sccyl == -1)
				{
					DLTQ = 0.618 * fabs(DLTQ);
				}
				else if( bccyl == -1 && sccyl == 0)
				{
					DLTQ = -0.618 * fabs(DLTQ);
				}
				sccyl = bccyl;
			}
			while(shejishi==10000);
			Q=Q*10/ 10;		  
		}
	}     
	return (Q);
}

⌨️ 快捷键说明

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