ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 3장 10번
    C++ 2018. 10. 28. 23:33

    10. 다수의 클래스를 선언하고 활용하는 간단한 문제이다. 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 수행하는 4개의 클래스 Add, Sub, Mul, Div를 만들고자 한다. 이들은 모두 공통으로 다음 멤버를 가진다.

    - int 타입 변수 a, b : 피연산자

    - void setValue(int x, int y) 함수 : 매개 변수 x, y를 멤버 a, b에 복사

    - int calcuate() 함수 : 연산을 실행하고 결과를 리턴


    main() 함수는 Add, Sub, Mul, Div 클래스 타입의 객체 a, s, m, d를 생성하고, 아래와 같이 키보드로부터 두 개의 정수와 연산자를 입력받고, a, s, m, d 객체 중에서 연산을 처리할 객체의 setValue() 함수를 호출한 후, calculate()를 호출하여 결과를 화면에 출력한다. 프로그램은 무한 루프를 돈다.


    소스코드


    #include <iostream>
    using namespace std;
    class Add { // 더하기 클래스
        int a, b;
    public:
        void setValue(int x, int y);
        int calculate();
    };
    void Add::setValue(int x, int y) { //값 설정
        a = x; b = y;
    }
    int Add::calculate() { //더하기 연산
        return a + b;
    }
    class Sub { // 빼기 클래스
        int a, b;
    public:
        void setValue(int x, int y);
        int calculate();
    };
    void Sub::setValue(int x, int y) { //값 설정
        a = x; b = y;
    }
    int Sub::calculate() { // 빼기 연산
        return a - b;
    }
    class Mul { // 곱하기 클래스
        int a, b;
    public:
        void setValue(int x, int y);
        int calculate();
    };
    void Mul::setValue(int x, int y) { //값 설정
        a = x; b = y;
    }
    int Mul::calculate() { // 곱하기 연산
        return a * b;
    }
    class Div { // 나누기 클래스
        int a, b;
    public:
        void setValue(int x, int y);
        int calculate();
    };
    void Div::setValue(int x, int y) { //값 설정
        a = x; b = y;
    }
    int Div::calculate() { // 나누기 연산
        return a / b;
    }
    int main() {
        Add a;
        Sub s;
        Mul m;
        Div d;
        char op;
        int x, y;
        for (;;) { // 무한루프
            cout << "숫자 연산자 숫자 입력 해주세요 ";
            cin >> x >> op >> y;
            if (op == '+') { // 더하기
                a.setValue(x, y);
                cout << "연산결과 : " << a.calculate() <<endl;
            }
            else if (op == '-') { // 빼기
                s.setValue(x, y);
                cout << "연산결과 : " << s.calculate() << endl;
            }
            else if (op == '*') { // 곱하기
                m.setValue(x, y);
                cout << "연산결과 : " << m.calculate() << endl;
            }
            else if (op == '/') { // 나누기
                d.setValue(x, y);
                cout << "연산결과 : " << d.calculate() << endl;
            }
            else
                cout << "입력 오류";
        }
        return 0;
    }


    실행결과



    연산자마다 객체를 생성해 연산을 하였습니다.

    'C++' 카테고리의 다른 글

    명품 C++ 3장 12번  (0) 2018.10.28
    명품 C++ 3장 11번  (0) 2018.10.28
    명품 C++ 3장 9번  (0) 2018.10.28
    명품 C++ 3장 8번  (0) 2018.10.28
    명품 C++ 3장 7번  (0) 2018.10.28

    댓글

© 2018 TISTORY. All rights reserved.