아래 코드는 계산기 클래스를 구현한 것이다 (cppcalc1006.cpp). 다음과 같이 exception handling 코드를 추가하여라.

  • 0으로 나누면 "ERR: Divide by zero"를 출력하고 다음입력을 받는다
  • + - * / 이 외의 연산자가 입력되면 "ERR: Unknown Operator"를 출력하고 다음 입력을 받는다
  • 연산 결과가 음수이면 "ERR: Negative Result" 를 출력하고 다음 입력을 받는다.
  • <val> 값으로 숫자 이 외의 값이 입력되는 경우는 없는 것으로 가정한다.
  • Hint: throw/catch를 사용할 것. exception 생성(throw)은 Calc 클래스에서, handling(catch)은 main 함수에서 수행

실행 예:

Please enter <val> <op> <val>
> 1 + 2
result is 3

Please enter <val> <op> <val>
> 9 / 3
result is 3

Please enter <val> <op> <val>
> 1 - 2
ERR: Negative Result

Please enter <val> <op> <val>
> 9 / 0
ERR: Divide By Zero

Please enter <val> <op> <val>
> 2 # 9
ERR: Unknown Operator
#include <iostream>
#include <string>

using namespace std;

class Calc {

public:
	int calculate( int a, char op, int b );
};

int Calc::calculate( int a, char op, int b )
{
	switch (op) {
	case '+':
		return a + b;
	case '-':
		return a - b;
	case '*':
		return a * b;
	case '/':
		return a/b;
	default:
		exit(1);
	}
}

int main()
{
	Calc c;
	int a, b;
	char op;
	while(1) {
		cout << "\nPlease enter <val> <op> <val>" << endl << "> ";
		cin >> a >> op >> b;
		int result = c.calculate( a, op, b );
		cout << "result is " << result << endl;
	}
	system("pause");

}
 
class/os2014f/hw8.txt · Last modified: 2017/06/17 09:36 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki