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

147

148

149

150

151

--실습 1번--

 

#include <iostream>

 

#include <string>

 

using namespace std;

 

class Converter {

 

protected:

 

    double ratio;

 

    virtual double convert(double src) = 0;

 

    virtual string getSourceString() = 0;

 

    virtual string getDestString() = 0;

 

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:

 

    double convert(double src) {

 

        return src / ratio;

 

    }

 

    string getSourceString() {

 

        return "원";

 

    }

 

    string getDestString() {

 

        return "달러";

 

    }

 

public:

 

    WonToDollar(double ratio) : Converter(ratio) { ; }

 

};

 

int main() {

 

    WonToDollar wd(1010);

 

    wd.run();

 

}

 

--실습 2번--

 

#include <iostream>

 

#include <string>

 

using namespace std;

 

class Converter {

 

protected:

 

    double ratio;

 

    virtual double convert(double src) = 0;

 

    virtual string getSourceString() = 0;

 

    virtual string getDestString() = 0;

 

public:

 

    Converter(double ratio) { this->ratio = ratio; }

 

    void run() {

 

        double src;

 

        cout << getSourceString() << "을 " << getDestString() << "로 바꿉니다. ";

 

        cout << getSourceString() << "을 입력하세요>> ";

 

        cin >> src;

 

        cout << "변환 결과: " << convert(src) << getDestString() << endl;

 

    }

 

};

 

class KmToMile :public Converter {

 

public:

 

    KmToMile(double ratio) :Converter(ratio) { ; }

 

protected:

 

    double convert(double src) {

 

        return src / ratio;

 

    }

 

    string getSourceString() {

 

        return "Km";

 

    }

 

    string getDestString() {

 

        return "Mile";

 

    }

 

};

 

int main() {

 

    KmToMile toMile(1.609344);

 

    toMile.run();

 

}

Colored by Color Scripter

cs

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

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

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

#include <iostream>

using namespace std;

 

class BaseMemory {

    char *mem;

protected:

    BaseMemory(int size) { mem = new char[size]; }

    void setMemory(int mem_num, char val) { this->mem[mem_num] = val; }

public:

    char read(int mem_index) {

        return this->mem[mem_index];

    }

};

class ROM :public BaseMemory {

public:

    ROM(int sizechar *x, int mem_index) :BaseMemory(size) {

        for (int i = 0;i < mem_index;i++) {

            this->setMemory(i, x[i]);

        }

    }

};

class RAM :public BaseMemory {

public:

    RAM(int size) : BaseMemory(size) {;}

    void write(int mem_index, char val);

};

void RAM::write(int mem_index, char val) {

    this->setMemory(mem_index, val);

}

int main() {

    char x[5= { 'h','e','l','l','o' };

    ROM boisROM(1024 * 10, x, 5);

    RAM mainMemory(1024 * 1024);

 

    for (int i = 0;i < 5;i++) {

        mainMemory.write(i, boisROM.read(i));

    }

    for (int i = 0;i < 5;i++) {

        cout << mainMemory.read(i);

    }

}

Colored by Color Scripter

cs

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

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

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

#include <iostream>

#include <string>

using namespace std;

 

class BaseArray {

    int capacity;

    int *mem;

protected:

    BaseArray(int capacity = 100) {

        this->capacity = capacity;

        mem = new int[capacity];

    }

    ~BaseArray() { delete[]mem; }

    void put(int index, int val) { mem[index] = val; }

    int get(int index) { return mem[index]; }

    int getCapacity() { return capacity; }

};

class MyStack :public BaseArray {

    int top;

public:

    MyStack(int capacity = 100) {

        this->top = -1;

    }

    void push(int val);

    int pop();

    int length();

    int capacity();

};

void MyStack::push(int val) {

    this->top++;

    this->put(this->top, val);

}

int MyStack::pop() {

    this->top--;

    return this->get(top + 1);

}

int MyStack::length() {

    return this->top+1;

}

int MyStack::capacity() {

    return this->getCapacity();

}

 

int main() {

    MyStack mStack(100);

    int n;

    cout << "스택에 삽입할 5개의 정수를 입력하라>> ";

    for (int i = 0;i < 5;i++) {

        cin >> n;

        mStack.push(n);

    }

    cout << "스택용량:" << mStack.capacity() << "스택크기:" << mStack.length() << endl;

    cout << "스택의 모든 원소를 팝하여 출력한다>> ";

    while (mStack.length() != 0) {

        cout << mStack.pop() << ' ';

    }

    cout << endl << "스택의 현재 크기: " << mStack.length() << endl;

}

 

Colored by Color Scripter

cs

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

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

+ Recent posts