purposeforblogging의 등록된 링크

키자드에 등록된 총 211개의 포스트를 확인하실 수 있습니다.

Naver Blog

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

문제 문제 : 문제 7을 푸는 다른 방법을 소개한다. bigger() 함수의 다음 라인에서 > 연산자 때문에 1if(a > b) return a; T에 Circle과 같은 클래스 타입이 대입되면, 구체화가 실패하여 컴파일 오류가 발생한다. 이 문제를 해결하기 위해 다음과 같은 추상 클래스 Comparable을 제안한다. 123456class Comparable {public: virtual bool operator > (Comparable& op2) = 0; // 순수 가상 함수 virtual bool operator < (Comparable& op2) = 0; // 순수 가상 함수 virtual bool operator == (Comparable& op2) = 0; // 순수 가상 함수}; Circle 클래스가 Comparable을 상속받아 순수 가상 함수를 모두 구현하면, 앞의 b.......

Naver Blog

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

문제 다음 그림과 같은 상속 구조를 갖는 클래스를 설계한다. 모든 프린터는 모델명(model), 제조사(manufacturer), 인쇄 매수(printedCount), 인쇄 종이 잔량(availableCount)을 나타내는 정보를 가진다. print(int pages) 함수와 show() 함수는 가상 함수로 구현하라. print(int pages)는 pages 만큼 프린트하는 함수이고, show() 함수는 현재 프린트의 모델, 제조사, 인쇄 매수, 인쇄 종이 잔량 등을 출력하는 함수이다. 잉크젯 프린터는 잉크 잔량(availableInk) 정보를 추가적으로 가지며, 레이저 프린터는 토너 잔량(availableToner) 정보를 추가적으로 가진다. 이들의 print(int pages) 멤버 함수는 프린터 타입에 맞게 구현하라. 각 클래.......

Naver Blog

명품 C++ programming 9장 실습문제 10번(어렵다)

문제 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. 그래픽 편집기의 기능은 "삽입", "삭제", "모두보기", "종료" 의 4가지이고, 실행 과정은 다음과 같다. 목적 및 힌트 : 추상 클래스, 상속 종합 응용 Shape과 이를 상속받은 Circle, Line,Rect 클래스는 [그림9-13]을 이용하고 필요한 클래스와 main() 함수를 작성하라. 전체 프로그램은 대략 아래와 같이 구성된다. 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511.......

Naver Blog

명품 C++ programming 9장 Open Challenge

문제 게임에는 Human, Monster, Food의 세 객체가 등장하며, 이들은 10x20 격자판에서 각각 정해진 규칙에 의해 움직인다. Human 객체는 사용자의 키에 의해 왼쪽(a 키), 아래(s 키), 위(d 키), 오른쪽(f 키)으로 한 칸씩 움직이고, Monster는 한 번에 2칸씩, 왼쪽, 아래, 위, 오른쪽 방향으로 랜덤하게 움직인다. Food는 5번 중에 3번은 제자리에 있고, 나머지 2번은 4가지 방향 중 랜덤하게 한 칸씩 움직인다. 게임은 Human이 Monster를 피해 Food를 먹으면(Food의 위치로 이동) 성공으로 끝나고, Monster가 Food를 먹거나 Human이 Monster에게 잡히면 실패로 끝난다. 다음은 각 객체의 이동을 정의하는 move()와 각 객체의 모양을 정의하는 ge.......

Naver Blog

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

문제 배열을 받아 가장 큰 값을 리턴하는 제네릭 함수 biggest()를 작성하라. 또한 main() 함수를 작성하여 biggest()를 호출하는 몇 가지 사례를 보여라. biggest()를 호출하는 코드 사례는 다음과 같다. 12int x[] = {1, 10, 100, 5, 4};cout << biggest(x, 5) << endl; // 5는 배열 x의 크기. 100이 출력된다. 내가 짠 코드 #include<iostream>using namespace std;template<class T>T biggest(T *a, int b) { T max = 0; for (int i = 0; i < b; i++) { if (max < a[i]) max = a[i]; } return max;}int main() { int x[] = { 1, 10, 100, 5, 4 }; cout << biggest(x, 5) << endl; // 5는 배열 x의.......

Naver Blog

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

문제 두 개의 배열을 비교하여 같으면 true를, 아니면 false를 리턴하는 제네릭 함수 equalArrays()를 작성하라. 또한 main() 함수를 작성하여 equalArrays()를 호출하는 몇 가지 사례를 보여라. equalArrays()를 호출하는 코드 사례는 다음과 같다. 123456 int x[] = {1, 10, 100, 5, 4}; int y[] = {1, 10, 100, 5, 4}; if(equalArray(x, y, 5)) cout << "같다"; // 배열 x, y가 같으므로 "같다" 출력 else cout << "다르다"; 내가 짠 코드 #include<iostream>using namespace std;template<class T1, class T2>bool equalArray(T1 x[], T2 y[], int a){ for (int i = 0; i < a; i++) { if (x[i] != y[i]) return f.......

Naver Blog

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

문제 배열의 원소를 반대 순서로 뒤집는 reverseArray() 함수를 템플릿으로 작성하라. reverseArray()의 첫 번째 매개 변수는 배열에 대한 포인터이며 두 번째 매개 변수는 배열의 개수이다. reverseArray()의 호출 사례는 다음과 같다. 1234 int x[] = { 1, 10, 100, 5, 4}; reverseArray(x, 5); for(int i=0; i<5; i++) cout << x[i] << ' '; // 4 5 100 10 1이 출력된다. 내가 짠 코드 #include<iostream>using namespace std;template<class T>void reverseArray(T a[], int b) { T* temp = new T[b]; for (int i = 0; i < b; i++) { temp[i] = a[b-1-i]; } for (int i = 0; i < b; i++) { a[i] = temp[i];.......

Naver Blog

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

문제 배열에서 원소를 검색하는 search() 함수를 템플릿으로 작성하라. search()의 첫 번째 매개 변수는 검색하고자 하는 원소 값이고, 두 번째 매개 변수는 배열이며, 세 번째 매개 변수는 배열의 개수이다. search() 함수가 검색에 성공하면 true를, 아니면 false를 리턴한다. search()의 호출 사례는 다음과 같다. 123 int x[] = {1, 10, 100, 5, 4}; if(search(100, x, 5)) cout << "100이 배열 x에 포함되어 있다"; // 이 cout 실행 else cout << "100이 배열 x에 포함되어 있지 않다"; 내가 짠 코드 #include<iostream>using namespace std;template<class T>bool search(int value, T arr[], int size) { for (in.......

Naver Blog

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

문제 다음 AbstractStack은 정수 스택 클래스로서 추상 클래스이다. 1234567class AbstrackStack {public: virtual bool push(int n) = 0; // 스택에 n을 푸시한다. 스택이 full이면 false 리턴 virtual bool pop(int& n) = 0; // 스택에서 팝한 정수를 n에 저장하고 스택이 empty이면 false 리턴 virtual int size() = 0; // 현재 스택에 저장된 정수의 개수 리턴};Colored by Color Scripter 이를 상속받아 정수를 푸시, 팝하는 IntStack 클래스를 만들고 사용 사례를 보여라. 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<iostream>using namespace std.......

Naver Blog

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

문제 사각형에 내접하는 도형을 표한하기 위한 Shape 클래스가 있다. 123456789class Shape {protected: string name; // 도형의 이름 int width, height; // 도형이 내접하는 사각형의 너비와 높이 public: Shape(string n="", int w=0, int h=0) { name = n; width = w; height = h; } virtual double getArea() { return 0; } // dummy 값 리턴 string getName() { return name; } // 이름 리턴 };Colored by Color Scripter Shape 클래스를 상속받아 타원을 표현하는 Oval, 사각형을 표현하는 Rect, 삼각형을 표현하는 Triangular 클래스를 작성하라. main()을 작성하고 실행하면 다음과 같다. 12345678910int main() { Shape *p[3]; p[0] = .......

Naver Blog

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

문제 사각형에 내접하는 도형을 표현하기 위한 Shape 클래스가 있다. 123456789class Shape {protected: string name; // 도형의 이름 int width, height; // 도형이 내접하는 사각형의 너비와 높이 public: Shape(string n="", int w=0, int h=0) { name = n; width = w; height = h; } virtual double getArea() { return 0; } // dummy 값 리턴 string getName() { return name; } // 이름 리턴 };Colored by Color Scripter 문제 7에 주어진 Shape 클래스를 추상 클래스로 만들고 문제 7을 다시 작성하라. 내가 짠 코드 #include<iostream>using namespace std;class Shape {protected: string name; // 도형의 이름 int width, height.......

1 2 3