기금넷 공식사이트 - 복권 조회 - 무릎을 꿇고 c++ 프로그래밍 제목을 구하고 스포츠 복권과 추첨 프로그램을 설계하다.

무릎을 꿇고 c++ 프로그래밍 제목을 구하고 스포츠 복권과 추첨 프로그램을 설계하다.

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

스포츠 복권에 당첨되는 과정을 설계하다.

스포츠 복권 당첨 등급은 특등상 (7 자리 모두 일치) 과 1 등상 (6 자리 연속 일치) 으로 나뉜다.

2 등상 (5 연호 일치), 3 등상 (4 연호 일치), 위로상 (2 연호 일치)

보상 규칙을 수립하고 각 등급의 보너스 액수를 사용자 정의하십시오.

입력의 번거로움을 피하기 위해서, 나는 이미 너의 각급 상금액과 시뮬레이션 매개변수를 상자에 저장했다.

시뮬레이션 결과를 Output.txt 파일에 저장합니다.

Set.set 파일에 대한 쓰기 규칙은 다음과 같습니다.

첫 번째 동작 시뮬레이션 매개변수, 첫 번째 숫자는 시뮬레이션 횟수, 두 번째와 세 번째 숫자는 가장 작은 숫자입니다.

값과 최대값, 네 번째 숫자는 베팅 및 포상 프로세스 (0 은 아니오, 1 은 예) 를 표시할지 여부 (0 은 아니오,1은 예) 이며 각 숫자는 공백으로 구분됩니다.

두 번째 줄은 각 상에 대한 보너스 액수로, 각 숫자는 공백으로 구분된다.

예를 들면 다음과 같습니다.

1000000191

1000000 50000 5000100 5

Set.set 파일은 영어 반각 입력기 편집을 사용하여 ANSI 인코딩으로 저장해야 합니다.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

# include & ltiostream & gt

# include & ltfstream & gt

# include & ltstdlib.h & gt

# include & lttime.h & gt

네임스페이스 STD 사용

학급 추첨

{

개인:

Int simuCount// 시뮬레이션 수

총 int nCodes// 숫자 수

Int minCode// 최소 수량

Int maxCode// 최대 수량

Int countCode// 숫자당 선택 수

Bool bDisplay// 프로세스 표시 여부 ?

쌍상 [6]; //보상 당 보너스 금액

공용:

//각 매개 변수를 초기화합니다.

Void InitLottery ()

{

Int I;;

Fstream 문서 세트;

FileSet.open("Set.set ",IOs _ base:: in);

If(fileSet.is_open ())

{

설명서 세트> & gtsimucount & gt & gtmincode & gt & gtmax code & gt>b 표시;

상 [5] = 0.0; //5 등상을 설정해도 당첨되지 않습니다.

For(I = 0;; 나<5; I++)

{

문서 세트>& gt 상 [I];

Cout & lt& lt 나<& lt' 1 등상: "

}

}

기타

{

Cout & lt& lt”Set.set 가 없습니다. 기본 매개변수로 시뮬레이션됩니다. \ n;

Simucount =1000000;

Mincode =1; Maxcode = 9;

BDisplay = true

보상 [0] =100000;

상 [1] = 50000;

상 [2] = 5000;

상 [3] =100;

상 [4] = 5;

Awards [5] = 0;

}

Fileset.close ();

Cout & lt& lt "시뮬레이션 시간:"

Cout & lt& lt "최소 수량:"

Cout & lt& lt "프로세스 표시:"

Cout & lt& lt "보상당 보너스 금액: \ n;

For(I = 0;; 나<5; I++)

{

Cout & lt& lt 나<& lt' 1 등상: "

}

Srand (시간 (0));

}

//7 개의 고유한 숫자를 무작위로 생성합니다.

Void GenerateCodes(int code[]) 입니다

{

Int n, I, j;

Int m = maxCode-minCode;;

코드 [0] = rand ()% m+mincode;

For (I =1; 나<7; I++)

{

N = rand ()% m+mincode;

For(j = 0;; J< 나; J++)

{

If (n = = 코드 [j])

{

N = rand ()% m+mincode;

J =-1;

}

}

코드 [I] = n;

}

}

//숫자를 비교해서 자신이 얼마나 많은 상을 받았는지 판단하다.

Int CompareCodes(int rightCode[], int myCode[])

{

Int I, j, n;

N = 0;;

For(I = 0;; 나<7; I++)

{

For(j = 0;; J<7; J++)

{

If(myCode[i]==rightCode[j])

{

N++;+;

}

}

}

스위치 (n)

{

시나리오 7:

0 을 반환합니다 //대상 (7 자리 일치)

시나리오 6:

1; //1 등상 (연속 6 자리 일치)

시나리오 5:

Return 2;; //2 등상 (연속 5 자리 일치)

시나리오 4:

반환 3; //3 등상 (연속 4 자리 일치)

사례 3:

사례 2:

반환 4; //위로상 (두 개 이상의 연속 번호가 일치)

기본값:

반환 5; //나머지는 당첨되지 않습니다

}

반환 5;

}

//시뮬레이션 수행

Void 시뮬레이션 ()

{

이중 소품 [6];

Int NP [6];

Intright _ code [7];

Intmy _ code [7];

Int c, l, I;

For(c = 0;; C<6; C++)

{

Np [c] = 0;

}

//시뮬레이션 시작

For(c = 0;; C & ltsimuCountc++)

{

Generate codes (my _ code);

Generate codes (right _ code);

L=CompareCodes (오른쪽 _ 코드, 내 _ 코드);

(l>= 0 & amp& ampl & lt6) 인 경우

{

Np [l]++;

}

If(b 디스플레이)

{

Cout & lt& lt "베팅 번호:";

For(I = 0;; 나<6; I++)

{

Cout & lt & ltmy _ code [I] < & lt ",";

}

Cout & lt& lt "복권 번호:";

For(I = 0;; 나<6; I++)

{

Cout & lt & ltright _ code [I] < & lt ",";

}

Cout & lt& lt "네가 이겼어"

}

}

//통계 결과

Fstream 파일 출력;

FileOut.open("Output.txt ",IOs _ base:: out);

Cout & lt& lt "시뮬레이션 결과: \ n";

FileOut & lt& lt "시뮬레이션 결과: \ n";

For(c = 0;; C<6; C++)

{

Prop [c] =1.0 * NP [c]/simucount;

Cout & lt& LTC<& lt' 1 등상 당첨 확률: "<< prop [c] *100<<"% \ n

FileOut & lt& LTC<& lt "1 등상 당첨 확률:" << prop [c] *100<< "%\

}

Fileout.close ();

}

}

주 ()

{

Cout & lt& lt' 스포츠 복권 투척 및 당첨 과정 시뮬레이션 \ n”;

추첨 섹터

많이. Initlottery ();

많이. Simulate ();

}