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

📄 jcyhsj.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// jcyhsj.cpp : implementation file
//

#include "stdafx.h"
#include "Cvenus.h"
#include "jcyhsj.h"
#include "yqsxz.h"
#include "zpjjdfx.h"
#include "math.h"

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

extern	int	g_iProgress ;	// 计算进度
extern	bool	bFinishThread;

/////////////////////////////////////////////////////////////////////////////
// jcyhsj
extern double ptidu[1000],dtidu[1000];
jcyhsj::jcyhsj()
{
	sscyjxh=NULL;
	sbj=NULL;
	schongcheng=NULL;
	schongci=NULL;
	bpl=NULL;
	EI=NULL;
	xuhao=NULL;
	LL1=NULL;
	LL2=NULL;
	LL3=NULL;
	LL4=NULL;
	zdyl1=NULL;
	zdyl2=NULL;
	zdyl3=NULL;
	zdyl4=NULL;
	zhmax=NULL;
	zhmin=NULL;
	zdnj=NULL;
	llbx=NULL;
	sdjgl=NULL;
	zscc=NULL;
	fcj=NULL;
	phzl=NULL;	
}

jcyhsj::~jcyhsj()
{
	if(sscyjxh!=NULL)
		delete[] sscyjxh; 
	if(sbj!=NULL)
		delete[] sbj;
	if(schongcheng!=NULL)
		delete[] schongcheng;
	if(schongci!=NULL)
		delete[] schongci;
	if(bpl!=NULL)
		delete[] bpl;
	if(EI!=NULL)
		delete[] EI;
	if(xuhao!=NULL)
		delete[] xuhao;
	if(LL1!=NULL)
		delete[] LL1;
	if(LL2!=NULL)
		delete[] LL2;
	if(LL3!=NULL)
		delete[] LL3;
	if(LL4!=NULL)
		delete[] LL4;
	if(zdyl1!=NULL)
		delete[] zdyl1;
	if(zdyl2!=NULL)
		delete[] zdyl2;
	if(zdyl3!=NULL)
		delete[] zdyl3;
	if(zdyl4!=NULL)
		delete[] zdyl4;
	if(zhmax!=NULL)
		delete[] zhmax;
	if(zhmin!=NULL)
		delete[] zhmin;
	if(zdnj!=NULL)
		delete[] zdnj;
	if(llbx!=NULL)
		delete[] llbx;
	if(sdjgl!=NULL)
		delete[] sdjgl;
	if(zscc!=NULL)
		delete[] zscc;
	if(fcj!=NULL)
		delete[] fcj;
	if(phzl!=NULL)
        delete[] phzl;
}



