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

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.08.03 / 2019.12.24
  • 5페이지 / fileicon zip (압축파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 1,500원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[프로그래밍] [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; // 분석 중 당첨 횟수를 기록할 변수 초기화
}
자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • [졸업][컴퓨터공학] Microsoft Visual Basic 6.0과 Visual Basic .NET의 호환성 분석
  • 및 기타 시스템 서비스를 관리한다. 즉, 프로그램을 메모리에 적재하고 실행시키며) IL(중간 코드; Intermediate Language) : CLR이 코드를 메모리에 적재하고 실행시킬 때 해석되는 언어의 형태이다. 관리되는 코드를 컴파일 할 때 컴파일러는 IL을 생성시키고, CLR은 코드가 실제로 실행되기 전에 컴파일의 마지막 단계를 다룬다. IL은 원시 기계어로 매우 빠르게 컴파일 될 수 있고, 동시에 .NET의 기능을 지원해줄 수 있도록 디자인되었다.실행 시간에 CLR의 JIT(Jus

  • 면접 IT 계열 기술 면접 대비 질문 모음 면접 기출문제 예상답변
  • 프로그램이며, 1970년대 초 벨 연구소(AT&T Bell Laboratories)의 데니스리치(Dennnis ritchie) 에 의해 개발 되었다. C언어는 전세계적으로 많이 쓰이고 있는 언어이자 가장 기초적인 입문 언어이다. 그러나 몇가지 한계에 부딪히게 되었고 고도로 복잡한 프로그램을 관리하기 위해 C++를 탄생 시키게 되었다.C++는 C언어의 확장판으로 만들어진 객체지향형 프로그래밍 언어이다. 복잡한 대규모 응용 프로그램을 만드는데 최적의 객체지향 프로그래밍 언어로 간주된

  • 정보처리기사 필기 요약자료
  • 및 인터페이스 구현.pdf2과목소프트웨어개발2020 NEW정보처리기사 필기1장 데이터 입출력 및 인터페이스 구현1장 데이터 입출력 및 인터페이스 구현 2과목 소프트웨어 개발자료구조자료구조는프로그램에서 사용하기위한 자료를기억장치의 공간내에저장하는 방법과저장된 그룹내에존재하는자료간의 관계, 처리 방법등을연구 분석하는것2 자료구조는 자료의표현과 그것과관련된 연산 자료구조는 일련의자료들을 조직하고구조화하는 것

  • [정보통신] [공학]프로그래밍 언어론(정익사 - 원유헌) 수정본
  • 생성과 라이브러리 재사용 및 확장에 도움이 된다. 실행시간까지 함수의 바인딩을 지연시키는 것은 다중정의한 서브클래스의 가상함수를 실행시간에 택함으로서 C++ 언어의 기능을 강력하게 한다. 그러나 상대적으로 실행시간이 느리기 때문에 프로그램의 구조와 환경에 맞도록 사용되어야 한다. 이런한 단점에도 불구하고 지연 바인딩의 함수호출은 실행시간의 함수 다형화와 그 밖의 병렬처리를 시뮬레이션에 유용하게 사용될 수 있다.3. 다음 문

  • [게임기획과 제작의 이해] 게임기획과 제작의 이해
  • 분석해 보는 것이 필요하다. 게임에서의 사운드 구현은 기술적 측면이 더욱 중요하다. 왜냐하면 MMORPG와 같은 거대한 규모의 게임은 수많은 상황에서의 경우의 수를 실시간으로 변화 있게 표현해 내는 것이 필요하기 때문이다. 이처럼 사운드가 게임에서 차지하는 중요성이 큰데도 불구하고, 우리나라에는 게임 그래픽 디자인이나 게임 프로그래머를 교육하는 기관은 많지만 게임 사운드의 제작과 구현을 전문적으로 다루는 교육 프로그램이나 전문가

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.