레포트샵

fileicon[프로그래밍] [C++]로또 번호분석 및 조합생성 프로그램

이전

  • icon

다음

  • 최대 100페이지까지 확대보기 서비스를 제공합니다.

> 레포트 > 공학계열 > 자료상세보기 (자료번호:173997)

구매가격
1,500원 할인쿠폰1,350원
등록/수정
2007.08.03 / 2007.08.04
파일형식
fileiconzip(압축파일) [무료뷰어다운]
페이지수
5페이지
자료평가
평가한 분이 없습니다.
등록자
lhil008
  • 다운로드
  • 장바구니 담기

닫기

이전큰이미지 다음큰이미지
  • 트위터
  • 페이스북
신규가입 200원 적립! + 10% 할인쿠폰 3장지급! banner구매자료를 평가하면 현금처럼 3%지급!

소개글

[프로그래밍] [C++]로또 번호분석 및 조합생성 프로그램에 대한 자료입니다.

하고 싶은 말

번호 조합은 다음과 같은 방식으로 생성 합니다.
1. 무작위 조합
2. 최근 당첨번호에 포함되지 않으면서 출현횟수가 높은 7개의 숫자를 이용하여 만든 조합
3. 최근 당첨번호에 포함되지 않으면서 출현횟수가 높은 각 범위별 숫자를 20개 선정하여 그 숫자들을 이용해 만든 조합
4. 최근 당첨번호에 포함되는 것과 상관없이 출현횟수가 높은 숫자들을 이용하여 만든 조합
5. 최근 당첨번호에 포함되는 것과 상관없이 출현횟수가 높은 숫자들을 각 범위별로 선정하여 만든 조합

위 결과들은 REPORT.TXT에 기록됩니다. 그 외에도 각 번호별 출현횟수와 각 범위별 출현횟수 등을 기록하여 줍니다.

목차

class LottoAnalysis{
private:
int lottoDB[210][7]; // 이전 당첨번호들이 입력될 배열
int numRange[5]; // 각 단위별로 숫자 출현 빈도수를 기록할 배열
int HighestSevenNum[7]; // 가장 높은 빈도수를 나타내는 7개의 숫자 저장 배열
int RandCombo[5][6]; // 랜덤으로 생성한 조합들을 저장할 배열
int UsingRangeCombo[5][6]; // 각 범위별 유력 숫자를 이용하여 조합을 생성하여 저장하는 배열
int UsingHighestSevenCombo[5][6]; // 7개의 빈도수 높은 숫자를 이용하여 만든 조합을 저장하는 배열
int UsingHighRateCombo[5][6]; // 최근 당첨결과와 상관없이 빈도수가 높은 숫자를 이용하여 만든 조합을 저장하는 배열
int UsingHighRateRangeCombo[5][6]; // 최근 당첨결과와 상관없이 빈도수가 높은 숫자를 범위별로 숫자를 선택하여 만든 조합을 저장하는 배열
term rangeSorting[MaxNum]; // 빈도수를 기준으로 각 범위별로 숫자를 정렬하여 저장하는 배열
term wholeSorting[MaxNum]; // 빈도수를 기준으로 전체 숫자를 정렬하여 저장하는 배열
int MaxRow; // 현재 회차를 저장할 변수
int combocnt; // 조합 생성 중 이전 당첨 조합과 동일한 조합이 있었는지 확인하는 카운터

bool Check_Sequence(int *temp, int start, int finish); // 연속되는 수가 3개 이하인지 확인한다.
void Sorting_AllDATA(); // 모든 데이터를 정렬하는 함수
void Counting_Frequency(int temp); // 현재 읽어온 번호가 해당하는 범위와 해당 번호의 빈도수를 증가시켜주는 함수
void Set_rangeSorting(); // 각 범위별 번호를 빈도수에 따라 정렬
void Sort_Num(int start, int finish, term *buff); // 빈도수를 기준으로 내림차순 정렬
void Sort_GenNum(int start, int finish, int *buff); // 해당 배열의 숫자를 오름차순 정렬
bool Search_Combination(int *temp); // 이전 회차의 당첨 조합인지 확인하는 함수
bool Search_Num(int key, int row); // 지정된 최근 회차에 존재하는 번호인지 확인하는 함수
bool Check_NumRange(int *temp, int i); // 자리수가 같은 번호가 3개 이하인지 확인한다.
int Get_HighFrequencyNum(int low, int high, int cnt, int *useNum); // 지정된 범위에서 가장 빈도수가 높은 번호를 추출하는 함수
void Create_FileHeader(); // 결과를 출력할 파일의 헤더를 생성하는 함수
void Write_numRange(); // 십자리수를 기준으로 각 범위별 빈도수를 출력하여 주는 함수
void Write_wholeSorting(); // 각 숫자들의 빈도수를 출력하여 주는 함수
void Write_rangeSorting(); // 십자리수를 기준으로 각 범위별 빈도수가 높은 숫자별로 정렬한 결과를 출력하는 함수
void Write_HighestSevenNum(); // 유력한 7개의 숫자를 출력하는 함수
void Write_RandCombo(); // 무작위로 선택된 5개의 조합을 출력하는 함수
void Write_UsingSevenCombo(); // 유력한 7개의 숫자를 이용한 조합을 출력하는 함수
void Write_UsingRateCombo(); // 최근 나온 조합을 무시하고 빈도수가 높은 숫자로 만든 조합을 출력하는 함수
void Write_UsingRateRangeCombo(); // 최근 나온 조합을 무시하고 각 범위별 빈도수가 높은 숫자를 이용해서 만든 조합을 출력하는 함수
void Write_UsingRangeCombo(); // 최근 나온 조합을 제외시키고 빈도수가 높은 숫자들을 이용하여 만든 조합을 출력하는 함수
void Write_LowestCombo(); // 빈도수가 가장 낮은 6개의 숫자를 출력하는 함수

public:
LottoAnalysis(); // 번호분석을 위해 이전 당첨번호를 저장하고 빈도수를 계산하는 역할을 하는 생성자
~LottoAnalysis(); // 파괴자
void Get_HighestSevenNum(); // 유력한 7개의 숫자를 생성하는 함수
void Get_RandCombination(); // 무작위로 5개의 조합을 생성하는 함수
void Get_UsingRangeCombination(); // 최근나온 숫자를 제외하고 각 범위별 유력한 숫자를 선택하여 5개의 조합을 생성하는 함수
void Get_UseHighestSevenCombination(); // 7개의 유력한 숫자를 이용하여 5개의 조합을 생성하는 함수
void Get_HighRateCombination(); // 최근나온 숫자를 포함하여 빈도수가 높은 숫자를 이용하여 5개의 조합을 생성하는 함수
void Get_HighRateRangeCombination(); // 최근나온 숫자를 포함하여 빈도수가 높은 숫자를 각 범위별로 선택하여 5개의 조합을 생성하는 함수
void Make_ReportFile(); // 파일로 결과를 출력하여 주는 함수
};

