C++
-
명품 C++ 5장 1번C++ 2018. 10. 31. 17:15
1. 두 개의 Circle 객체를 교환하는 swap() 함수를 '참조에 의한 호출'이 되도록 작성하고 호출하는 프로그램을 작성하라. 소스코드 #include using namespace std;class Circle { int radius;public: Circle() { radius = 1; } Circle(int r) { radius = r; } double getArea() { return 3.14 * radius*radius; } int getRadius() { return radius; } void setRadius(int radius) { this->radius = radius; }};void swap(Circle &a, Circle &b) { Circle tmp; tmp = a; a = b;..
-
명품 C++ 4장 Open ChallengeC++ 2018. 10. 30. 02:53
n명이 하는 한글 끝말잇기 게임을 작성해보자. 아래의 결과와 같이 선수의 수를 입력받고, 선수 각 사람의 이름을 입력받아 게임을 시작한다. 소스코드 #include using namespace std;#include class Player { string name;public: void setName(string name) { this->name = name; } string getName() { return name; }};class WordGame { Player *p; int num;public: WordGame(int num); ~WordGame() { delete[] p; } void game();};WordGame::WordGame(int num) { this->num = num; p = ne..
-
명품 C++ 4장 14번C++ 2018. 10. 30. 02:32
14. 갬블링 게임을 만들어보자. 두 사람이 게임을 진행하며, 선수의 이름을 초기에 입력 받는다. 선수가 번갈아 자신의 차례에서 키를 치면 랜덤한 3개의 수가 생성되고 모두 동일한 수가 나오면 게임에서 이기게 된다. 숫자의 범위가 너무 크면 3개의 숫자가 일치할 가능성이 낮아 숫자의 범위를 0~2로 제한한다. 랜덤 정수 생성은 문제 3번의 힌트를 참고하라. 선수는 Player 클래스로 작성하고, 2명의 선수는 배열로 구성하라. 그리고 게임은 GamblingGame 클래스로 작성하라. 소스코드 #include using namespace std;#include #include #include class Player { string name;public: void setName(string name) { t..
-
명품 C++ 4장 13번C++ 2018. 10. 30. 02:02
13. 영문자로 구성된 텍스트에 대해 각 알파벳에 해당하는 문자가 몇 개이지 출력하는 히스토그램 클래스 Histogram을 만들어보자. 대문자는 모두 소문자로 변환하여 처리한다.Histogram 클래스를 활용하는 사례와 실행 결과는 다음과 같다. 소스코드 #include using namespace std;#include class Histogram { string text;public: Histogram(string text); void put(string text); void putc(char c); void print();};Histogram::Histogram(string text) { this->text = text; cout
-
명품 C++ 4장 12번C++ 2018. 10. 30. 01:22
12. 다음은 이름과 반지름을 속성으로 가진 Circle 클래스와 이들을 배열로 관리하는 CircleManager 클래스이다. class Circle { int radius; // 원의 반지름 값 string name; // 원의 이름public: void setCircle(string name, int radius); //이름과 반지름 설정 double getArea(); string getName();};class CircleManger { Circle *p; int size;public: CircleManger(int size); //size 크기의 배열을 동적 생성. 사용자로부터 입력 완료 ~CircleManger(); void searchByName(); // 사용자로부터 원의 이름을 입력받아 ..
-
명품 C++ 4장 11번C++ 2018. 10. 30. 01:16
11. 다음은 커피자판기로 작동하는 프로그램을 만들기 위해 필요한 두 클래스이다. class CoffeeVendingMachine { // 커피자판기를 표현하는 클래스 Container tong[3]; // tong[0]는 커피, tong[1]은 물, tong[2]는 설탕통을 나타냄 void fill(); // 3개의 통을 모두 10으로 채움 void selectEspresso(); // 에스프레소를 선택한 경우, 커피 1, 물 1 소모 void selectAmericano(); // 아메리카노를 선택한 경우, 커피 1, 물 2 소모 void selectsugarCoffee(); // 설탕커피를 선택한 경우, 커피 1, 물 2 소모, 설탕 1 소모 void show(); // 현재 커피, 물 설탕의 잔량..
-
명품 C++ 4장 10번C++ 2018. 10. 30. 01:05
10. 다음에서 Person은 사람을. Family는 가족을 추상화한 클래스로서 완성되지 않은 클래스이다. class Person { string name;public: Person(string name) { this->name = name; } string getName() { return name; }};class Family { Person *p; // Person 배열 포인터 int size; // Person 배열의 크기. 가족 구성원 수public: Family(string name, int size); // size 개수만큼 Person 배열 동적 생성 void show(); // 모든 가족 구성원 출력 ~Family();}; 다음 main()이 작동하도록 Person과 Family 클래스에..
-
명품 C++ 4장 9번C++ 2018. 10. 30. 00:33
9. 다음과 같은 Person 클래스가 있다. Person 클래스와 main() 함수를 작성하여, 3개의 Person 객체를 가지는 배열을 선언하고, 다음과 같이 키보드에서 이름과 전화번호를 입력받아 출력하고 검색하는 프로그램을 완성하라. 소스코드 #include #include using namespace std;class Person { string name; string tel;public: Person(); string getName() { return name; } string getTel() { return tel; } void set(string name, string tel);};Person::Person() { name = " "; tel = "000-0000-0000";}void Per..