기금넷 공식사이트 - 복권 조회 - 자바 언어로 구현되는 복권 시스템이지만 내부적으로 당첨 명단을 설정할 수 있습니다. 어떻게 그렇게 할 수 있을까요?

자바 언어로 구현되는 복권 시스템이지만 내부적으로 당첨 명단을 설정할 수 있습니다. 어떻게 그렇게 할 수 있을까요?

1. 간단한 콘솔 프로그램은 다음과 같습니다. 인터페이스가 필요하면 직접 하나 더 추가해야 합니다.

포장 도로;

Java.util.hashset 가져오기

Java.util.random 을 가져옵니다.

Java.util.scanner 가져오기

Java.util.set 가져오기

/* *

* @ 저자 부비

* @ datetime August 3 1, 202015: 54:11

*/

공용 클래스 흔들림 {

공용 정적 void main(String[] args) {

Stringxian = "= = = = = = = = = = = = =";

//시작 및 종료 상 수? 숫자의 수를 지정합니다

Int start = 0, end = 0, prizeNum = 0, defan um = 0;;

System.out.println (서안);

System.out.println ("XXX 복권 시스템에 오신 것을 환영합니다!" " );

System.out.println (서안);

Scanner scanner = 새 스캐너 (system.in);

System.out.println ("110:") 과 같은 숫자 범위를 입력하십시오.

Start = scanner.nextint ();

End = scanner.nextint ();

System.out.println ("수상자 입력:");

Prize num = scanner.nextint ();

System.out.println ("지정된 수의 당첨번호를 입력하십시오. 그렇지 않으면 0:");

Defanum = scanner.nextint ();

Int [] defa = new int [defanum];

If (defaNum! = 0) {

System.out.println ("지정된 당첨번호를 공백으로 구분하여 입력하십시오.");

For(int I = 0;; 나 & ltdefaNumi++) {

Defa [I] = scanner.nextint ();

}

}

System.out.println (서안);

System.out.println ("이번 복권 당첨번호는");

For (intnum: randomdraw (시작, 끝, prizeNum, defa)) {

System.out.print (num+"");

}

}

/* *

* @param 복권 범위의 시작을 시작합니다

* @param end? 복권 번호 범위 종료

* @param prizeNum 당첨번호

* @param defa 는 당첨번호를 지정합니다.

* @ 반환

*/

공용 정적 세트< 정수 & gtrandomDraw(int start, int end, int prizeNum, int[] defa) {

& lt 정수 설정 & gtset = new HashSet & lt& gt ();

//당첨번호가 지정되지 않았습니다.

If (defa.length == 0) {

//임의로 prizeNum 경품을 추출합니다

While (set.size () < PrizeNum) {

Set.add(new Random (). Nextint (end-start+1)+start);

}

컬렉션으로 돌아가기

} 그렇지 않으면 {

//당첨번호를 지정합니다.

//지정된 숫자를 추가합니다.

For (int num: defa) {

Set.add (num);

}

//모두 지정되지 않은 경우 나머지 상품을 계속 추출합니다.

While (set.size () < PrizeNum-defa.length) {

Set.add(new Random (). Nextint (end-start+1)+start);

}

컬렉션으로 돌아가기

}

}

}

2. 조작 효과는 그림과 같습니다.

당첨번호는 지정입니다.

당첨번호가 지정되지 않았습니다.

당첨번호가 지정되지 않았습니다.