๐Ÿ’ป Information/Computer

[C++] ๊ฐ€์ƒํ•จ์ˆ˜์™€ ์ถ”์ƒํด๋ž˜์Šค

GigaWatt 2015. 5. 28. 00:30
๋ฐ˜์‘ํ˜•


1. Converter ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๋‹ฌ๋Ÿฌ๋ฅผ ์›ํ™”๋กœ ํ™˜์‚ฐํ•˜๋Š” WonToDollar ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ.

2. Converter ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ km๋ฅผ mile๋กœ ๋ณ€ํ™˜ํ•˜๋Š” KmToMile ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>  
#include <string>
 
using namespace std;
 
class Converter {
protected:
 double ratio;
 virtual double convert(double src) = 0// src๋ฅผ ๋‹ค๋ฅธ ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.  
 virtual string getSourceString() = 0// ์†Œ์Šค ๋‹จ์œ„ ๋ช…์นญ  
 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 WonToDollar : public Converter {
protected:
 virtual string getSourceString() { return "์›"; }
 virtual string getDestString() { return "๋‹ฌ๋Ÿฌ"; }
 virtual double convert(double src);
 
public:
 WonToDollar(double ratio) : Converter(ratio) { }
};
 
double WonToDollar::convert(double src) {
 return src / ratio;
}
 
class KmToMile : public Converter {
protected:
 virtual string getSourceString() { return "km"; }
 virtual string getDestString() { return "mile"; }
 virtual double convert(double src);
 
public:
 KmToMile(double ratio) : Converter(ratio) { }
};
 
double KmToMile::convert(double src) {
 return src / ratio;
}
 
 
int main() {
 WonToDollar wd(1010); // 1 ๋‹ฌ๋Ÿฌ์— 1010์›  
 wd.run();
 KmToMile toMile(1.609344); // 1mile์€ 1.609344 km 
 toMile.run();
 
}
cs


์‹คํ–‰ ๊ฒฐ๊ณผ 

 

 

๋ฐ˜์‘ํ˜•