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

📄 cal.cpp

📁 这是一个计算器小程序,实现加减乘除功能,适合初学者参考及学习!
💻 CPP
字号:
// Cal.cpp: implementation of the CCal class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Calculator.h"
#include "Cal.h"

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

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

CCal::CCal()
{
	m_A=0;
	m_State=0;
}

CCal::~CCal()
{

}

CString CCal::Input(char c)
{   CString str;
	switch (m_State)
	{
	case 0:
		if (c>='0' && c<='9'){
		    m_A = c - '0';
			str.Format("%f",m_A);
			m_State=1;
			return str;
		}
		if (c=='+'||c=='-'||c=='*'||c=='/'){
			m_Op=c;
			str.Format("%f",m_A);
			m_State=2;
			return str;
		}
		if (c=='C'){
		    m_A=0;
			m_State=0;
			str.Format("%f",m_A);
			return str;
		}
		if (c=='='){
			m_State=0;
			str.Format("%f",m_A);
			return str;	
		}

	case 1:
		if (c>='0' && c<='9'){
		    m_A = m_A*10 + c - '0';
			str.Format("%f",m_A);
			m_State=1;
			return str;
		}
		if (c=='+'||c=='-'||c=='*'||c=='/'){
			m_Op=c;
			str.Format("%f",m_A);
			m_State=2;
			return str;
		}
		if (c=='C'){
		    m_A=0;
			m_State=0;
			str.Format("%f",m_A);
			return str;
		}
		if (c=='='){
			m_State=0;
			str.Format("%f",m_A);
			return str;	
		}

	case 2:
		if (c>='0' && c<='9'){
		    m_B = c - '0';
			str.Format("%f",m_B);
			m_State=3;
			return str;
		}
		if (c=='+'||c=='-'||c=='*'||c=='/'){
			m_Op=c;
			str.Format("%f",m_B);
			m_State=2;
			return str;
		}
		if (c=='C'){
		    m_A=0;
			m_State=0;
			str.Format("%f",m_A);
			return str;
		}
		if (c=='='){
			m_State=0;
			str.Format("%f",m_A);
			return str;	
		}

	case 3:
		if (c>='0' && c<='9'){
		    m_B = m_B *10 + c - '0';
			str.Format("%f",m_B);
			m_State=3;
			return str;
		}
		if (c=='+'||c=='-'||c=='*'||c=='/'){
			m_A=Oper(m_A,m_B,m_Op);
			m_Op=c;
			str.Format("%f",m_A);
			m_State=2;
			return str;
		}
		if (c=='C'){
		    m_A=0;
			m_State=0;
			str.Format("%f",m_A);
			return str;
		}
		if (c=='='){
			m_A=Oper(m_A,m_B,m_Op);
			m_Op=c;
			str.Format("%f",m_A);
			m_State=0;
			return str;
		}
	}
}

double CCal::Oper(double a, double b, char op)
{
	switch (op){
	case '+': return a+b;
	case '-': return a-b;
	case '*': return a*b;
	case '/': if (b==0) return 0;
				else return a/b;
	
	}
}

⌨️ 快捷键说明

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