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

📄 故障测距view.cpp

📁 故障测距软件编程
💻 CPP
字号:
// 故障测距View.cpp : implementation of the CMyView class
//

#include "stdafx.h"
#include "故障测距.h"

#include "故障测距Doc.h"
#include "故障测距View.h"
#include "Line.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CFormView)

BEGIN_MESSAGE_MAP(CMyView, CFormView)
	//{{AFX_MSG_MAP(CMyView)
	ON_BN_CLICKED(IDC_LINE_DAT, OnLineDat)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
	: CFormView(CMyView::IDD)
{
	//{{AFX_DATA_INIT(CMyView)
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CMyView::~CMyView()
{
}

void CMyView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyView)
	DDX_Control(pDX, IDC_END, m_END);
	DDX_Control(pDX, IDC_HEAD, m_HEAD);
	DDX_Control(pDX, IDC_XC, m_XC);
	DDX_Control(pDX, IDC_R0, m_R0);
	DDX_Control(pDX, IDC_LINE_LENGTH, m_LINE_LENGTH);
	DDX_Control(pDX, IDC_L1, m_L1);
	DDX_Control(pDX, IDC_L0, m_L0);
	DDX_Control(pDX, IDC_L_XC, m_L_XC);
	DDX_Control(pDX, IDC_HEAD_XN, m_HEAD_XN);
	DDX_Control(pDX, IDC_HEAD_XL, m_HEAD_XL);
	DDX_Control(pDX, IDC_END_XN, m_END_XN);
	DDX_Control(pDX, IDC_END_XL, m_END_XL);
	DDX_Control(pDX, IDC_C1, m_C1);
	DDX_Control(pDX, IDC_C0, m_C0);
	DDX_Control(pDX, IDC_R1, m_R1);
	//}}AFX_DATA_MAP
}

BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CMyView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	if(flag_line_read==NON_READ)
		//参数初始化
		CMyView::Initial_data() ;
	else if(flag_line_read==HAVE_READ)
		//载入已经读入的数据
		CMyView::Insert_data() ;




}

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

#ifdef _DEBUG
void CMyView::AssertValid() const
{
	CFormView::AssertValid();
}