/////////////////////////////////////////////////////////////////////////////
// jcyhsj message handlers
/*---------------------------------------------------
'本程序所选者和提供的计算主要是以国产抽油机为主,钢抽油杆的设计所采用的方法是“等强度设计方法”与“ API RP 11L 法”
'玻璃钢--钢混合抽油杆柱的设计所采用的方法是“修正的 API RP 11L 法”
CString SS抽油机型号(3000);            [[[[   sscyjxh[3000]
double S泵径(2000),                    [[[[   sbj[2000]
S冲次(3000),                           [[[[   schongci[3000]
 S冲程(3000),                          [[[[   schongcheng[3000]
 泵排量(3000),                         [[[[   bpl[3000]
EI(3000);
int 序号(3000);                        [[[[   xuhao[3000] 
double LL1(3000),LL2(3000),LL3(3000), LL4(3000), 
最大应力1(3000),                       [[[[   zdyl1[3000]
最大应力2(3000),						[[[[   zdyl2[3000]
 最大应力3(3000),						[[[[   zdyl3[3000]
 最大应力4(3000);                       [[[[   zdyl4[3000]
double 载荷Max(3000),                   [[[[   zhmax[3000]
 载荷Min(3000),                         [[[[   zhmin[3000]
 最大扭矩(3000),                        [[[[   zdnj[3000]
 理论泵效(3000),                        [[[[   llbx[3000]
 S电机功率(3000);                       [[[[   sdjgl[3000]
double 柱塞冲程(2000),                  [[[[   zscc[2000]
 防冲距(2000),                          [[[[   fcj[2000]
 平衡重量(2000)                         [[[[   phzl[2000]

Dim DD(50)                             [[[[    DD[50] 
G冲程(100, 10),                        [[[[    gchongcheng[100][10] 
G冲次(100, 10);                        [[[[    gchongci[100][10]
CString G抽油机型号(200);              [[[[    gcyjxh[200]
Dim G悬点最大载荷(100),                [[[[    gxdzdzh[100]
G曲柄最大扭矩(100)                     [[[[    gqbzdnj[100]
Dim D深度(200),                        [[[[    dshengdu[200]
P压力(200) '井产出流体在油管内的流动梯度        [[[[   pyali[200]
Dim DVW, 
P地层,                [[[[   pdiceng 
T地层,                [[[[   tdiceng
P井口,                [[[[   pjingkou
T井口                 [[[[   tjingkou
Dim PLI, 
q测试,                [[[[   qceshi
p测试,                [[[[   pceshi
Pb, GWR, Fw
Dim DVT, DIT, DOT, RR;
int G油管是否锚定;    [[[[   gygmd
E油管,                [[[[   eyouguan
DIC
Dim OG, GG, CO2, H2S, N2
Dim GW, NaCl
泵挂深度,             [[[[  H
P沉没压力,            [[[[  pcmyl
Q设计                 [[[[  qsheji
Dim F1, F2, F3, F4, Q1, Q2, Q3, Q4
Dim 抽油杆许用应力,   [[[[  fff
 E钢,                [[[[[  egang
 钢抽油杆密度,       [[[[  ruogang     
 钢抽油杆的最小抗拉强度,    [[[[   bfff
 F玻璃钢,            [[[[   fboligang
 Q玻璃钢,            [[[[   qboligang 
 E玻璃钢,            [[[[   eboligang
 玻璃钢抽油杆密度,   [[[[   ruoblg    
Dim G可选抽油机数量,     [[[[   gcyjsl
井内液体密度,            [[[[   RUO,
Filenum
F油管,                   [[[[   fyouguan
S抽油机型号              [[[[   scyjxh
CString G是否满足条件;(只有yes和no两种)      [[[[   gtiaojian
SF
Max
G循环次数
CDK级杆                  [[[[     cdkjg        
设计1, 设计2, 设计3      [[[[     sheji1,sheji2,sheji3
N油管段数                [[[[     nygds
P最大沉没压力            [[[[     pmaxcmyl
D梯度(1000)              [[[[     dtidu[1000]
P梯度(1000)              [[[[     ptidu[1000]
迭代次数                 [[[[     ddcs
D是否已经打印            [[[[     sfdayin
当量应力1                [[[[     dlyl1
当量应力2                [[[[     dlyl2
当量应力3                [[[[     dlyl3
当量应力4                [[[[     dlyl4
P电机功率                [[[[     pdjgl
L防冲距                  [[[[     lfcj
选择多相流方法           [[[[     MMPF
生产气油比,m^3/标m^3    [[[[     RPO
溶解气油比,m^3/标m^3    [[[[     RSO
Q气                      [[[[     qqi
Q水                      [[[[     qshui
Q油                      [[[[     qyou
L防冲距                  [[[[     lfcj
---------------------------------------------------*/
void jcyhsj::cyjjsjyhsj()//抽油机举升井优化设计
{
	sscyjxh=new CString[15000];
	sbj=new double[15000];
	schongcheng=new double[15000];
	schongci=new double[15000];
	bpl=new double[15000];
	EI=new double[15000];
	xuhao=new int[15000];
	LL1=new double[15000];
	LL2=new double[15000];
	LL3=new double[15000];
	LL4=new double[15000];
	zdyl1=new double[15000];
	zdyl2=new double[15000];
	zdyl3=new double[15000];
	zdyl4=new double[15000];
	zhmax=new double[15000];
	zhmin=new double[15000];
	zdnj=new double[15000];
	llbx=new double[15000];
	sdjgl=new double[15000];
	zscc=new double[15000];
	fcj=new double[15000];
	phzl=new double[15000];

//	SetCursor(LoadCursor(NULL, IDC_WAIT));
	g_iProgress = 5;	// 计算进度
	ENDCOMPUTE;
    //赋初值
	for(i=0;i<1000;i++)
	{
		DD[i]=0;
        gxdzdzh[i]=0;
        gqbzdnj[i]=0;
        dshengdu[i]=0;
        pyali[i]=0;
	}
	for(i=0;i<100;i++)
	{
		for(j=0;j<10;j++)
		{
			gchongcheng[i][j]=0;
            gchongci[i][j]=0;
		}
	}
	DVW=0;pdiceng=0;tdiceng=0;pjingkou=0;tjingkou=0;PLI=0;qceshi=0;pceshi=0;Pb=0;GWR=0;
	Fw=0;DVT=0;DIT=0;DOT=0;RR=0;A2=0;B2=0;gygmd=0;eyouguan=0;DIC=0;OG=0;GG=0;CO2=0;H2S=0;
	N2=0;GW=0;NaCl=0;H=0;pcmyl=0;qsheji=0;F1=0;F2=0;F3=0;F4=0;Q1=0;Q2=0;Q3=0;Q4=0;fff=0;
	egang=0;ruogang=0;bfff=0;fboligang=0;qboligang=0;eboligang=0;ruoblg=0;aa3=0;aa4=0;
	gcyjsl=0;RUO=0;fyouguan=0;SF=0;cdkjg=0;sheji1=0;sheji2=0;sheji3=0;nygds=0;pmaxcmyl=0;
	ddcs=0;MMPF=0;ZZ=0;sfdayin=0;NNN=0;RPO=0;RSO=0;QB=0;
	Qomax=0;Qtmax=0;TG=0;PC=0;TC=0;QL=0;PWF=0;QO=0;QW=0;QG=0;pjisuan=0;PN=0;
	qqi=0;qshui=0;qyou=0;gqi=0;gshui=0;gyou=0;lguan=0;dhgw=0;dhgn=0;rrguan=0;
	YN2=0;YCO2=0;YH2S=0;YNaCl=0;nguanduan=0;djisuan=0;dliudong=0;DLTD=0;
	dguan=0;aguan=0;QLT=0;RPL=0;RPW=0;PP=0;PPP=0;PD=0;P=0;T=0;RSW=0;PR=0;YR=0;Z=0;UG=0;UO=0;BO=0;
	STO=0;UW=0;STW=0;BW=0;VSL=0;VSG=0;VM1=0;VM2=0;VM=0;RL=0;DL=0;DG=0;WT=0;UL=0;STL=0;NL=0;CNL=0;
	NLV=0;NGV=0;A=0;B=0;ND=0;X=0;Y=0;X1=0;Y1=0;HL=0;dm=0;DM1=0;NRE=0;FF=0;QT=0;FL=0;TR=0;J=0;C=0;D=0;
	e=0;F=0;G=0;DR=0;DY=0;U0=0;CCO2=0;CH2S=0;CN2=0;C1=0;C2=0;C3=0;C4=0;R=0;TF=0;Y2=0;Y3=0;FF0=0;
	pqidian=0;tqidian=0;ttidu=0;L1=0;L2=0;NREL=0;F5=0;F6=0;F7=0;S=0;GFR=0;GST=0;VS=0;v=0;
	CNaCl=0;WL=0;WG=0;VT=0;LB=0;VD=0;LS=0;LM=0;DA=0;RE=0;VSO=0;VSW=0;VST=0;WGG=0;WGL=0;WGT=0;
	lmd=0;UM=0;NRENS=0;NFR=0;L3=0;L4=0;hlo=0;HLO1=0;HLO2=0;FM=0;A1=0;B1=0;AA1=0;aa2=0;QQ=0;
	Gmax=0;Gmin=0;MMAX=0;XX=0;V1=0;V2=0;V3=0;EI1=0;EI2=0;Wr=0;Kt=0;Er=0;Kr=0;No=0;VV=0;VV1=0;
	VV2=0;CC1=0;VV3=0;cc3=0;Fc=0;No1=0;Wrf=0;FO=0;M1=0;CC2=0;CC3=0;X2=0;M2=0;SP=0;PPRL=0;
	MPRL=0;Y4=0;PRHP=0;Y5=0;TA=0;PT=0;CBE=0;PFL=0;MFL=0;MFLY=0;PS1L=0;MS1L=0;PS1LY=0;
	FMAX=0;FSmax=0;MS1LY=0;PFLY=0;PS2L=0;MS2L=0;PS2LY=0;MS2LY=0;FSmax1=0;b3=0;
	FSmax2=0;MMM=0;RUO1=0;lfcj=0;dlyl1=0;dlyl2=0;dlyl3=0;dlyl4=0;ffff=0;pdjgl=0;A3=0;
	

	 yqsxz csjs;
     zpjjdfx zpjjs;

	   CString str,templs1;

	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(1, 5);
	   DVW=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(2, 5);
	   pdiceng=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(3, 5);
	   tdiceng=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(4, 5);
	   pjingkou=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(5, 5);
	   tjingkou=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(6, 5);
	   PLI=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(7, 5);
	   qceshi=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(8, 5);
	   pceshi=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(9, 5);
	   GWR=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(10, 5);
	   DVT=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(11, 5);
	   DIT=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(12, 5);
	   DOT=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(13, 5);
	   RR=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(14, 5);
	   gygmd=atoi(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(15, 5);
	   eyouguan=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(16, 5);
	   DIC=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(17, 5);
	   GG=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(18, 5);
	   CO2=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(19, 5);
	   H2S=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(20, 5);
	   N2=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(21, 5);
	   GW=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(22, 5);
	   NaCl=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(23, 5);
	   H=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(24, 5);
	   pcmyl=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(25, 5);
	   qsheji=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(26, 5);
	   F1=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(27, 5);
	   F2=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(28, 5);
	   F3=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(29, 5);
	   F4=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(30, 5);
	   Q1=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(31, 5);
	   Q2=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(32, 5);
	   Q3=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(33, 5);
	   Q4=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(34, 5);
	   fff=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(35, 5);
	   egang=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(36, 5);
	   ruogang=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(37, 5);
	   bfff=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(38, 5);
	   fboligang=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(39, 5);
	   qboligang=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(40, 5);
	   eboligang=atof(str);
	   str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(41, 5);
	   ruoblg=atof(str);

	 sheji1=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK1))->GetCheck();
	 sheji2=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK2))->GetCheck();
	 sheji3=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK3))->GetCheck();
  
	 cdkjg=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO1))->GetCurSel();
     cdkjg=cdkjg+1;
	 MMPF=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO2))->GetCurSel();
     MMPF=MMPF+1;
	 ZZ=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO3))->GetCurSel();
     ZZ=ZZ+1;

     CString AA,mm1,mm2,mm3,mm4,mm5,mm6,mm7,mm8,mm9,mm10,mm11,mm12,mm13,mm14,kk=" ";
     char gs1[1000];

	  gcyjsl=0;
	  scyjxh="全部";
	  i=0; 
	  CStdioFile f5;
	  CFileException exception5;
	  BOOL status4;
      AA=((CCVenusApp*)AfxGetApp())->m_strDataPath;
	  AA=AA+"\\抽油机.DDD";
	  status4 = f5.Open(AA,CFile::modeRead, &exception5);
	  int baizhi;
	  if (!status4)
	  {
			char s[100];
			sprintf(s, "Error opening file for reading. Code:%d",
				exception5.m_cause);
			AfxMessageBox(s);
			return;
	  }
	  else
	  {
	   	  try
		  {
		      f5.ReadString(gs1,1000);
		      f5.ReadString(gs1,1000);
		  }
	   	  catch (CFileException exception5)
		  {
			  AfxMessageBox("Error reading file");
			  return;
		  }
          do
		  {
			try
			{
                f5.ReadString(gs1,1000);
                AA=gs1;
				if(AA=="[END]\n")
				{
                    break;
				}
				gcyjsl=gcyjsl+1;
		        i=i+1;			
				baizhi=0;
				title="";
				for(j=0;j<=AA.GetLength();j++)
				{  
					
					if( AA.Mid(j,1)==","||AA.Mid(j,1)=="\n")
					{
                        title1=title;
						baizhi=baizhi+1;
                        title="";
						switch(baizhi)
						{
							case 1:
							   mm1=title1;
							   break;
							case 2:
							   mm2=title1;
							   break;
							case 3:
							   mm3=title1;
							   break;
							case 4:
							   mm4=title1;

⌨️ 快捷键说明

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