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

📄 elasticsteelmat.cpp

📁 三维框架梁单元C++版本的源程序 可以使结构力学的概念更上升一个层次
💻 CPP
字号:
#include "stdafx.h"
//#include "FORCE.h"
#include "ElasticSteelMat.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CElasticSteelMat::CElasticSteelMat()
{

}

CElasticSteelMat::~CElasticSteelMat()
{

}

void CElasticSteelMat::ReadFile(CString m_cFilePath)
{
	ifstream fin;
	fin.open(m_cFilePath,ios::in);

	// 临时参量
	int m_N; 
	double m_D;	
	char char1[100];


	while(!fin.eof())	
	{		
		fin>>char1;	

		//材料输入方式一
		if(!strcmp(char1,"MATERIAL_1"))
		{			
			m_nMatNum++;
			m_aElasticMatPro.SetSize(m_nMatNum);

			//读材料的序号
			fin>>char1;
			m_N = atoi(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_nNo = m_N;

			fin>>char1;			
			if(!strcmp(char1,"E_235"))
			{
				m_aElasticMatPro[m_nMatNum - 1].m_cMatName = "E_235";
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[0] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[1] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[2] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[3] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[4] = 11300;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[0] = 36;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[1] = 36;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[2] = 36;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[3] = 36;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[4] = 36*0.6;
				m_aElasticMatPro[m_nMatNum - 1].m_N[0] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[1] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[2] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[3] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[4] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_dFu = 58;
				m_aElasticMatPro[m_nMatNum - 1].m_dFyMin = 36;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMin = 58;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMax = 58;
				m_aElasticMatPro[m_nMatNum - 1].m_dMiu = 0.3;
			}
			if(!strcmp(char1,"E_345"))
			{
				m_aElasticMatPro[m_nMatNum - 1].m_cMatName = "E_345";
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[0] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[1] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[2] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[3] = 29500;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[4] = 11300;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[0] = 50;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[1] = 50;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[2] = 50;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[3] = 50;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[4] = 50*0.6;
				m_aElasticMatPro[m_nMatNum - 1].m_N[0] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[1] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[2] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[3] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[4] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_dFu = 65;
				m_aElasticMatPro[m_nMatNum - 1].m_dFyMin = 50;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMin = 65;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMax = 65;
				m_aElasticMatPro[m_nMatNum - 1].m_dMiu = 0.3;
			}
			if(!strcmp(char1,"M_Q235"))
			{
				m_aElasticMatPro[m_nMatNum - 1].m_cMatName = "M_Q235";
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[0] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[1] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[2] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[3] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[4] = 79000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[0] = 215000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[1] = 215000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[2] = 215000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[3] = 215000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[4] = 235*0.6*1000;
				m_aElasticMatPro[m_nMatNum - 1].m_N[0] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[1] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[2] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[3] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[4] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_dFu = 235000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFyMin = 215000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMin = 235000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMax = 235000;
				m_aElasticMatPro[m_nMatNum - 1].m_dMiu = 0.3;
			}
			if(!strcmp(char1,"M_Q345"))
			{
				m_aElasticMatPro[m_nMatNum - 1].m_cMatName = "M_Q345";
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[0] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[1] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[2] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[3] = 206000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[4] = 79000000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[0] = 315000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[1] = 315000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[2] = 315000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[3] = 315000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[4] = 345*0.6*1000;
				m_aElasticMatPro[m_nMatNum - 1].m_N[0] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[1] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[2] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[3] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_N[4] = 0;
				m_aElasticMatPro[m_nMatNum - 1].m_dFu = 345000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFyMin = 315000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMin = 345000;
				m_aElasticMatPro[m_nMatNum - 1].m_dFuMax = 345000;
				m_aElasticMatPro[m_nMatNum - 1].m_dMiu = 0.3;
			}
		}

		//材料输入方式二
		if(!strcmp(char1,"MATERIAL_APPOINT"))
		{
			//AfxMessageBox("找到了输入方式二!",MB_OK,0);//*
			m_nMatNum++;
			m_aElasticMatPro.SetSize(m_nMatNum);

			//读材料的序号
			fin>>char1;
			m_N = atoi(char1);			
			m_aElasticMatPro[m_nMatNum - 1].m_nNo = m_N;
			//读材料的名字
			fin>>char1;
			m_aElasticMatPro[m_nMatNum - 1].m_cMatName = char1;
			//读弹性模量
			for(int loop=0;loop<5;loop++)
			{
				fin>>char1;
				m_D = atof(char1);
				m_aElasticMatPro[m_nMatNum - 1].m_dEO[loop] = m_D;
			}
			//读材料强度
			for(loop=0;loop<5;loop++)
			{
				fin>>char1;
				m_D = atof(char1);
				m_aElasticMatPro[m_nMatNum - 1].m_dFy[loop] = m_D;
			}
			//读应变
			for(loop=0;loop<5;loop++)
			{
				fin>>char1;
				m_D = atof(char1);
				m_aElasticMatPro[m_nMatNum - 1].m_N[loop] = m_D;
			}
			//读Fu
			fin>>char1;
			m_D = atof(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_dFu = m_D;
			//读FyMin
			fin>>char1;
			m_D = atof(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_dFyMin = m_D;
			//读FuMin
			fin>>char1;
			m_D = atof(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_dFuMin = m_D;
			//读FuMax
			fin>>char1;
			m_D = atof(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_dFuMax = m_D;
			//读入Miu
			fin>>char1;
			m_D = atof(char1);
			m_aElasticMatPro[m_nMatNum - 1].m_dMiu = m_D;
		}		
	}
	fin.close();

	//输出读数结果
	OutputParameter();
}

//*****************************************************************************************
void CElasticSteelMat::OutputParameter()
{
	ofstream fout;
	fout.open("ElasticSteelMat Class Test.tst",ios::out);
	fout<<"共有   "<<m_nMatNum<<"   种材料:"<<endl;
	fout<<endl;
	for(int loop=0;loop<m_nMatNum;loop++)
	{
		fout.width(12);
		fout<<m_aElasticMatPro[loop].m_nNo;
		fout.width(12);
		fout<<m_aElasticMatPro[loop].m_cMatName<<endl;

		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dEO[0];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dEO[1];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dEO[2];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dEO[3];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dEO[4]<<endl;

		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFy[0];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFy[1];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFy[2];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFy[3];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFy[4]<<endl;

		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_N[0];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_N[1];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_N[2];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_N[3];
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_N[4]<<endl;

		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFu;
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFyMin;
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFuMin;
		fout.width(16);
		fout<<m_aElasticMatPro[loop].m_dFuMax<<endl;
		fout<<endl;	
		fout<<m_aElasticMatPro[loop].m_dMiu;
		fout<<endl;	
	}	
	fout.close();	
}

⌨️ 快捷键说明

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