void CMyView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CMyDoc* CMyView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
	return (CMyDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers

void CMyView::OnLineDat() 
{
	FILE *fp ;
	char filename[300] ;
	CString S ;

	CFileDialog fileDlg (TRUE, NULL, NULL,
      OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, "*.dat|*.dat|All files|*.*||", this);  
   
	if( fileDlg.DoModal ()==IDOK )
	{		
		//线路参数已读入标志置位
		flag_line_read = HAVE_READ ;

		CString pathName = fileDlg.GetPathName() ;
		strncpy(filename,(LPCTSTR)pathName,sizeof(filename)) ;
		fp = fopen(filename,"r") ;	
		//=====读入线路参数=====//
		fscanf(fp,"%lf %lf %lf %lf %lf %lf %lf %s %s %lf %lf %lf %lf %lf %lf",&R1,&L1,&C1,&R0,&L0,&C0,&length,head,end,&XC,&l_C,&head_XL,&head_Xn,&end_XL,&end_Xn) ;
		//R1
		S.Format("%.5lf",R1) ;
		m_R1.SetSel(0,-1) ;
		m_R1.ReplaceSel(S) ;
		//L1
		S.Format("%.5lf",L1) ;
		m_L1.SetSel(0,-1) ;
		m_L1.ReplaceSel(S) ;
		//C1
		S.Format("%.5lf",C1) ;
		m_C1.SetSel(0,-1) ;
		m_C1.ReplaceSel(S) ;
		//R0
		S.Format("%.5lf",R0) ;
		m_R0.SetSel(0,-1) ;
		m_R0.ReplaceSel(S) ;
		//L0
		S.Format("%.5lf",L0) ;
		m_L0.SetSel(0,-1) ;
		m_L0.ReplaceSel(S) ;
		//C0
		S.Format("%.5lf",C0) ;
		m_C0.SetSel(0,-1) ;
		m_C0.ReplaceSel(S) ;
		//line length
		S.Format("%.2lf",length) ;
		m_LINE_LENGTH.SetSel(0,-1) ;
		m_LINE_LENGTH.ReplaceSel(S) ;
		//首端名称
		m_HEAD.SetSel(0,-1) ;
		m_HEAD.ReplaceSel(head) ;
		//末端名称
		m_END.SetSel(0,-1) ;
		m_END.ReplaceSel(end) ;
		//串联补偿
		S.Format("%.2lf",XC) ;
		m_XC.SetSel(0,-1) ;
		m_XC.ReplaceSel(S) ;
		//串联补偿距首端位置
		S.Format("%.2lf",l_C) ;
		m_L_XC.SetSel(0,-1) ;
		m_L_XC.ReplaceSel(S) ;
		//首端高抗
		S.Format("%.2lf",head_XL) ;
		m_HEAD_XL.SetSel(0,-1) ;
		m_HEAD_XL.ReplaceSel(S) ;
		//首端高抗中性点小电抗
		S.Format("%.2lf",head_Xn) ;
		m_HEAD_XN.SetSel(0,-1) ;
		m_HEAD_XN.ReplaceSel(S) ;
		//末端高抗
		S.Format("%.2lf",end_XL) ;
		m_END_XL.SetSel(0,-1) ;
		m_END_XL.ReplaceSel(S) ;
		//末端高抗中性点小电抗
		S.Format("%.2lf",end_Xn) ;
		m_END_XN.SetSel(0,-1) ;
		m_END_XN.ReplaceSel(S) ;
	}		
}


//参数初始化函数
void CMyView::Initial_data()
{
	CString S ;
	//R1
	R1 = 0 ;
	S.Format("%.5lf",R1) ;
	m_R1.SetSel(0,-1) ;
	m_R1.ReplaceSel(S) ;
	//L1
	L1 = 0 ;
	S.Format("%.5lf",L1) ;
	m_L1.SetSel(0,-1) ;
	m_L1.ReplaceSel(S) ;
	//C1
	C1 = 0 ;
	S.Format("%.5lf",C1) ;
	m_C1.SetSel(0,-1) ;
	m_C1.ReplaceSel(S) ;
	//R0
	R0 = 0 ;
	S.Format("%.5lf",R0) ;
	m_R0.SetSel(0,-1) ;
	m_R0.ReplaceSel(S) ;
	//L0
	L0 = 0 ;
	S.Format("%.5lf",L0) ;
	m_L0.SetSel(0,-1) ;
	m_L0.ReplaceSel(S) ;
	//C0
	C0 = 0 ;
	S.Format("%.5lf",C0) ;
	m_C0.SetSel(0,-1) ;
	m_C0.ReplaceSel(S) ;
	//line length
	length = 0 ;
	S.Format("%.2lf",length) ;
	m_LINE_LENGTH.SetSel(0,-1) ;
	m_LINE_LENGTH.ReplaceSel(S) ;
	//串联补偿
	XC = 0 ;
	S.Format("%.2f",XC) ;
	m_XC.SetSel(0,-1) ;
	m_XC.ReplaceSel(S) ;
	//串联补偿距首端位置
	l_C = 0 ;
	S.Format("%.2lf",l_C) ;
	m_L_XC.SetSel(0,-1) ;
	m_L_XC.ReplaceSel(S) ;
	//首端高抗
	head_XL = 0 ;
	S.Format("%.2lf",head_XL) ;
	m_HEAD_XL.SetSel(0,-1) ;
	m_HEAD_XL.ReplaceSel(S) ;
	//首端高抗中性点小电抗
	head_Xn = 0 ;
	S.Format("%.2lf",head_Xn) ;
	m_HEAD_XN.SetSel(0,-1) ;
	m_HEAD_XN.ReplaceSel(S) ;
	//末端高抗
	end_XL = 0 ;
	S.Format("%.2lf",end_XL) ;
	m_END_XL.SetSel(0,-1) ;
	m_END_XL.ReplaceSel(S) ;
	//末端高抗中性点小电抗
	end_Xn = 0 ;
	S.Format("%.2lf",end_Xn) ;
	m_END_XN.SetSel(0,-1) ;
	m_END_XN.ReplaceSel(S) ;

}


//调入已读参数的函数
void CMyView::Insert_data()
{
	CString S ;
	//R1
	S.Format("%.5lf",R1) ;
	m_R1.SetSel(0,-1) ;
	m_R1.ReplaceSel(S) ;
	//L1
	S.Format("%.5lf",L1) ;
	m_L1.SetSel(0,-1) ;
	m_L1.ReplaceSel(S) ;
	//C1
	S.Format("%.5lf",C1) ;
	m_C1.SetSel(0,-1) ;
	m_C1.ReplaceSel(S) ;
	//R0
	S.Format("%.5lf",R0) ;
	m_R0.SetSel(0,-1) ;
	m_R0.ReplaceSel(S) ;
	//L0
	S.Format("%.5lf",L0) ;
	m_L0.SetSel(0,-1) ;
	m_L0.ReplaceSel(S) ;
	//C0
	S.Format("%.5lf",C0) ;
	m_C0.SetSel(0,-1) ;
	m_C0.ReplaceSel(S) ;
	//line length
	S.Format("%.2lf",length) ;
	m_LINE_LENGTH.SetSel(0,-1) ;
	m_LINE_LENGTH.ReplaceSel(S) ;
	//首端名称
	m_HEAD.SetSel(0,-1) ;
	m_HEAD.ReplaceSel(head) ;
	//末端名称
	m_END.SetSel(0,-1) ;
	m_END.ReplaceSel(end) ;
	//串联补偿
	S.Format("%.2lf",XC) ;
	m_XC.SetSel(0,-1) ;
	m_XC.ReplaceSel(S) ;
	//串联补偿距首端位置
	S.Format("%.2lf",l_C) ;
	m_L_XC.SetSel(0,-1) ;
	m_L_XC.ReplaceSel(S) ;
	//首端高抗
	S.Format("%.2lf",head_XL) ;
	m_HEAD_XL.SetSel(0,-1) ;
	m_HEAD_XL.ReplaceSel(S) ;
	//首端高抗中性点小电抗
	S.Format("%.2lf",head_Xn) ;
	m_HEAD_XN.SetSel(0,-1) ;
	m_HEAD_XN.ReplaceSel(S) ;
	//末端高抗
	S.Format("%.2lf",end_XL) ;
	m_END_XL.SetSel(0,-1) ;
	m_END_XL.ReplaceSel(S) ;
	//末端高抗中性点小电抗
	S.Format("%.2lf",end_Xn) ;
	m_END_XN.SetSel(0,-1) ;
	m_END_XN.ReplaceSel(S) ;

}

⌨️ 快捷键说明

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