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

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

-- 실습 3번 --

#include <iostream>

#include <string>

using namespace std;

 

class LoopAdder {

    string name;

    int x, y, sum;

    void read();

    void write();

protected:

    LoopAdder(string name = "") {

        this->name = name;

    }

    int getX() { return x; }

    int getY() { return y; }

    virtual int calculate() = 0;

public:

    void run();

};

void LoopAdder::read() {

    cout << name << ":" << endl;

    cout << "처음 수에서 두번째 수까지 더합니다. 두 수를 입력하세요 >> ";

    cin >> x >> y;

}

void LoopAdder::write() {

    cout << x << "에서 " << y << "까지의 합 = " << sum << " 입니다." << endl;

}

void LoopAdder::run() {

    read();

    sum = calculate();

    write();

}

class ForLoopAdder :public LoopAdder {

public:

    ForLoopAdder(string name = "") :LoopAdder(name) { ; }

protected:

    int calculate() {

        int sum_ = 0;

        for (int i = this->getX();i <= this->getY();i++) {

            sum_ += i;

        }

        return sum_;

    }

};

 

int main() {

    ForLoopAdder forLoop("For Loop");

    forLoop.run();

}

 

-- 실습 4번 --

 

#include <iostream>

#include <string>

using namespace std;

 

class LoopAdder {

    string name;

    int x, y, sum;

    void read();

    void write();

protected:

    LoopAdder(string name = "") {

        this->name = name;

    }

    int getX() { return x; }

    int getY() { return y; }

    virtual int calculate() = 0;

public:

    void run();

};

void LoopAdder::read() {

    cout << name << ":" << endl;

    cout << "처음 수에서 두번째 수까지 더합니다. 두 수를 입력하세요 >> ";

    cin >> x >> y;

}

void LoopAdder::write() {

    cout << x << "에서 " << y << "까지의 합 = " << sum << " 입니다." << endl;

}

void LoopAdder::run() {

    read();

    sum = calculate();

    write();

}

 

class WhileLoopAdder :public LoopAdder {

public:

    WhileLoopAdder(string name = "") : LoopAdder(name) { ; }

protected:

    int calculate() {

        int counter = getX();

        int sum_ = 0;

        while (counter <= getY()) {

            sum_ += counter;

            counter++;

        }

        return sum_;

    }

};

 

class DoWhileLoopAdder :public LoopAdder {

public:

    DoWhileLoopAdder(string name = "") :LoopAdder(name) { ; }

protected:

    int calculate() {

        int counter = getX();

        int sum_ = 0;

        do {

            sum_ += counter;

            counter++;

        } while (counter <= getY());

        return sum_;

    }

 

};

 

int main() {

    WhileLoopAdder whileLoop("while Loop");

    DoWhileLoopAdder doWhileLoop("Do while Loop");

 

    whileLoop.run();

    doWhileLoop.run();

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Colored by Color Scripter

cs

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

명품 c++ 9장 실습문제 6번  (0) 2019.06.14
명품 c++ 9장 실습문제 5번  (0) 2019.06.14
명품 c++ 9장 실습문제 1,2 번  (0) 2019.06.14
명품 c++ 8장 실습문제 7번  (0) 2019.06.10
명품 c++ 8장 실습문제 6번  (0) 2019.06.10

+ Recent posts