<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 洛神賦 閱讀(2796) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 最好看的中文字幕2019免费| 一级做受视频免费是看美女| 人妻无码久久一区二区三区免费| 亚洲午夜精品一级在线播放放| 亚洲爆乳成av人在线视菜奈实 | 亚洲AV日韩精品久久久久久| 一级毛片人与动免费观看| 免费在线观看毛片| 美女裸免费观看网站| 亚洲国产主播精品极品网红| 亚洲免费精彩视频在线观看| 久久亚洲成a人片| 三年片在线观看免费大全电影| 亚洲∧v久久久无码精品 | 亚洲黄片手机免费观看| 亚洲伊人久久精品影院| 亚洲噜噜噜噜噜影院在线播放 | 永久免费A∨片在线观看| 亚洲精品你懂的在线观看| 免费在线看黄的网站| 亚洲综合自拍成人| 一级中文字幕乱码免费| 亚洲午夜福利717| 99在线在线视频免费视频观看| 亚洲中文字幕无码av在线| 日韩一级免费视频| 三年片免费高清版| 亚洲精品熟女国产| 国产免费观看网站| 成人片黄网站色大片免费观看APP| 亚洲综合综合在线| 免费一级做a爰片性色毛片| 国产在线观看xxxx免费| 亚洲中文字幕久在线| 亚洲免费一区二区| **真实毛片免费观看| 亚洲精品成人av在线| 国产成人精品无码免费看| 亚洲五月综合网色九月色| 久久精品国产亚洲一区二区三区| 永久黄色免费网站|