명품 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(); // 박스를 그린다. } 목적 및 힌트 : ...

2020년 3월 3일 · 2 분 · 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()를 호출하여 결과를 화면에 출력한다. ...

2020년 3월 3일 · 4 분 · Sobamemil

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

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

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : int 타입의 정수를 객체화한 Integer 클래스를 작성하라. Integer의 모든 멤버 함수를 자동 인라인으로 작성하라. Integer 클래스를 활용하는 코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include using namespace std; int main() { Integer n(30); cout << n.get() << ' '; // 30 출력 n.set(50); cout << n.get() << ' '; // 50 출력 Integer m("300"); cout << m.get() << ' '; // 300 출력 cout << m.isEven(); // true(정수로 1) 출력 } 목적 및 힌트 : ...

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : 문제 5번을 참고하여 생성자를 이용하여 짝수 홀수를 선택할 수 있도록 SelectableRandom 클래스를 작성하고 짝수 10개, 홀수 10개를 랜덤하게 발생시키는 프로그램을 작성하라. 2020/03/03 - [C++/명품 C++ programming] - 명품 C++ programming 실습 문제 3장 5번 [명품 C++ programming 실습 문제 3장 5번 문제 : 랜덤 수를 발생시키는 Random 클래스를 만들자. Random 클래스를 이용하여 랜덤 한 정수를 10개 출력하는 사례는 다음과 같다. Random 클래스가 생성자, next(), nextInRange()의 3개의 멤버 함수를 가지도.. ...

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : 문제 5번을 참고하여 짝수 정수만 랜덤하게 발생시키는 EvenRandom 클래스를 작성하고 EvenRandom 클래스를 이용하여 10개의 짝수를 랜덤하게 출력하는 프로그램을 완성하라. 0도 짝수로 처리한다. 2020/03/03 - [C++/명품 C++ programming] - 명품 C++ programming 실습 문제 3장 5번 [명품 C++ programming 실습 문제 3장 5번 문제 : 랜덤 수를 발생시키는 Random 클래스를 만들자. Random 클래스를 이용하여 랜덤 한 정수를 10개 출력하는 사례는 다음과 같다. Random 클래스가 생성자, next(), nextInRange()의 3개의 멤버 함수를 가지도.. ...

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : 랜덤 수를 발생시키는 Random 클래스를 만들자. Random 클래스를 이용하여 랜덤 한 정수를 10개 출력하는 사례는 다음과 같다. Random 클래스가 생성자, next(), nextInRange()의 3개의 멤버 함수를 가지도록 작성하고 main() 함수와 합쳐 하나의 cpp 파일에 구현하라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int main() { Random r; cout << "-- 0에서 " << RAND_MAX << "까지의 랜덤 정수 10 개--" << endl; for(int i=0; i<10; i++) { int n = r.next(); // 0에서 RAND_MAX(32767) 사이의 랜덤한 정수 cout << n << ' '; } cout << endl << endl << "-- 2에서 " << "4 까지의 랜덤 정수 10 개 --" << endl; for(int i=0; i<10; i++) { int n = r.nextInRange(2,4); // 2에서 4 사이의 랜덤한 정수 cout << n << ' '; } cout << endl; } 목적 및 힌트 : ...

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : CoffeeMachine 클래스를 만들어보자. main() 함수와 실행 결과가 다음과 같도록 CoffeeMachine 클래스를 작성하라. 에스프레소 한 잔에는 커피와 물이 각각 1씩 소비되고, 아메리카노의 경우 커피는 1, 물은 2가 소비되고, 설탕 커피는 커피 1, 물 2, 설탕 1이 소비된다. CoffeeMachine 클래스에는 어떤 멤버 변수와 어떤 멤버 함수가 필요한지 잘 판단하여 작성하라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include using namespace std; int main() { CoffeeMachine java(5, 10, 3); // 커피량:5, 물량:10, 설탕:6 으로 초기화 java.drinkEspresso(); // 커피 1, 물 1 소비 java.show(); // 현재 커피 머신의 상태 출력 java.drinkAmericano(); // 커피 1, 물 2 소비 java.show(); // 현재 커피 머신의 상태 출력 java.drinkSugarCoffee(); // 커피 1, 물 2, 설탕 1 소비 java.show(); // 현재 커피 머신의 상태 출력 java.fill(); // 커피 10, 물 10, 설탕 10 으로 채우기 java.show(); // 현재 커피 머신의 상태 출력 실행 결과 : ...

2020년 3월 3일 · 2 분 · Sobamemil

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

문제 : 은행에서 사용하는 프로그램을 작성하기 위해, 은행 계좌 하나를 표현하는 클래스 Account가 필요하다. 계좌 정보는 계좌의 주인, 계좌 번호, 잔액을 나타내는 3 멤버 변수로 이루어진다. main() 함수의 실행과 결과가 다음과 같도록 Account 클래스를 작성하라. 1 2 3 4 5 6 7 8 9 10 #include using namespace std; int main() { Account a("Kitae", 1, 5000); // id 1번, 잔액 5000원, 이름이 Kitae인 계좌 성 a.deposit(50000); // 50000원 저금 cout << a.getOwner() << "의 잔액은 " << a.inquiry() << endl; int money = a.withdraw(20000); // 20000원 출금. withdraw()는 출금한 실제 금액 리턴 cout << a.getOwner() << "의 잔액은 " << a.inquiry() << endl; } 실행 결과 : ...

2020년 3월 2일 · 2 분 · Sobamemil

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

문제 : 날짜를 다루는 Date 클래스를 작성하고자 한다. Date를 이용하는 main()과 실행 결과는 다음과 같다. 클래스 Date를 작성하여 아래 프로그램에 추가하라. 1 2 3 4 5 6 7 8 9 #include using namespace std; int main() { Date virth(2014, 3, 20); Date independenceDay("1945/8/15"); independenceDay.show(); cout << birth.getYear() << ',' << birth.getMonth() << ',' << birth.getDay() << endl; } 실행 결과 : 목적 및 힌트 : 2개의 생성자와 여러 멤버를 가진 클래스 만들기 ...

2020년 3월 2일 · 2 분 · Sobamemil