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

📄 load.cpp

📁 三维框架梁单元C++版本的源程序 可以使结构力学的概念更上升一个层次
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	while(!fin.eof())
	{
		fin>>str;
		if(!strcmp(str,"LOAD_CASE_1_START"))
			m_bGroup = 1;	

		//开始读数		
		while(m_bGroup)
		{
			fin>>str;
			if(!strcmp(str,"LOAD_CASE_1_END"))
			{
				m_bGroup = 0;
				m_bMemberLoad = 0;
				break;
			}
			if(!strcmp(str,"LOAD_CASE_2_START"))
			{
				m_bGroup = 0;
				m_bMemberLoad = 0;
				break;
			}
			if(!strcmp(str,"MEMBER_LOAD_CEN"))	
				m_bMemberLoad = 1;
			while(m_bMemberLoad)
			{	
				fin>>str;
				if(!strcmp(str,"NODE_LOAD"))
				{
					m_bMemberLoad = 0;
					m_bGroup = 0;
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_DIS"))
				{
					m_bMemberLoad = 0;
					m_bGroup = 0;
					break;
				}
				if(!strcmp(str,"LOAD_CASE_1_END"))
				{
					m_bGroup = 0;
					m_bMemberLoad = 0;
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_CEN"))	
				{
					m_bGroup = 0;
					m_bMemberLoad = 0;
					break;
				}
				m_nTemp = atoi(str);		
				m_nElemLoadNum_Case1_Cen++;		
				m_adElemLoadValue_Case1_Cen.SetSize(m_nElemLoadNum_Case1_Cen);					
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_nElementNO = m_nTemp;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceX = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceY = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceZ = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMX = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMY = 0;
				m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMZ = 0;
				fin>>str;
				if(!strcmp(str,"CX"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceX = m_dTemp;
				}
				if(!strcmp(str,"CY"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceY = m_dTemp;
				}
				if(!strcmp(str,"CZ"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemForceZ = m_dTemp;
				}
				if(!strcmp(str,"CMX"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMX += m_dTemp;
				}
				if(!strcmp(str,"CMY"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMY += m_dTemp;
				}
				if(!strcmp(str,"CMZ"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case1_Cen[m_nElemLoadNum_Case1_Cen - 1].m_dElemMZ += m_dTemp;
				}
			}
		}
	}
	fin.close();

	m_bGroup = 0;	
	m_bJointLoad = 0;
	m_bMemberLoad = 0;
	m_bRUN = 0;

		//**********************************荷载组2---单元荷载1的读取********************************
	fin.open(m_cFilepath,ios::in);
	while(!fin.eof())
	{
		fin>>str;
		if(!strcmp(str,"LOAD_CASE_2_START"))
			m_bGroup = 1;	

		//开始读数		
		while(m_bGroup)
		{
			fin>>str;
			if(!strcmp(str,"LOAD_CASE_2_END"))
			{
				m_bGroup = 0;
				m_bMemberLoad = 0;
				break;
			}
			if(!strcmp(str,""))
			{
				m_bGroup = 0;	
				m_bMemberLoad = 0;
				break;
			}
			if(!strcmp(str,"MEMBER_LOAD_DIS"))	
				m_bMemberLoad = 1;
			while(m_bMemberLoad)
			{	
				fin>>str;
				if(!strcmp(str,"NODE_LOAD"))
				{
					m_bMemberLoad = 0;
					m_bGroup = 0;	
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_CEN"))
				{
					m_bMemberLoad = 0;
					m_bGroup = 0;	
					break;
				}
				if(!strcmp(str,"LOAD_CASE_2_END"))
				{
					m_bGroup = 0;
					m_bMemberLoad = 0;
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_DIS"))
				{
					m_bGroup = 0;
					m_bJointLoad = 0;
					break;
				}	
				m_nTemp = atoi(str);
				//试探是否重复编号
				for(int loop1=0;loop1<m_nElemLoadNum_Case2_Dis;loop1++)
				{
					//有同号
					if(m_nTemp == m_adElemLoadValue_Case2_Dis[loop1].m_nElementNO)
					{
						m_nTemp = loop1;
						m_bRUN = 1;
					}
				}
				//是重复编号
				if(m_bRUN)
				{									
					fin>>str;
					if(!strcmp(str,"DX"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nTemp].m_dElemForceX += m_dTemp;
					}
					if(!strcmp(str,"DY"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nTemp].m_dElemForceY += m_dTemp;
					}
					if(!strcmp(str,"DZ"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nTemp].m_dElemForceZ += m_dTemp;
					}
					m_bRUN = 0;
				}
					
				//不是重复编号
				else
				{
					m_nElemLoadNum_Case2_Dis++;		
					m_adElemLoadValue_Case2_Dis.SetSize(m_nElemLoadNum_Case2_Dis);					
					m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_nElementNO = m_nTemp;
					m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceX = 0;
					m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceY = 0;
					m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceZ = 0;
					fin>>str;
					if(!strcmp(str,"DX"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceX = m_dTemp;
					}
					if(!strcmp(str,"DY"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceY = m_dTemp;
					}
					if(!strcmp(str,"DZ"))
					{
						fin>>str;
						m_dTemp = atof(str);
						m_adElemLoadValue_Case2_Dis[m_nElemLoadNum_Case2_Dis - 1].m_dElemForceZ = m_dTemp;
					}
				}
			}				
		}			
	}
	fin.close();

	m_bGroup = 0;	
	m_bJointLoad = 0;
	m_bMemberLoad = 0;
	m_bRUN = 0;



	//**********************************荷载组2---单元荷载2的读取********************************
	fin.open(m_cFilepath,ios::in);
	while(!fin.eof())
	{
		fin>>str;
		if(!strcmp(str,"LOAD_CASE_2_START"))
			m_bGroup = 1;	

		//开始读数		
		while(m_bGroup)
		{
			fin>>str;
			if(!strcmp(str,"LOAD_CASE_2_END"))
			{
				m_bGroup = 0;	
				m_bMemberLoad = 0;
				break;
			}		
			if(!strcmp(str,"MEMBER_LOAD_CEN"))	
				m_bMemberLoad = 1;
			while(m_bMemberLoad)
			{	
				fin>>str;
				if(!strcmp(str,"NODE_LOAD"))
				{
					m_bGroup = 0;	
					m_bMemberLoad = 0;
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_DIS"))
				{
					m_bGroup = 0;	
					m_bMemberLoad = 0;
					break;
				}
				if(!strcmp(str,"LOAD_CASE_2_END"))
				{
					m_bGroup = 0;
					m_bMemberLoad = 0;
					break;
				}
				if(!strcmp(str,"MEMBER_LOAD_CEN"))	
				{
					m_bGroup = 0;
					m_bMemberLoad = 0;
					break;
				}
				m_nTemp = atoi(str);		
				m_nElemLoadNum_Case2_Cen++;		
				m_adElemLoadValue_Case2_Cen.SetSize(m_nElemLoadNum_Case2_Cen);					
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_nElementNO = m_nTemp;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceX = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceY = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceZ = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMX = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMY = 0;
				m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMZ = 0;
				fin>>str;
				if(!strcmp(str,"CX"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceX = m_dTemp;
				}
				if(!strcmp(str,"CY"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceY = m_dTemp;
				}
				if(!strcmp(str,"CZ"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemForceZ = m_dTemp;
				}
				if(!strcmp(str,"CMX"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMX += m_dTemp;
				}
				if(!strcmp(str,"CMY"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMY += m_dTemp;
				}
				if(!strcmp(str,"CMZ"))
				{
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dDistance = m_dTemp;
					fin>>str;
					m_dTemp = atof(str);
					m_adElemLoadValue_Case2_Cen[m_nElemLoadNum_Case2_Cen - 1].m_dElemMZ += m_dTemp;
				}
			}
		}
	}
	fin.close();
		
	OutputParameter();
}


void CLoad::OutputParameter()
{
	ofstream fout;
	fout.open("Load Class.tst");

	fout<<"Load Case 1 ---- Joint Load:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nNodeLoadNum_Case1<<endl;
	fout.width(17);fout<<"作用节点号:";	
	fout.width(17);fout<<"FX";	fout.width(17);fout<<"FY";	fout.width(17);fout<<"FZ";
	fout.width(17);fout<<"MX";	fout.width(17);fout<<"MY";	fout.width(17);fout<<"MZ"<<endl;
	for(int loop=0;loop<m_nNodeLoadNum_Case1;loop++)
	{
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_nNodeNO;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dFX;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dFY;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dFZ;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dMX;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dMX;
		fout.width(17);fout<<m_adJointLoadValue_Case1[loop].m_dMZ<<endl;
	}	
	fout<<endl;

	fout<<"Load Case 1 ---- Member Load Dis:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nElemLoadNum_Case1_Dis<<endl;
	fout.width(17);fout<<"作用单元号:";
	fout.width(17);fout<<"m_dElemForceX";	
	fout.width(17);fout<<"m_dElemForceY";	
	fout.width(17);fout<<"m_dElemForceZ"<<endl;
	for(loop=0;loop<m_nElemLoadNum_Case1_Dis;loop++)
	{
		fout.width(17);fout<<m_adElemLoadValue_Case1_Dis[loop].m_nElementNO;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Dis[loop].m_dElemForceX;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Dis[loop].m_dElemForceY;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Dis[loop].m_dElemForceZ<<endl;
	}
	fout<<endl;

	fout<<"Load Case 1 ---- Member Load Cen:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nElemLoadNum_Case1_Cen<<endl;
	fout.width(17);fout<<"作用单元号:";
	fout.width(17);fout<<"m_dDistance";	
	fout.width(17);fout<<"m_dElemForceX";	
	fout.width(17);fout<<"m_dElemForceY";	
	fout.width(17);fout<<"m_dElemForceZ";
	fout.width(17);fout<<"m_dElemMX";	
	fout.width(17);fout<<"m_dElemMY";	
	fout.width(17);fout<<"m_dElemMZ"<<endl;
	for(loop=0;loop<m_nElemLoadNum_Case1_Cen;loop++)
	{
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_nElementNO;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dDistance;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemForceX;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemForceY;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemForceZ;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemMX;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemMY;
		fout.width(17);fout<<m_adElemLoadValue_Case1_Cen[loop].m_dElemMZ<<endl;
	}
	fout<<endl;
	fout<<endl;

	fout<<"Load Case 2 ---- Joint Load:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nNodeLoadNum_Case2<<endl;
	fout.width(17);fout<<"作用节点号:";	
	fout.width(17);fout<<"FX";	fout.width(17);fout<<"FY";	fout.width(17);fout<<"FZ";
	fout.width(17);fout<<"MX";	fout.width(17);fout<<"MY";	fout.width(17);fout<<"MZ"<<endl;
	for(loop=0;loop<m_nNodeLoadNum_Case2;loop++)
	{
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_nNodeNO;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dFX;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dFY;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dFZ;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dMX;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dMX;
		fout.width(17);fout<<m_adJointLoadValue_Case2[loop].m_dMZ<<endl;
	}	
	fout<<endl;

	fout<<"Load Case 2 ---- Member Load Dis:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nElemLoadNum_Case2_Dis<<endl;
	fout.width(17);fout<<"作用单元号:";
	fout.width(17);fout<<"m_dElemForceX";	
	fout.width(17);fout<<"m_dElemForceY";	
	fout.width(17);fout<<"m_dElemForceZ"<<endl;
	for(loop=0;loop<m_nElemLoadNum_Case2_Dis;loop++)
	{
		fout.width(17);fout<<m_adElemLoadValue_Case2_Dis[loop].m_nElementNO;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Dis[loop].m_dElemForceX;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Dis[loop].m_dElemForceY;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Dis[loop].m_dElemForceZ<<endl;
	}
	fout<<endl;

	fout<<"Load Case 2 ---- Member Load Cen:"<<endl;
	fout.width(17);fout<<"荷载数量:";fout.width(17);fout<<m_nElemLoadNum_Case2_Cen<<endl;
	fout.width(17);fout<<"作用单元号:";
	fout.width(17);fout<<"m_dDistance";	
	fout.width(17);fout<<"m_dElemForceX";	
	fout.width(17);fout<<"m_dElemForceY";	
	fout.width(17);fout<<"m_dElemForceZ";
	fout.width(17);fout<<"m_dElemMX";	
	fout.width(17);fout<<"m_dElemMY";	
	fout.width(17);fout<<"m_dElemMZ"<<endl;
	for(loop=0;loop<m_nElemLoadNum_Case2_Cen;loop++)
	{
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_nElementNO;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dDistance;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemForceX;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemForceY;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemForceZ;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemMX;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemMY;
		fout.width(17);fout<<m_adElemLoadValue_Case2_Cen[loop].m_dElemMZ<<endl;
	}
	fout<<endl;
	
	
	fout.close();
}

⌨️ 快捷键说明

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