본문내용

LottoAnalysis::LottoAnalysis()
{ /*번호분석을 위해 이전 당첨번호를 저장하고 빈도수를 계산*/

char buff[2];
char ch; int i = 0;
for(; i < 5; i++) numRange[i] = 0;
for(i = 0; i < MaxNum; i++){
rangeSorting[i].count = wholeSorting[i].count = 0; // 카운터 초기화
rangeSorting[i].num = wholeSorting[i].num = i + 1; // 1~45 입력
}

ifstream fin;
fin.open(file); // 기존 당첨번호 파일 열기
int row, col;
row = col = i = 0;
if(!fin.is_open()) return;

while(!(!fin.get(ch))){ // 기존 당첨번호 저장
if(ch >= 48 && ch <= 57){ // 번호가 입력된 경우만 저장시작
buff[i] = ch;
i++; // 두자리 번호를 받은 경우 변환 후 저장하기 위한 변수
if(i > 1){
int temp;
temp = keytoi(buff); // 정수로 변환
lottoDB[row][col] = temp; // 당첨번호 저장

Counting_Frequency(temp); // 각 번호 빈도수 계산

i = 0; col++;
}

if(col > 6){row++; col = 0;} // 번호 6개 모두 저장했으면 다음 회로 이동
} // end of if
} // end of while

fin.close();
MaxRow = row; // 마지막 회차 저장
numRange[4] = numRange[4] * 5 / 3; // 40번대는 6개이므로 다른 번호대와 빈도수를 맞추기 위한 계산
Sorting_AllDATA(); // 각 회차의 당첨번호 정렬
combocnt = 0; // 분석 중 당첨 횟수를 기록할 변수 초기화
}

태그 로또번호, 로또번호분석, 로또번호생성, 로또조합생성, 로또예상번호

자료평가

아직 평가한 내용이 없습니다.

오늘 본 자료

  • 오늘 본 자료가 없습니다.
  • img

    저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하 며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객 센터에 신고해 주시기 바랍니다.