[MFC] 계산기 프로그램 작성 1

  • 최초 작성일: 2022년 2월 25일 (금)

목차

[TOC]

목적

사칙 연산과 CString 함수의 형 변환을 이용하여 계산기 프로그램을 작성한다.


프로젝트 생성

  • 프로젝트명: ‘Calc’
  • 응용 프로그램 종류: ‘대화 상자 기반’


다이얼로그 설정

image

image


멤버 변수 설정

아래와 같이, [클래스 뷰]-[Calc]-[CCalcDlg]에서 [추가]-[변수 추가]를 클릭하고 멤버 변수를 추가한다.

image

image


그리고 클래스 마법사를 실행시키고, [멤버 변수] 탭에서 아래와 같이 멤버 변수들을 추가한다.

image

image


또한, 클래스 마법사에서 다음과 같이 버튼 클릭시에 대한 멤버 함수를 추가하고, 코드를 작성하자.

image

코드 작성

void CCalcDlg::OnClickedButtonAdd()
{
	// TODO: Add your control notification handler code here
	m_nOption = 1;
}

void CCalcDlg::OnClickedButtonSub()
{
	// TODO: Add your control notification handler code here
	m_nOption = 2;
}

void CCalcDlg::OnClickedButtonMul()
{
	// TODO: Add your control notification handler code here
	m_nOption = 3;
}

void CCalcDlg::OnClickedButtonDiv()
{
	// TODO: Add your control notification handler code here
	m_nOption = 4;
}

void CCalcDlg::OnClickedButtonEqu()
{
	// TODO: Add your control notification handler code here
	char temp[10];
	double tmpResult;

	UpdateData(TRUE);

	switch (m_nOption)
	{
		case 1:
			tmpResult = atof(m_nNum1) + atof(m_nNum2);	// [프로젝트 속성]-[구성 속성]-[고급]-[문자 집합]-[멀티바이트 문자 집합 사용] 안하면 에러뜸.
			break;
		case 2:
			tmpResult = atof(m_nNum1) - atof(m_nNum2);
			break;
		case 3:
			tmpResult = atof(m_nNum1) * atof(m_nNum2);
			break;
		case 4:
			tmpResult = atof(m_nNum1) / atof(m_nNum2);
			break;
		default:
			tmpResult = 0.00;
			break;
	}

	sprintf_s(temp, "%2.f", tmpResult);
	m_nResult = temp;
	UpdateData(FALSE);
}

void CCalcDlg::OnClickedButtonClear()
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	m_nNum1 = L"";
	m_nNum2 = _T("");
	m_nResult = _T("");
	UpdateData(FALSE);
}

void CCalcDlg::OnClickedButtonExit()
{
	// TODO: Add your control notification handler code here
	PostQuitMessage(0);
}


결과

image

image

image

image