[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(); // 파일로 결과를 출력하여 주는 함수
};
컴파일 실행환경
c++압축파일 내 파일목록
Lotto.dsw
Lotto.ncb
lottodata.db
Lotto.plg
Lotto.dsp
REPORT.TXT
lotto.cpp
Untitled-1 copy.jpg
Lotto.opt
lotto.hwp
Debug/lottodata.db
Debug/vc60.idb
Debug/vc60.pdb
Debug/Lotto.exe
Debug/Lotto.pdb
Debug/REPORT.TXT
Debug/Lotto.pch
Debug/lotto.obj
Debug/Lotto.ilk
Lotto.ncb
lottodata.db
Lotto.plg
Lotto.dsp
REPORT.TXT
lotto.cpp
Untitled-1 copy.jpg
Lotto.opt
lotto.hwp
Debug/lottodata.db
Debug/vc60.idb
Debug/vc60.pdb
Debug/Lotto.exe
Debug/Lotto.pdb
Debug/REPORT.TXT
Debug/Lotto.pch
Debug/lotto.obj
Debug/Lotto.ilk