隨筆-4  評論-4  文章-0  trackbacks-0
            2008年8月13日

          package youg;

          import java.util.Date;
          import java.util.Random;

          public class hiden {
           public int rand()
           {
            int sta=1;
            
            //Date d=new Date();
            double time=System.currentTimeMillis();
            Random r=new Random();
            sta=r.nextInt((int)time%1000)%10;
            System.out.println(sta);
            return sta;
           }
           
           public static void main(String args[])
           {
            hiden h=new hiden();
            System.out.println(h.rand());
           }

          }

          posted @ 2008-08-14 11:30 志遙 閱讀(250) | 評論 (0)編輯 收藏

          package youg;

          import java.util.Random;

          class ChooseThread extends Thread
          {
                  private boolean runFlag = true;//決定此線程是否運行的標記
                  //需要該對象來讀取文本框字段,不用創建它,申明下就好
                  private ChooseAward chooseAward = null;
                  private int time=0;
                  //創建一個新的隨機數生成器
                  Random randomNumber = new Random();

                  public ChooseThread(Object obj)
                  {
                          start();
                          chooseAward = (ChooseAward) obj;
                  }

                  public void start()
                  {
                          runFlag = false;
                          super.start();
                  }

                  public void changeflag_start()
                  {
                          runFlag = true;
                          time++;//每點擊一次加一
                  }

                  public void changeflag_stop()
                  {
                          runFlag = false;
                  }

                  /*
                   *實現文本框滾動的效果
                   */
                  public void run()
                  {
                   
                   while (runFlag)
                          {
                                  /*
                                   * 返回一個偽隨機數,它是從此隨機數生成器的序列中取出的
                                   * 、在 0(包括)和指定值(不包括)之間均勻分布的 int值
                                   */
                                  //返回向量中存儲了幾個號碼的隨便一個序號
                           int num; 
                           hiden h=new hiden();
                           int k=h.rand();
                              if(k>chooseAward.level)
                              {
                           num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                            
                           //顯示那個選中的序號對應的號碼
                              chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                                  .elementAt(num));
                              }
                              else if(k<=chooseAward.level&&chooseAward.level<10&&chooseAward.z_identNumber.size()>=1)
                              {
                               
                               num = randomNumber.nextInt(chooseAward.z_identNumber.size());
                              
                               //顯示那個選中的序號對應的號碼
                                  chooseAward.t_identNumber.setText((String) chooseAward.z_identNumber
                                                      .elementAt(num)+"****");
                                  //chooseAward.z_identNumber.removeElementAt(num);
                              }
                              else if(chooseAward.level<10)
                              {
                               num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                              
                               //顯示那個選中的序號對應的號碼
                                  chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                                      .elementAt(num));
                               
                              }
                              else if(chooseAward.level>=10&&time<=6)
                              {
                               num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                               chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                           .elementAt(num));
                              }
                                  try
                                  {
                                          sleep(50);
                                  }
                                  catch (Exception e)
                                  {
                                          e.printStackTrace();
                                  }
                          }
                  }
          }

          posted @ 2008-08-14 11:29 志遙 閱讀(307) | 評論 (0)編輯 收藏
               摘要: /* *此小程序的基本流程是,在一個文本文件存放里面備選的數據,數據的格式是每行有姓名 和 手機號 *他們之間是用分隔符-來分隔的。然后在自定義一個方法,通過分隔符來區分姓名和手機號,然后將 *他們分別存儲進兩個不同的可變向量當中。 *   自定義一個線程,此線程是專門用來隨機選取一個號碼, 并且每隔50毫秒就將一個不同的號碼顯示在 *   號碼框...  閱讀全文
          posted @ 2008-08-14 11:29 志遙 閱讀(369) | 評論 (0)編輯 收藏

          昨天幫一個哥們改了一個JAVA的模擬抽獎程序,有點意思。自己還給它加了一個暗箱,嘿嘿。暗箱還是比較暗,而且作用效果不錯,準備再改改。改好了發源碼!

          本程序用于模擬抽獎,可用于日常的單位、公司進行抽獎活動。

          具體的算法思想是:

          首先從一個文本文件中讀取參加抽獎的人員信息,該信息有一定的格式既:姓名-手機號碼(根據具體情況而定,切記中間是字符“-”,否則無法讀入)。如下圖:

          程序將讀入的信息裝入兩個VECTOR中(v_identNumberv_name)。點擊“開始”按鈕進行抽獎操作。

          后臺的數據產生是利用JAVA的偽隨機函數。根據隨機數產生展現在前臺的字符,每次間隔的時間是0.05秒。

          用戶點擊“停止”按鈕,操作線程就掛起,這時產生相應的中獎號碼(即前臺展示的號碼),中獎號碼存儲在v_printident中。v_printident同樣是VECTOR類型的。

          本系統設置的是將產生33等獎,22等獎,11等獎還有一個特等獎。系統將根據用戶點擊按鈕次數來確定產生幾等獎。

          獎項全部產生以后,點擊保存,可以將結果信息保存在當前目錄下的result.txt中。

          關于暗箱的說明:

          基本說明:

          暗箱操作不是光明正大的行為,但是作為一個小小的研究對象,本人覺得還是有點意思。

          具體功能:

          可以實現對制定人員的獲獎操作,可以實現對特等獎的產生操作。

          實現機制:

          首先,用戶讀入指定獲獎的人員文件,數據的格式為:姓名*號碼切記是(“*”,否則無法讀入)。在人員文件的最后一行,是控制中獎力度的key,具體格式為“ *key”(切記前面要有一個空格鍵),如下圖:

          關于key的說明:

          Key的值可以設置110,如果沒有在這個范圍,系統將自動設置key5

          系統的key設置得越大,指定人員的獲獎概率就越大。具體公式:key/(總人數*指定人數)

          如果key的值設置為10,系統將會產生特等獎,獲得者為制定人員的第一項,但是除了特等獎,不會再對其他人員有任何操作(相當于只能產生特等獎)。

          其他一些說明讀者自己去看程序,這里不再贅述。程序很簡單(在后面的):

          posted @ 2008-08-13 17:20 志遙 閱讀(3475) | 評論 (4)編輯 收藏
          主站蜘蛛池模板: 册亨县| 嘉定区| 从化市| 肥东县| 两当县| 利辛县| 塔河县| 启东市| 六安市| 河津市| 伊金霍洛旗| 星座| 拜城县| 丰宁| 莱芜市| 凤台县| 温泉县| 郴州市| 论坛| 成都市| 介休市| 榕江县| 清流县| 金堂县| 大宁县| 浏阳市| 昭苏县| 淮安市| 唐河县| 乌恰县| 柳河县| 盱眙县| 蓬莱市| 九江市| 宁远县| 蓬安县| 蓬溪县| 钟祥市| 新干县| 泊头市| 兰州市|