1. 문제

 

(2) 클래스의 선언부와 구현부를 헤더 파일과 cpp 파일로 나누어 프로그램을 작성하라.

 

 

2. 결과

 

 

3. 코드

 

// main.cpp

#include <iostream>
#include <string>
using namespace std;

#include "Calculator.h"

int main() {

	char cal[10]; char *p;
	int x, y; 

	while(1) { 
		cout << "두 정수와 연산자를 입력하세요>>";
		cin.getline( cal, 20);
		x = stoi( strtok( cal, " ") );
		y = stoi( strtok( NULL, " ") );
		p = strtok( NULL, "");
		if( strcmp( p, "+") == 0 ) {  
			Add a; 
			a.setValue(x, y); 
			cout << a.calculate() << endl; }
		else if( strcmp( p, "-") == 0 ) {
			Sub s;
			s.setValue(x, y);
			cout << s.calculate() << endl; }
		else if( strcmp( p, "*") == 0 ) {
			Mul m;
			m.setValue(x, y);
			cout << m.calculate() << endl; }
		else if( strcmp( p, "/") == 0 ) {
			Div d;
			d.setValue(x, y);
			cout << d.calculate() << endl; }
	}
}
// Calculator.cpp

#include "Calculator.h"

void Add::setValue(int x, int y) {
	a = x; b = y;
}
int Add::calculate() {
	return a+b;
}

void Sub::setValue(int x, int y) {
	a = x; b = y;
}
int Sub::calculate() {
	return a-b;

}void Mul::setValue(int x, int y) {
	a = x; b = y;
}
int Mul::calculate() {
	return a*b;

}void Div::setValue(int x, int y) {
	a = x; b = y;
}
int Div::calculate() {
	return a/b;
}
// Calculator.h

class Add {
	int a;
	int b;
public :
	void setValue(int x, int y);
	int calculate();
};
class Sub {
	int a;
	int b;
public :
	void setValue(int x, int y);
	int calculate();
};
class Mul {
	int a;
	int b;
public :
	void setValue(int x, int y);
	int calculate();
};
class Div {
	int a;
	int b;
public :
	void setValue(int x, int y);
	int calculate();
};

 

4. 설명

 

클래스의 선언부를 Calculator.h 헤더파일에 구현부는 Calculator.cpp 파일에 각각 나누어서 작성합니다.

 

 

main파일에는 main함수만 있도록 만드셔야 합니다.
 
※ 사용자가 만든 헤더 파일에 include하기 위해서는 #include "Claculator.h" 이처럼 ""을 사용하셔야 합니다.

 

+ Recent posts