명품 C++ programming 실습 문제 3장 12번

문제 : 컴퓨터의 주기억장치를 모델링하는 클래스의 Ram을 구현하려고 한다. Ram 클래스는 데이터가 기록될 메모리 공간과 크기 정보를 가지고, 주어진 주소에 데이터를 기록하고(write), 주어진 주소로부터 데이터를 읽어 온다(read). Ram 클래스는 다음과 같이 선언된다. 1 2 3 4 5 6 7 8 9 class Ram { char mem[100 * 1024]; // 100KB 메모리. 한 번지는 한 바이트이므로 char 타입 사용 int size; public: Ram(); // mem 배열을 0으로 초기화하고 size를 100*1024로 초기화 ~Ram(); // “메모리 제거됨” 문자열 출력 char read(int address); // address 주소의 메모리 바이트 리턴 void write(int address, char value); // address 주소에 한 바이트로 value 저장 }; 다음 main() 함수는 100 번지에 20을 저장하고, 101 번지에 30을 저장한 후, 100 번지와 101 번지의 값을 읽고 더하여 102 번지에 저장하는 코드이다. ...

March 3, 2020 · 3 min · Sobamemil

명품 C++ programming 실습 문제 3장 11번

문제 : 다음 코드에서 Box 클래스의 선언부와 구현부를 Box.h, Box.cpp 파일로 분리하고 main() 함수 부분을 main.cpp로 분리하여 전체 프로그램을 완성하라. 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 #include using namespace std; class Box { int width, height; char fill; public: Box(int w, int h) { setSize(w, h); fill = ‘*’;} void setFill(char f) {fill = f;} void setSize(int w, int h) { width = w; height = h;} void draw(); }; void Box::draw() { for (int n = 0; n < height; n++) { for (int m = 0; m < width; m++) cout « fill; cout « endl; } } int main() { Box b(10, 2); b.draw(); // 박스를 그린다. cout « endl; b.setSize(7, 4); // 박스의 크기를 변경한다. b.setFill(’^’); // 박스의 내부를 채울 문자를 ‘^‘로 변경한다. b.draw(); // 박스를 그린다. } 목적 및 힌트 : ...

March 3, 2020 · 2 min · Sobamemil

명품 C++ programming 실습 문제 3장 10번

문제 : 다수의 클래스를 선언하고 활용하는 간단한 문제이다. 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 수행하는 4개의 클래스를 Add, Sub, Mul, Div를 만들고자 한다. 이들은 모두 공통으로 다음 멤버를 가진다. ● int 타입 변수 a, b : 피연산자 ● void setValue(int x, int y) 함수 : 매개 변수 x, y를 멤버 a, b에 복사 ● int calculate() 함수 : 연산을 실행하고 결과 리턴 main() 함수는 Add, Sub, Mul, Div 클래스 타입의 객체 a, s, m, d를 생성하고, 아래와 같이 키보드로부터 두 개의 정수와 연산자를 입력받고, a, s, m, d 객체 중에서 연산을 처리할 객체의 setValue() 함수를 호출한 후, calculate()를 호출하여 결과를 화면에 출력한다. ...

March 3, 2020 · 5 min · Sobamemil

명품 C++ programming 실습 문제 3장 9번

문제 : Oval 클래스는 주어진 사각형에 내접하는 타원을 추상화한 클래스이다. Oval 클래스의 멤버는 모두 다음과 같다. Oval 클래스를 선언부와 구현부로 나누어 작성하라. ● 정수값의 사각형 너비와 높이를 가지는 width, height 변수 멤버 ● 너비와 높이 값을 매개 변수로 받는 생성자 ● 너비와 높이를 1로 초기화하는 매개 변수 없는 생성자 ● width와 height를 출력하는 소멸자 ● 타원이 너비를 리턴하는 getWidth() 함수 멤버 ● 타원의 높이를 리턴하는 getHeight() 함수 멤버 ● 타원의 너비와 높이를 변경하는 set(int w, int h) 함수 멤버 ...

March 3, 2020 · 2 min · Sobamemil