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

문제 : 다음 main()에서 Color 클래스는 3요소(빨강, 초록, 파랑)로 하나의 색을 나타내는 클래스이다(4장 실습 문제 1번 참고). 연산자로 색을 더하고, == 연산자로 색을 비교하고자 한다. 실행 결과를 참고하여 Color 클래스와 연산자, 그리고 프로그램을 완성하라. 1 2 3 4 5 6 7 8 9 10 11 int main() { Color red(255, 0, 0), blue(0, 0, 255), c; c = red + blue; c.show(); // 색 값 출력 Color fuchsia(255,0,255); if(c == fuchsia) cout << "보라색 맞음"; else cout << "보라색 아님"; } (1) +와 == 연산자를 Color 클래스의 멤버 함수로 구현하라. ...

2020년 3월 6일 · 3 분 · Sobamemil

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

문제 : 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Book{ string title; int price, pages; public: Book(string title="", int price=0, int pages=0){ this->title = title; this->price = price; this->pages = pages; } void show() { cout << title << " " << price << "원 " << pages << " 페이지" << endl; } string getTitle() { return title; } }; 다음 연산을 통해 책의 제목을 사전 순으로 비교하고자 한다. ...

2020년 3월 6일 · 2 분 · Sobamemil

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

문제 : 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Book{ string title; int price, pages; public: Book(string title="", int price=0, int pages=0){ this->title = title; this->price = price; this->pages = pages; } void show() { cout << title << " " << price << "원 " << pages << " 페이지" << endl; } string getTitle() { return title; } }; 다음 연산을 통해 공짜 책인지를 판별하도록 ! 연산자를 작성하라. ...

2020년 3월 6일 · 2 분 · Sobamemil

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

문제 : 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Book{ string title; int price, pages; public: Book(string title="", int price=0, int pages=0){ this->title = title; this->price = price; this->pages = pages; } void show() { cout << title << " " << price << "원 " << pages << " 페이지" << endl; } string getTitle() { return title; } }; Book 객체를 활용하는 사례이다. ...

2020년 3월 6일 · 3 분 · Sobamemil

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

문제 : 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Book{ string title; int price, pages; public: Book(string title="", int price=0, int pages=0){ this->title = title; this->price = price; this->pages = pages; } void show() { cout << title << " " << price << "원 " << pages << " 페이지" << endl; } string getTitle() { return title; } }; Book 객체에 대해 다음 연산을 하고자 한다. ...

2020년 3월 6일 · 3 분 · Sobamemil

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

문제 : 게시판 프로그램을 작성해보자. 멀티태스킹의 경우 여러 사용자들이 게시판에 글을 올리기 때문에 게시판 객체는 전체 하나만 있어야 한다. 그러므로 게시판 객체의 멤버들은 static으로 작성한다. 다음은 게시판 기능을 하는 Board 클래스를 활용하는 main() 코드이다. 실행 결과를 참고하여 Board 클래스를 만들고 전체 프로그램을 완성하라. static 연습이 목적이기 때문에 게시판 기능을 글을 올리는 기능과 게시글을 모두 출력하는 기능으로 제한하고 main()도 단순화하였다. 1 2 3 4 5 6 7 8 int main() { // Board myBoard; // 객체 생성은 컴파일 오류입니다. Board::add("중간고사는 감독 없는 자율 시험입니다."); Board::add("코딩 라운지 많이 이용해 주세요."); Board::print(); Board::add("진소린 학생이 경진대회 입상하였습니다. 축하해주세요"); Board::print(); } 실행 결과 : ...

2020년 3월 6일 · 2 분 · Sobamemil

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

문제 : 디버깅에 필요한 정보를 저장하는 Trace 클래스를 만들어보자. 저자의 경험에 의하면, 멀티태스크 프로그램을 개발하거나 특별한 환경에서 작업할 때, Visual Studio의 디버거와 같은 소스 레벨 디버거를 사용하지 못하는 경우가 더러 있었고, 이때 실행 도중 정보를 저장하기 위해 Trace 클래스를 만들어 사용하였다. Trace 클래스를 활용하는 다음 프로그램과 결과를 참고하여 Trace 클래스를 작성하고 전체 프로그램을 완성하라. 디버깅 정보는 100개로 제한한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void f() { int a, b, c; cout << "두 개의 정수를 입력하세요>>"; cin >> a >> b; Trace::put("f()", "정수를 입력 받았음"); // 디버깅 정보 저장 c = a + b; Trace::put("f()", "합 계산"); // 디버깅 정보 저장 cout << "합은 " << c << endl; } int main() { Trace::put("main()", "프로그램을 시작합니다"); // 디버깅 정보 저장 f(); Trace::put("main()", "종료"); // put()의 첫 번째 매개 변수는 태그이고 // 두 번째 매개 변수는 디버깅 정보이다. Trace::print("f()"); // "f()" 태그를 가진 디버깅 정보를 모두 출력한다. Trace::print(); // 모든 디버깅 정보를 출력한다. } 실행 결과 : ...

2020년 3월 6일 · 3 분 · Sobamemil

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

문제 : 다음과 같은 static 멤버를 가진 Random 클래스를 완성하라(Open Challenge 힌트 참고). 그리고 Random 클래스를 이용하여 다음과 같이 랜덤한 값을 출력하는 main() 함수도 작성하라. main()에서 Random 클래스의 seed() 함수를 활용하라. 실행 결과 : 목적 및 힌트 : static 멤버를 가진 클래스 만들기 및 사용 연습 정수를 랜덤하게 생성하는 코드는 다음을 이용하면 됩니다. 1 2 3 srand((unsigned)time(0)); // 항상 다른 랜덤수를 방생시키기 위한 seed 설정 int n = rand(); // 0에서 RAND_MAX(32767) 사이의 랜덤한 정수가 n에 발생 n = n % 100; // n은 0에서 99 사이의 정수 코드 : ...

2020년 3월 6일 · 2 분 · Sobamemil

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

문제 : 동일한 크기의 배열을 변환하는 다음 2개의 static 멤버 함수를 가진 ArrayUtiliry2 클래스를 만들고, 이 클래스를 이용하여 아래 결과와 같이 출력되도록 프로그램을 완성하라. 1 2 3 4 5 6 // s1과 s2를 연결한 새로운 배열을 동적 생성하고 포인터 리턴 static int* concat(int s1[], int s2[], int size); // s1에서 s2에 있는 숫자를 모두 삭제한 새로운 배열을 동적 생성하여 리턴 // 리턴하는 배열의 크기는 retSize에 전달. retSize가 0인 경우 NULL 리턴 static int* remove(int s1[], int s2[], int size, int& retSize); 실행 결과 : ...

2020년 3월 6일 · 3 분 · Sobamemil

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

문제 : 동일한 크기로 배열을 변환하는 다음 2개의 static 멤버 함수를 가진 ArrayUtility 클래스를 만들어라. 1 2 3 4 static void intToDouble(int source[], double dest[], int size); // int[]을 double[]로 변환 static void doubleToInt(double source[], int dest[], int size); // double[]을 int[]로 변환 ArrayUtility를 활용하는 main()은 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 int main() { int x[] = {1,2,3,4,5}; double y[5]; double z[] = {9.9,8.8,7.7,6.6,5.6}; ArrayUtility::intToDouble(x, y, 5); // x[] -> y[] for(int i=0; i<5; i++) cout << y[i] << ' '; cout << endl; ArrayUtility::doubleToInt(z, x, 5); // z[] -> x[] for(int i=0; i<5; i++) cout << x[i] << ' '; cout << endl; } 실행 결과 : ...

2020년 3월 6일 · 2 분 · Sobamemil