소개글
AND, OR, NOT 게이트 계산기를 를 C++로 구현한 것입니다.
입력받은 식에서 x,y와 함께 0과 1도 문자로 인식하기 때문에 숫자로 바꾸어 줍니다.
연산자 우선순위 작성 되어 있습니다.
[주석이 달려있습니다]
컴파일 실행환경
x,y 를 변수로 가진 식을 입력하고
x,y 변수값(0 or 1)을 정해주면 논리식을 계산합니다.
ex) F = x+y*x+^1+0
입력으로 x,y값을 지정해 주면 계산합니다.
+ : OR, * : AND, ^ = NOT
본문내용
int main ()
{
Logic_gate gate;
string f;
int j;
short a, b, result = 0;
short result_and = 0, result_or = 0;
cout << "x, y 그리고 0, 1 을 사용한 공식을 입력하세요." << endl;
cout << "F = " ;
cin >> f;
for ( j = 0; j < f.size(); j++ )
{
if ( f[j] != '1' && f[j] != '0' && f[j] != 'x' && f[j] != 'y' &&
f[j] != '*' && f[j] != '^' && f[j] != '+')
{
cout << "x, y 그리고 0, 1 만 사용하세요." << endl << "F : " ;
cin >> f;
} // 식이 잘못 되었을 경우 수정
}
cout<< "---- x와 y 값을 입력하세요. (0과1만 입력하세요) ----" << endl;
cout << " x : ";
cin >> a;
if ( a != 1 && a != 0 ) // x 값이 0, 1 모두 아닐경우
{
cout << "0, 1 만 입력하세요." << endl << " x : ";
cin >> a;
}
참고 자료
없음