java小项目:抽签小程序
生活随笔
收集整理的這篇文章主要介紹了
java小项目:抽签小程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
分別有A、B兩組。盡量讓您手中的項目抽中同一組,但是出廠的順序不同
注意
1.建立的java文件,要與代碼中的public class 名相同
2.package 包名; 要與自己建立的相同
3.通過下面標紅的A、B兩組總的容納空間
源代碼
package program; import java.io.*; import java.util.Random; import java.util.Scanner; public class test {public static void main(String[] args)throws IOException {test cq=new test(); //因為要調用方法CQ,(注意: //方法要寫在主函數外面,public class er_jin_zhi_tuxiang里面)int xiangmushu=0;int m=0; //記錄A組已經出來幾個序號了int m1=10; //A組能容納的空間大小int[] xuhaoA=new int[10]; //存放A組抽出的序號 (注意:eclipse中空數組中的值默認的是0)int n=0; //記錄B組已經出來幾個序號了int n1=10; //B組能容納的空間大小int[] xuhaoB=new int[10]; //存放B組抽出的序號(注意:eclipse中空數組中的值默認的是0)int q;String A="A";String B="B";Scanner reader=new Scanner(System.in);Random r=new Random();for(int i=0;i==0;) { //實現下一個人的抽簽System.out.print("您的項目有幾個:");q=reader.nextInt();xiangmushu=xiangmushu+q;if(xiangmushu<=20){for(int iii=0;iii==0;) { //如果一個組滿了,或不夠了;再重新抽組int a=r.nextInt(2);if(a==0) { //0表示的是A組if(m1>=q) { //保證A組剩余的空間大于此人所有項目所需要的序號數iii=1;cq.CQ(A,q,m,xuhaoA);m=m+q; //保證m比上一人抽出的結果所存入的最后一個數組的序號大1(注意:數組的序號是從0開始的) //這里要說明以下為什么方法中已對m做出變化,這里還要在多此一舉呢?原因很簡單,在測試中發現對于賦初始值變量,即使在方法中有改變其初始值的操作, //當下次調用此方法時,變量的值還是保持其初始值m1=m1-q; //表示A組的剩余空間少一個}else {if(n1<q) {xiangmushu=xiangmushu-(q-m1);iii=1;cq.CQ(A,m1,m,xuhaoA);System.out.println("還有"+(q-m1)+"個項目未抽簽!");m1=0; //A組空間用完 }}} else {if(n1>=q) {iii=1;cq.CQ(B,q,n,xuhaoB);n=n+q; n1=n1-q; System.out.println(n);}else {if(m1<q) {xiangmushu=xiangmushu-(q-n1);iii=1;cq.CQ(B,n1,n,xuhaoB);System.out.println("還有"+(q-n1)+"個項目未抽簽!");n1=0; //B組空間用完}}}}if(xiangmushu==20) break;else {System.out.println("是否繼續(是 或 否)?");String t=reader.next();if("否".contentEquals(t)) break;}}else {System.out.println("項目超額!!");System.out.println("是否繼續(是 或 否)?");String t=reader.next();if("否".contentEquals(t)) break;else xiangmushu=xiangmushu-q;}} }public void CQ(String Zu,int qq,int nm,int[] xuhao){ //Zu代表組,qq代表項目數,nm代表Zu組出來的序號數Random r=new Random();for(int ii=0;ii<qq;ii++) { //保證有幾個項目抽幾次int a1=r.nextInt(10)+1;//1.保證a1屬于1到10;2.若不加1,a1屬于0到9,那么0與數組默認值沖突,for(int aa=0;aa<10;) { //會導致for(int aa=0;aa<10;)出現bug if(xuhao[aa]==a1) { aa=10; //結束篩選ii--; //抽重了,那么這次作廢,重新開抽}else {if(aa==nm) { //保證把所以抽出的結果全部對比一邊,沒有重復的,則這次抽出的結果有效xuhao[aa]=a1; System.out.println("抽簽結果:"+Zu+""+xuhao[aa]);nm++; //這一條語句必須有,因為如果一個人有三個項目,若沒有這條語句,那么在這個方法結束前nm的不會改變, //使得三個抽簽結果都將寫入同一個數組空間,且上一次的結果將會被下一次的結果所覆蓋,這顯然不是我們想要的結果aa=10;}else aa++; //說明還沒把所有Zu組已抽出的結果全部對比完 }}}} }總結
以上是生活随笔為你收集整理的java小项目:抽签小程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sklearn——决策树
- 下一篇: 使用svn merge 实现回退版本