문제 :

문제 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개의 멤버 함수를 가지도..

sobamemil.tistory.com](https://sobamemil.tistory.com/47)

목적 및 힌트 :

클래스 작성에서 매개 변수를 가진 생성자의 활용

실행 결과 :

코드 :

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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 #include #include #include using namespace std; class SelectableRandom{ int num; public: SelectableRandom(int _num); // 매개변수로 짝수 혹은 홀수를 받는다 int next(); int nextInRange(int a, int b); }; SelectableRandom::SelectableRandom(int _num){ num = _num; srand((unsigned)time(0)); } int SelectableRandom::next() { int ran = rand(); if(num%2 == 0){ // 짝수 return if(ran%2 == 0) return ran; else return –ran; } else { if(ran%2 == 0) // 홀수 return return ++ran; else return ran; } } int SelectableRandom::nextInRange(int a, int b){ int ran = rand()%(b-a+1) + a; if(num%2 == 0) { // 짝수 return if(ran%2 == 0) return ran; else return ++ran; } else { // 홀수 return if(ran%2 == 0) return ++ran; else return ran; } } int main() { SelectableRandom r1(0); // 짝수 랜덤 정수 발생 cout « “– 0에서 " « RAND_MAX « “까지의 짝수 랜덤 정수 10 개–” « endl; for(int i=0; i<10; i++) { int n = r1.next(); cout « n « ’ ‘; } SelectableRandom r2(1); // 홀수 랜덤 정수 발생 cout « endl « endl « “– 2에서 " « “9 까지의 랜덤 홀수  정수 10 개 –” « endl; for(int i=0; i<10; i++) { int n = r2.nextInRange(2,9); cout « n « ’ ‘; } cout « endl; }

설명 :

SelectableRandom 클래스에서 생성자를 이용하여 짝수 홀수를 선택할 수 있게 하였습니다.

생성자 호출 시 전달해준 매개변수가 짝수이면 짝수 출력, 홀수이면 홀수를 출력하게 작성 하였습니다.

이를 이용해 매개변수를 사용자에게 직접 입력받아 생성자 호출 시 인자로 넘겨주어 사용자가 직접 짝수, 홀수를 선택할 수 있게 작성할 수도 있습니다.

공유하기

게시글 관리

코딩은 내일부터 ;

저작자표시 (새창열림)

💻 개발 & CS > C++ 프로그래밍’ 카테고리의 다른 글

명품 C++ programming 실습 문제 3장 9번  (1) 2020.03.03
명품 C++ programming 실습 문제 3장 8번  (1) 2020.03.03
명품 C++ programming 실습 문제 3장 6번  (2) 2020.03.03
명품 C++ programming 실습 문제 3장 5번  (4) 2020.03.03
명품 C++ programming 실습 문제 3장 4번  (8) 2020.03.03