명품 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