<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    洛神賦

    子虛烏有

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      7 Posts :: 10 Stories :: 0 Comments :: 0 Trackbacks

    要求:

    1、要和實際情況類似,寫一個在銀行大廳的排隊叫號機器上取出一個號碼,上面有你的位置號還有你前面有多少人,這樣一個簡單的叫號系統。
    2、當工作人員按一個按鈕時,就會通知一個等候的人到某個窗口辦理業務。
    3、實現有金卡用戶(就是人家存的錢很多啦)和普通用戶區分開來,無論前面排隊有多少人,金卡用戶都會排到第一位。

    分析:
    1、排隊肯定是先進先出(FI FO),所以我們用到Queue接口有關的類。
    2、在排隊等候客戶端,只需要考慮等待者排在第幾號,和前面有幾個人就可以了。
    3、當金卡用戶來排隊的時候,他們錢多就會要求先得到服務,所以當添加一個金卡用戶,隊列中的金卡用戶的時候,普通用戶的隊列也要添加該用戶,
    4、在工作人員客戶端,工作人員只需處理多少用戶即可,并且先辦理金卡用戶的業務,只有當金卡用戶為空的時候才開始辦理普通用戶的業務。


    代碼如下:
    //等待著的類
    package com.dr.Test;

    public class Waiter {

     private int num;
     
     private int frontNum;
     
     private int flag;//0代表普通 1代表gold

     public int getFlag() {
      return flag;
     }

     public void setFlag(int flag) {
      this.flag = flag;
     }

     public int getNum() {
      return num;
     }

     public void setNum(int num) {
      this.num = num;
     }

     public int getFrontNum() {
      return frontNum;
     }

     public void setFrontNum(int frontNum) {
      this.frontNum = frontNum;
     }
     }

    //服務器

    package com.dr.Test;

    import java.util.LinkedList;
    import java.util.Queue;

    public class QueueServer {

     LinkedList<Waiter> waiterList = new LinkedList<Waiter>();

     
     
     public LinkedList<Waiter> init(){
      
      for(int i=1;i<=20;i++){
       Waiter w = new Waiter();
          w.setNum(i);
          w.setFrontNum(i-1);
          waiterList.offer(w);
      }
      return waiterList; 
     }
    }

    //排隊的客戶端

    package com.dr.Test;

    import java.util.LinkedList;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.graphics.Font;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class WaiterQueueUI {
     public static void main(String[] args) {
      final Display display = Display.getDefault();
      final Shell shell = new Shell();
      shell.setMaximized(true);
      shell.setText("銀行排隊之顧客使用的客戶端");
      // ------------------新插入的界面核心代碼------------------------
      QueueServer qs = new QueueServer();//實例化類
         final LinkedList<Waiter> waiterList = qs.init();//初始化隊列服務器
        
         final Text txt = new Text(shell,SWT.MULTI);
         txt.setBounds(40, 50, 500, 450);
      // 事件代碼里要訪問button,所以加????final
      final Button button = new Button(shell, SWT.Activate);
      button.addSelectionListener(new SelectionAdapter() { // 加一個??擇監聽器
         public void widgetSelected(SelectionEvent e) {
          //System.out.println("############### " + waiterList.size());
          Waiter waiter = new Waiter();      
          waiter.setNum(waiterList.size()+1);
          waiter.setFrontNum(waiterList.size());
          waiterList.offer(waiter);
          if(waiterList.size() <= 50){
           txt.setText( "您現在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"個人\n請您耐心等候吧!哈哈");
          }else{
           txt.setText("您前面已經排50個人,請考慮!\n"+"您現在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"個人\n請您耐心等候吧!哈哈");
          }
         }
         });
      button.setBounds(210, 530, 200, 75); // 設置按鈕位置
      button.setFont(new Font(display,"宋體",12,SWT.BOLD));
      button.setText("個人業務");// 設置按鈕上的文字
      
      
      
      final Text goldtxt = new Text(shell,SWT.MULTI);
      goldtxt.setBounds(600, 50, 500, 450);
      // 事件代碼里要訪問button,所以加????final
      final Button goldbutton = new Button(shell, SWT.Activate);
      goldbutton.addSelectionListener(new SelectionAdapter() { // 加一個??擇監聽器
         public void widgetSelected(SelectionEvent e) {
          //
          Waiter w =new Waiter();
          w.setFlag(1);
          waiterList.addFirst(w);
          
          goldtxt.setText( "下一個就是您\n請您耐心等候吧!哈哈");
       
         }
         });
      goldbutton.setBounds(750, 530, 200, 75); // 設置按鈕位置
      goldbutton.setFont(new Font(display,"宋體",12,SWT.BOLD));
      goldbutton.setText("gold");// 設置按鈕上的文字

      // ------------------END---------------------------------------------
      shell.layout();
      shell.open();
      while (!shell.isDisposed()) {
       if (!display.readAndDispatch())
        display.sleep();
      }
     }
    }

    //工作人員客戶端

    package com.dr.Test;

    import java.util.Queue;

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    import com.dr.Test.QueueServer;
    import com.dr.Test.Waiter;

    public class BankWorkerUI {
     public static void main(String[] args) {
      
      final Display display = Display.getDefault();
      final Shell shell = new Shell();
      shell.setSize(327, 253);
      
      shell.setText("銀行排隊之工作人員客戶端");
      // ------------------新插入的界面核心代碼------------------------
      QueueServer qs = new QueueServer();//實例化類
         final Queue<Waiter> waiterList = qs.init();//初始化隊列服務器
        
         final Text txt = new Text(shell,SWT.MULTI);
         txt.setBounds(65, 30, 180, 70);
      // 事件代碼里要訪問button
      final Button button = new Button(shell, SWT.Activate);
      
      button.addSelectionListener(new SelectionAdapter() { // 加一個??擇監聽器
         public void widgetSelected(SelectionEvent e) {
          //System.out.println("############### " + waiterList.size());
          Waiter waiter= waiterList.poll();
          if(waiter!= null){
            txt.setText(waiter.getNum()+"號顧客請到1號窗口辦理業務");
          }else{
           txt.setText("現在沒有人辦理業務了,您可以休息會了\n 喝杯咖啡吧,哈哈!");
          }
         }
        });
      button.setBounds(90, 141, 100, 25); // 設置按鈕位置
      button.setText("下一個");// 設置按鈕上的文字

      // ------------------END---------------------------------------------
      shell.layout();
      shell.open();
      while (!shell.isDisposed()) {
       if (!display.readAndDispatch())
        display.sleep();
      }
     }
    }



    運行結果:
    排隊端:

    金卡來了

    工作人員端:

    謝謝閱讀!歡迎您提供寶貴意見!!
    posted on 2010-10-31 19:37 洛神賦 閱讀(2790) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 免费大片黄在线观看| 国产一区二区三区在线观看免费| 在线观看亚洲电影| 亚洲国产精品日韩在线| 亚洲色自偷自拍另类小说| 国产99视频免费精品是看6| 成年黄网站色大免费全看| 免费无码又爽又刺激高潮软件| 亚洲色大情网站www| 亚洲激情电影在线| 久久亚洲国产欧洲精品一| 亚洲人成网站观看在线播放| 思思99re66在线精品免费观看| 久久国产乱子伦免费精品| 水蜜桃视频在线观看免费播放高清 | 日韩亚洲变态另类中文| 日本免费人成视频播放| av无码久久久久不卡免费网站| 久久成人免费电影| 在线观看肉片AV网站免费| 国产免费AV片在线观看播放| 国产成人精品亚洲| 色婷婷亚洲一区二区三区| 亚洲高清毛片一区二区| 久久亚洲精品国产亚洲老地址| 亚洲精品美女久久久久9999| 亚洲AV日韩AV天堂一区二区三区 | 人妻仑乱A级毛片免费看| 亚洲AV无码一区二区三区网址| 亚洲高清视频在线| 中文有码亚洲制服av片| 亚洲中文字幕在线无码一区二区| 亚洲综合男人的天堂色婷婷| 亚洲精品在线不卡| 亚洲国产av高清无码| 亚洲国产精品综合福利专区| 亚洲性色高清完整版在线观看| 亚洲国产综合第一精品小说| 亚洲午夜国产精品| 亚洲中文字幕久久久一区| 2020国产精品亚洲综合网|