본문 바로가기
프로그래밍

[C++] 명품 c++ 프로그래밍 실습 3장 10번

by 엽기토기 2020. 12. 23.
반응형

add sub mul div 클래스 만들어서
main 함수에서 각 클래스 타입 객체 a s m d를 생성한다. 그리고 키보드로부터 두 개의 정수와 연산자 입력받고 setValue() 함수 호출한 후, calculate를 호출하여 결과를 화면에 출력 ! (무한루프)

객체지향언어 수업 과제 이었습니다. 복학하고 처음 접한 과제라 너무 어려웠는데 지금 보니까 간단하네요 ㅠㅠ
-----------------------------------------------------------------------------------------------------------------------

<Add.h>

#ifndef ADD_H 
#define ADD_H

class Add //덧셈 클래스
{ 
private:
	int a, b;
public:
	void setValue(int x, int y); //받을거
	int calculate(); //더할거
};
#endif

//클래스 선언 부

 

<Sub.h>

#ifndef SUB_H
#define SUB_H

class Sub //뺄셈 클래스
{ 
private:
	int a, b;
public:
	void setValue(int x, int y);//받을거
	int calculate();//뺄거

};
#endif
//클래스 선언 부

 

<Mul.h>

#ifndef MUL_H
#define MUL_H

class Mul //곱셈 클래스
{ 
private:
	int a, b;
public:
	void setValue(int x, int y); //받을거
	int calculate(); //곱할거

};
#endif
//클래스 선언 부

 

<Div.h>

#ifndef DIV_H
#define DIV_H

class Div //나눗셈 클래스
{ 
private:
	int a, b;
public:
	void setValue(int x, int y); //받을거
	int calculate();//나눌거

};
#endif
//클래스 선언 부

 

<cal.cpp>

#include "Add.h"
#include "Sub.h"
#include "Mul.h"
#include "Div.h"

void Add::setValue(int x, int y) { a = x; b = y; } 
//매개변수 x,y를 멤버 a,b에 복사
void Sub::setValue(int x, int y) { a = x; b = y; }
void Mul::setValue(int x, int y) { a = x; b = y; }
void Div::setValue(int x, int y) { a = x; b = y; }
int Add::calculate() { return a + b;} 
int Sub::calculate() { return a - b;}
int Mul::calculate() { return a * b;}
int Div::calculate() { return a / b;}

//클래스 구현 부

 

<Main.cpp>

#include <iostream>
#include "Add.h" //클래스 선언된 헤더 파일
#include "Sub.h"
#include "Mul.h"
#include "Div.h"
using namespace std;


int main()
{
	int X, Y; //숫자 입력 받을거
	char C; //연산자 입력 받을거
	Add a; //각 클래스 타입 객체 생성
	Sub s;
	Mul m;
	Div d;

	for(;;) { //무한 루프
		cout << "두 정수와 연산자를 입력하세요>>";
		cin >> X >> Y >> C; //정수 두 개와 연산자 입력

		a.setValue(X, Y); //함수 호출
		s.setValue(X, Y);
		m.setValue(X, Y);
		d.setValue(X, Y); 

		if (C == '+')
			cout << a.calculate() <<endl; //멤버 함수 접근
		else if (C == '-')
			cout << s.calculate() << endl;
		else if (C == '*')
			cout << m.calculate() << endl;
		else if (C == '/')
			cout << d.calculate() << endl;
	}

}

 

<실행화면>

반응형