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

📄 bldlg.cpp

📁 编译原理词法分析、语法分析等程序的实现
💻 CPP
字号:
// BlDlg.cpp : implementation file
//

#include "stdafx.h"
#include "词法分析.h"
#include "BlDlg.h"
//#include"stack"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBlDlg dialog
/*struct stack
{ 
private:
	int maxsize;
public:
	stack()
	{maxsize=100;
	top=-1;}
	list[100];
	int top;
	void push();
	void pop();
};
p*/


CBlDlg::CBlDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBlDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBlDlg)
	m_bo = _T("");
	m_yc = _T("");
	//}}AFX_DATA_INIT
}


void CBlDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBlDlg)
	DDX_Text(pDX, IDC_BO, m_bo);
	DDX_Text(pDX, IDC_YC, m_yc);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBlDlg, CDialog)
	//{{AFX_MSG_MAP(CBlDlg)
	ON_BN_CLICKED(IDC_change, Onchange)
	ON_BN_CLICKED(IDC_clean, Onclean)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBlDlg message handlers

void CBlDlg::Onchange() 
{
	// TODO: Add your control notification handler code here
	CString figure="";
	CString poperate="";
	int i,j,len;
	UpdateData(TRUE);
	len=m_yc.GetLength();
	j=0;
	int k=-1;
	for(i=0;i<len;i++)
	{
		if(m_yc[i]>=48&&m_yc<=57)
			figure.Insert(figure.GetLength(),m_yc[i]);
			else
		{
				k=poperate.GetLength()-1;
			while((k>=0)&&!(compare(poperate[k],m_yc[i])))
		   
				k--;
            poperate.Insert(k,m_yc[i]);
		}
	}

	m_bo=figure+poperate;		    
	UpdateData(FALSE);

}
bool CBlDlg::compare(char a,char b)
{
	if((a=='+'||a=='-')&&(b=='*'||b=='/'))
		return 1;
	else
		return 0;
}

void CBlDlg::Onclean() 
{
	// TODO: Add your control notification handler code here
        m_yc="";
        m_bo="";
		UpdateData(FALSE);
}

⌨️ 快捷键说明

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