명품C++프로그래밍
명품 C++ Programming 실습문제 9장 1번
anycoding
2021. 6. 1. 19:08
반응형
1~2번에 쓰이는 단위변환 추상 클래스 Converter입니다.
#include<iostream>
using namespace std;
class Converter {
protected:
double ratio;
virtual double convert(double src) = 0; //src를 다른 단위로 변환한다.
virtual string getSourceString() = 0; //src 단위 명칭
virtual string getDestString() = 0; //dest 단위 명칭
public:
Converter(double ratio) { this->ratio = ratio; }
void run() {
double src;
cout << getSourceString() << "을 " << getDestString() << "로 바꿉니다. ";
cout << getSourceString() << "을 입력하세요>> ";
cin >> src;
cout << "변환 결과 : " << convert(src) << getDestString() << endl;
}
};
문제
Converter 클래스를 상속받아 달러를 원화로 환산하는 WonToDollar 클래스를 작성하라. main() 함수와 실행 결과는 다음과 같다.
int main()
{
WonToDallar wd(1010); //1달러에 10101원
wd.run();
}
결과
원을 달러로 바꿉니다. 원을 입력하세요>> 10000
변환 결과 : 9.90099달러
소스코드
#include<iostream>
using namespace std;
class Converter {
protected:
double ratio;
virtual double convert(double src) = 0; //src를 다른 단위로 변환한다.
virtual string getSourceString() = 0; //src 단위 명칭
virtual string getDestString() = 0; //dest 단위 명칭
public:
Converter(double ratio) { this->ratio = ratio; }
void run() {
double src;
cout << getSourceString() << "을 " << getDestString() << "로 바꿉니다. ";
cout << getSourceString() << "을 입력하세요>> ";
cin >> src;
cout << "변환 결과 : " << convert(src) << getDestString() << endl;
}
};
class WonToDallar : public Converter
{
int krw;
public:
WonToDallar(int krw) : Converter(krw) { this->krw = krw; }
virtual double convert(double src) {
return src / krw;
}
virtual string getSourceString() {
return "원";
}
virtual string getDestString() {
return "달러";
}
};
int main()
{
WonToDallar wd(1010); //1달러에 10101원
wd.run();
}
반응형