관리 메뉴

Value Creator의 IT(프로그래밍 / 전자제품)

#5 [C++] 예제 : 랜덤 정수 10개 생성 클래스 만들기 본문

1. 프로그래밍/5) C++

#5 [C++] 예제 : 랜덤 정수 10개 생성 클래스 만들기

valuecreatort 2019. 7. 26. 21:00
반응형

앞서 클래스와 객체에 대해 공부했으니 문제를 풀어보자.

 


클래스로 값의 범위를 설정해 원하는 랜덤 정수 10개를 생성시키는 Random 클래스를 만들어보자.

메인문은 아래와 같다.

 

main.cpp

#include"Random.h"

 

int main()

{

    Random test1, test2(10, 30);

    test1.show();

    test2.show();

} 

 

 

Random.h

#ifndef RANDOM_H

#define RANDOM_H

#include<iostream>

#include<time.h>

using namespace std;

#define MAX 10

 

class Random

{

    int left;

    int right;

    int random[MAX];

public :

    Random();

    Random(int l, int r);

    void show();

};

 

#endif 

 

 

 

Random.cpp

#include "Random.h"

 

Random::Random()

{

    srand((unsigned int)time(NULL));

    left = 0;

    right = 101;

    for (int i = 0; i < MAX; i++)

    {

        random[i] = rand() % right;

    }

}

 

Random::Random(int l, int r)

{

    srand((unsigned int)time(NULL));

    left = l;

    right = r+1;

    for (int i = 0; i < MAX; i++)

    {

        random[i] = rand() % (right-left) + left;

    }

}

 

void Random::show()

{

    cout << left << "부터" << right-1 << "까지의 랜덤범위 함수입니다." << endl;

    for (int i = 0; i < MAX; i++)

    {

        cout << random[i] << endl;

    }

}

 

 

 

참고

랜덤의 값이 앞서 했듯이 컴파일시 계속 바뀌어야 하므로 time.h를 추가로 include하고 난수 시드 설정인 srand((unsigned int)time(NULL))을 선언하고 사용해야한다.

 

랜덤값의 범위는 'rand()%범위숫자'로 설정이 가능하며 특수 범위는 예를 들어, rand()%100+10이라고 한다면 10부터 (99+10)까지의 숫자라는 의미가 된다.

반응형
Comments