java抽獎,java抽獎程序代碼

本文目錄一覽:

JAVA抽獎問題

import java.util.Scanner;public class TextRandom {

public static Scanner input=new Scanner(System.in);

public static int count=0;//記錄用戶猜對的次數

public static int xitong =(int)Math.round(Math.random()*10);//系統產生的隨機數0~10之間

public static int w[]=new int[3];//將系統隨即產生的數字放在數組W中

public static int guess[]=new int [3];

public static void main(String[]args)

{

guess();

}

public static void guess()

{ //開始抽獎

for(int j=0;jw.length;j++){

System.out.println(“開始抽獎,請用戶輸入0~10之間的數字,請輸入第”+(j+1)+”個數字”);

guess[j] =input.nextInt();

if(j2){

System.out.println(“正在搖獎,需要中途放棄么 ?(y/n)”);

String shuru =input.next();

if(shuru.equals(‘y’)) break;

}

}

//系通開出的獎

System.out.println(“系統產生三個數字是:”);

for(int i=0;i3;i++)

{

System.out.print((int)Math.round(Math.random()*10));

w[i]=(int)Math.round(Math.random()*10);

}

//兌獎過程

for(int i=0;i3;i++)

{

if(guess[i]==w[i])

{

count++;//記錄出用戶抽中獎的次數

}

}

if(count==3)

{

System.out.println(“恭喜你,你中獎了 “);

}

else

{

System.out.println(“很遺憾,您沒有中獎,歡迎下次再來!”);

}

}

}

//我已儘力了

求一份抽獎遊戲(Java寫的代碼)

import java.util.Scanner;

/**

 *

 */

public class f {

    public static void main(String args[]){

        Scanner scan = new Scanner(System.in);

        System.out.print(“請輸入抽獎號碼上限:”);

        int max = scan.nextInt();

        System.out.print(“請輸入抽獎次數:”);

        int n = scan.nextInt();

        System.out.print(“中獎號碼依次為:”);

        for(int i=0;in;i++){

            System.out.print((int)(Math.random()*max+1)+” “);

        }

    }

}

Java代碼實現抽獎:從班級的學號中抽出一個一等獎,兩個二等獎,三個三等獎

抽取問題, 重點是 同一個學號不能重複被抽取.

解決辦法很多,

比如數組可以使用下標來標記,號碼是否被使用,使用了就繼續下一次抽取

也可以使用集合來抽取,把集合順序打亂,然後隨便抽幾個就可以了

參考代碼:數組法

import java.util.Random;

public class Test {

public static void main(String[] args) {

int stuNums=30;

int[] nums=new int[stuNums];//存儲學號的數組

boolean[] flags=new boolean[stuNums];//標記,用於標記對應下標的學號是否已經被抽取過了

for (int i = 0; i  stuNums; i++) {

nums[i]=i+1;//給學號賦值

}

Random r=new Random();

while(true){

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println(“A等:”+nums[index]);

flags[index]=true; //標記已經被使用過了

break;

}

}

for (int i = 0; i  2; i++) {

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println(“B等:”+nums[index]);

flags[index]=true;

}else{

i–;//如果已經被抽取過了 ,那麼i建議,再次循環

}

}

for (int i = 0; i  3; i++) {

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println(“c等:”+nums[index]);

flags[index]=true;

}else{

i–;

}

}

}

}

集合法

import java.util.ArrayList;

import java.util.Collections;

public class Test2 {

public static void main(String[] args) {

int stuNums=20;

ArrayListInteger list=new ArrayListInteger();

for (int i = 0; i  stuNums; i++) {

list.add(i+1);

}

System.out.println(“有序”+list);

Collections.shuffle(list);//打亂順序

System.out.println(“亂序”+list);

System.out.println(“A等”+list.get(0));

System.out.println(“B等”+list.get(1));

System.out.println(“B等”+list.get(2));

System.out.println(“C等”+list.get(3));

System.out.println(“C等”+list.get(4));

System.out.println(“C等”+list.get(5));

}

}

用java寫一個抽獎程序

你是要JAVA可視化的 還是控制台的啊?

控制台的話 你可以用循環來取中獎號,將其存入list或set里(最好是set,因為set本來就不會重複)。如果用list存就另外寫一個循環方法,來挨個判定該元素是不是已經在list中存在了,如果存在,就讓選號的再加選一次,如果不重複,就放到list里去。。。。OK

通過java 實現 模擬抽獎

import java.util.Scanner;

public class Choujiang {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);//定義Scanner類1234

System.out.println(“請輸入四位卡號:”);//輸入提示語

int cardNo = sc.nextInt();//接受輸入數據

int gewei = cardNo%10;//分解個位

int shiwei = cardNo/10%10;//分解十位

int baiwei = cardNo/100%10;//分解百位

int qianwei = cardNo/1000;//分解千位

int sum = gewei+shiwei+baiwei+qianwei;

System.out.println(“會員卡號四位之和是:”+sum);

if(sum20){//判斷各位數和是否大於20

System.out.println(“恭喜,你是幸運客戶!”);

}else{

System.out.println(“謝謝惠顧!”);

}

}

}

JAVA抽獎的演算法

優先順序規則使高等獎盡量在後期抽出

import java.util.LinkedList;

import java.util.List;

public class GetGift {

// 獎品倉庫

private ListGift gifts = new LinkedListGift();

public GetGift() {

// 生成一堆獎品放進獎品倉庫

// 一等獎一個優先順序1,二等獎兩個優先順序2。。。20等獎20個優先順序20

for (int i = 1; i = 20; i++) {

GiftType gt = new GiftType(i + “等獎”, i, i);

for (int j = 1; j = i; j++) {

gifts.add(new Gift(i + “等獎——第” + j + “號”, gt));

}

}

}

// 抽獎

public synchronized Gift getGift() {

int randomNumber = (int) (Math.random() * total());

int priority = 0;

for (Gift g : gifts) {

priority += g.getType().getPriority();

if (priority = randomNumber) {

// 從獎品庫移出獎品

gifts.remove(g);

return g;

}

}

// 抽獎次數多於獎品時,沒有獎品

return null;

}

/**

 * @param args

 */

public static void main(String[] args) {

GetGift gg = new GetGift();

// 一共生成210個獎品,抽210次,多抽顯示null

for (int i = 0; i  210; i++) {

System.out.println(gg.getGift());

}

}

// 計算總優先順序,內部使用

private int total() {

int result = 0;

for (Gift g : gifts) {

result += g.getType().getPriority();

}

return result;

}

}

// 記錄獎品的信息

// 如1等獎共1個,優先順序為1最難抽

class GiftType {

// 名字(如1等獎)

private String name;

// 這種獎品的數量,數量越大越容易抽到

private int quantity;

// 這種獎品的優先順序,最小為1,數越大越容易抽到

private int priority;

public GiftType(String name, int quantity, int priority) {

this.name = name;

this.quantity = quantity;

this.priority = priority;

}

public int getPriority() {

return priority;

}

@Override

public String toString() {

return “GiftType [name=” + name + “, quantity=” + quantity + “, priority=” + priority + “]”;

}

}

// 獎品

class Gift {

// 每個獎品有唯一id,抽獎不會重複,格式為”16等獎——第8號”

private String id;

// 這個獎品的類別

private GiftType type;

public Gift(String id, GiftType type) {

this.id = id;

this.type = type;

}

public GiftType getType() {

return type;

}

@Override

public String toString() {

return “Gift [id=” + id + “, type=” + type + “]”;

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233886.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:11
下一篇 2024-12-11 17:11

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論