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

📄 sdt09.cpp

📁 AotoCAD平台下的结构设计工具
💻 CPP
字号:
// sdt09.cpp : implementation file
//
// Sdt12 - 水泥土墙基坑支护计算  

#include "stdafx.h"
#include "Sdt.h"
#include "sdt09.h"
#include "adslib.h"
#include "math.h"

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

#define Pi 3.1415926
/////////////////////////////////////////////////////////////////////////////
// Csdt09 dialog


Csdt09::Csdt09(CWnd* pParent /*=NULL*/)
	: CDialog(Csdt09::IDD, pParent)
{
	//{{AFX_DATA_INIT(Csdt09)
	m_h = 3.0;
	m_c = 20.0;
	m_q = 20.0;
	m_t = 0.0;
	m_u = 0.25;
	m_a = 20.0;
	m_b = 1.2;
	m_g = 18.0;
	m_l = 0.0;
	m_f = 2.0;
	m_qg = 18.5;
	m_jss = FALSE;
	m_gcm = _T("Zzz");
	//}}AFX_DATA_INIT
}


void Csdt09::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Csdt09)
	DDX_Text(pDX, IDC_EDITkh, m_h);
	DDV_MinMaxDouble(pDX, m_h, 1., 6.);
	DDX_Text(pDX, IDC_EDITlc, m_c);
	DDX_Text(pDX, IDC_EDITmq, m_q);
	DDX_Text(pDX, IDC_EDITmt, m_t);
	DDX_Text(pDX, IDC_EDITmu, m_u);
	DDX_Text(pDX, IDC_EDITpa, m_a);
	DDX_Text(pDX, IDC_EDITqb, m_b);
	DDX_Text(pDX, IDC_EDITtg, m_g);
	DDX_Text(pDX, IDC_EDITzl, m_l);
	DDX_Text(pDX, IDC_EDITqf, m_f);
	DDX_Text(pDX, IDC_EDITqg, m_qg);
	DDX_Check(pDX, IDC_CHECKjss09, m_jss);
	DDX_Text(pDX, IDC_EDITgcm09, m_gcm);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Csdt09, CDialog)
	//{{AFX_MSG_MAP(Csdt09)
	ON_BN_CLICKED(IDC_BUTTONjs, OnBUTTONjs)
	ON_BN_CLICKED(IDC_BTSdtHelp9, OnBTSdtHelp9)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Csdt09 message handlers

void Csdt09::OnBUTTONjs() 
{
	int flag;
	double t;
	double ka,kp,eq,ea,ep,fa,fp,ha,hp,w,pa;
    double kh,kq,kz;  
	CString msg="墙厚度不够,请增大墙厚b.";
	
	UpdateData(TRUE);
	
	pa=m_a*Pi/180.0;
	ka=tan(Pi/4.0-pa/2.0)*tan(Pi/4.0-pa/2.0);
	kp=tan(Pi/4.0+pa/2.0)*tan(Pi/4.0+pa/2.0);

  for(t=0.4*m_h;t<=1.8*m_h;t+=0.1) {
	eq=m_q*ka;
	ea=m_g*(m_h+t)*ka-2*m_c*sqrt(ka);
	ep=m_g*t*kp+2*m_c*sqrt(kp);

	fa=(eq+ea/2.0)*(m_h+t);
	ha=(3*eq+ea)*(m_h+t)/(6*eq+3*ea);
	fp=ep*t/2.0;
	hp=t/3.0;
	
	w=m_b*(m_h+t)*1.0*m_qg;

	kh=(m_u*w+fp)/fa;
	kq=(w*m_b/2.0+fp*hp)/fa*ha;
	kz=m_f*1e3/(w/m_b);
	
	if(kh>=1.3 && kq>=1.5 && kz>=1.2) {
		m_t=t; flag=1; break;}
	flag=0; 
  }
	
	if(flag==0) { AfxMessageBox(msg);return;}
	m_t*=1.2;
	m_l=m_h+m_t;
	
	UpdateData(FALSE);

if(m_jss == TRUE){

	FILE *ou; 
	CString flname;

	if(m_gcm =="") {AfxMessageBox("请输入工程名!"); return;}

	flname=m_gcm + ".txt";
	ou=fopen(flname,"a");

	fprintf(ou,"\n\n\n");
	
	fprintf(ou,"\n   ***********************************************************************");
	fprintf(ou,"\n   ***                       结 构 设 计 计 算 书                      ***");
	fprintf(ou,"\n   ***                                                                 ***");
	fprintf(ou,"\n   ***                    Sdt12 - 水泥土墙基坑支护计算                 ***");
	fprintf(ou,"\n   *************************************************    Zgs 2002    ******");

	fprintf(ou,"\n\n   工程名称:  %s",m_gcm);
	
	fprintf(ou,"\n\n1. 已知数据\n");
	fprintf(ou,"\n   基坑深度 H=%6.2f(m),     土体内摩擦角(加权平均值)ψ=%6.2f",m_h,m_a);
	fprintf(ou,"\n   土体内粘聚力(加权平均值) C=%6.2f(kN/m/m),土体重力密度(加权平均值)γ=%6.2f",
						m_c,m_g);
	fprintf(ou,"\n   水泥土重力密度γcs=%6.2f,  水泥土强度 Fcs=%6.2f(MPa)",m_qg,m_f);
	fprintf(ou,"\n   基底摩擦系数    μ=%6.2f,  地面超载     Q=%6.2f(kN/m/m)",m_u,m_q);
	
	fprintf(ou,"\n\n2. 计算结果\n");
	fprintf(ou,"\n   水泥土墙厚度     B=%7.3f(m)",m_b);
	fprintf(ou,"\n   水泥土墙埋入深度 T=%7.3f(m)",m_t);
	fprintf(ou,"\n   水泥土墙总长度   L=%7.3f(m)",m_l);
	

	time_t tad;
	char *buf;
	buf=(char*)calloc(80,sizeof(char));
	if(buf==NULL) exit(-1);
	tad=time(NULL);
	strftime(buf,80,"%A %B %d,%Y",localtime(&tad));

	fprintf(ou,"\n\n                                   设计人:");
	fprintf(ou,"\n                                 %s",buf);

	fclose(ou);
	}
}

void Csdt09::OnBTSdtHelp9() 
{
	ads_help("sdt2002.hlp","SDT12",0);	
}

⌨️ 快捷键说明

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