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

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

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

    把困難踩在腳下

    迎難而上

     

    用GUI模擬醫院掛號系統

    要求:

    有三個專家,病人可以根據自己的實際情況選擇相應的專家,專家通過點擊按鈕選擇下一個病人。

    程序代碼如下:

    //封裝病人類

    package com.dr.hospitalQueueSystem;

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

    public class Patient {
        private int num;
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getNum() {
            return num;
        }
        public void setNum(int num) {
            this.num = num;
        }
        public Patient(int num,String name)
        {
            this.setName(name);
            this.setNum(num);
        }

    }

    //封裝專家類

    package com.dr.hospitalQueueSystem;

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

    public class Professor {
        private String name;
        private int id;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.setName(name);
        }
        public Professor(String name,int id)
        {
            this.name=name;
            this.id=id;
        }

    }

    //掛號服務器

    package com.dr.hospitalQueueSystem;

    import java.util.HashMap;
    import java.util.LinkedList;
    import java.util.Map;
    import java.util.Queue;

    public class HospitalQueueServer {
        Map<Integer,Queue<Patient>> map=new HashMap<Integer,Queue<Patient>>();
        Queue<Patient> patientList1=new LinkedList<Patient>();
        Queue<Patient> patientList2=new LinkedList<Patient>();
        Queue<Patient> patientList3=new LinkedList<Patient>();
        public void Init()
        {
            //實例化三個專家
            Professor pfr1=new Professor("張三",1);
            Professor pfr2=new Professor("李四",2);
            Professor pfr3=new Professor("王五",3);
            //實例化15個病人,并將他們每五個添加到三個專家所對應的集合隊列中
            patientList1.offer(new Patient(1, "成龍"));
            patientList1.offer(new Patient(2, "李小龍"));
            patientList1.offer(new Patient(3, "大S"));
            patientList1.offer(new Patient(4, "郭富城"));
            patientList1.offer(new Patient(5, "小S"));
            patientList2.offer(new Patient(6, "劉德華"));
            patientList2.offer(new Patient(7, "林心如"));
            patientList2.offer(new Patient(8, "張靜初"));
            patientList2.offer(new Patient(9, "王寶強"));
            patientList2.offer(new Patient(10, "李連杰"));
            patientList3.offer(new Patient(11, "大傻"));
            patientList3.offer(new Patient(12, "張國榮"));
            patientList3.offer(new Patient(13, "周星馳"));
            patientList3.offer(new Patient(14, "趙薇"));
            patientList3.offer(new Patient(15, "周迅"));
            //將各個專家與他們對應的病人集合進行鍵值對
            map.put(pfr1.getId(), patientList1);
            map.put(pfr2.getId(), patientList2);
            map.put(pfr3.getId(), patientList3);
        }

    }

    //病人使用端

    package com.dr.hospitalQueueSystem;

    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.graphics.Font;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class PatientQueueUI {
        public static void main(String args[])
        {
            Display display=new Display();
            Shell shell=new Shell(display);
            shell.setMaximized(true);
            //初始化界面
            shell.setText("醫院病人掛號使用系統");
            //服務器初始化
            HospitalQueueServer hq=new HospitalQueueServer();
            hq.Init();
            final Queue<Patient> patientList1=hq.map.get(1);
            final Queue<Patient> patientList2=hq.map.get(2);
            final Queue<Patient> patientList3=hq.map.get(3);
            //添加標簽控件
            Label label=new Label(shell,SWT.NONE);
            label.setFont(new Font(display,"宋體",15,SWT.BOLD));
            label.setBounds(450,100,600,100);
            label.setText("想要選擇那位專家為你看病,請點擊相應專家的姓名按鈕!");
            //添加三個文本框
            final Text text1=new Text(shell,SWT.WRAP);
            text1.setBounds(100,250,250,200);
            final Text text2=new Text(shell,SWT.WRAP);
            text2.setBounds(550,250,250,200);
            final Text text3=new Text(shell,SWT.WRAP);
            text3.setBounds(900,250,250,200);
            //添加按鈕1
            Button button1=new Button(shell,SWT.Activate);
            button1.setBounds(150,520,120,60);
            button1.setText("1號專家張三");
            //添加按鈕2
            Button button2=new Button(shell,SWT.Activate);
            button2.setBounds(600,520,120,60);
            button2.setText("2號專家李四");
            //添加按鈕3
            Button button3=new Button(shell,SWT.Activate);
            button3.setBounds(960,520,120,60);
            button3.setText("3號專家王五");
            //為按鈕1添加事件處理,事件處理內容為“讀取病人的id和姓名,并將此病人添加到相應專家的對立中”
            button1.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=new Patient(patientList1.size()+1,"***");
                    patientList1.offer(pt);
                    text1.setText(pt.getNum()+"號病人,歡迎選擇1號專家為你坐診,請在等候區等候,會有工作人員通過廣播通知你什么時候去看病");
                }
            });
            //為按鈕2添加事件處理
            button2.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=new Patient(patientList2.size()+1,"****");
                    patientList2.offer(pt);
                    text2.setText(pt.getNum()+"號病人,歡迎選擇2號專家為你坐診,請在等候區等候,會有工作人員通過廣播通知你什么時候去看病");
                }
            });
            //為按鈕3添加事件處理
            button3.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=new Patient(patientList3.size()+1,"****");
                    patientList3.offer(pt);
                    text3.setText(pt.getNum()+"號病人,歡迎選擇3號專家為你坐診,請在等候區等候,會有工作人員通過廣播通知你什么時候去看病");
                }
            });
            shell.layout();
            shell.open();
            while(!shell.isDisposed())
            {
                if(!display.readAndDispatch()){
                    display.sleep();
                }
            }
        }

    }

    **************************************************************************

    程序運行結果如下:

    未命名

    //專家使用端

    package com.dr.hospitalQueueSystem;

    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.graphics.Font;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class ProfessorUI {
        public static void main(String args[])
        {
            final Display display = Display.getDefault();
            final Shell shell = new Shell();
            shell.setMaximized(true);
            //初始化界面
            shell.setText("專家使用系統端");
            //服務器初始化
            HospitalQueueServer hq=new HospitalQueueServer();
            hq.Init();
            final Queue<Patient> qp1=hq.map.get(1);
            final Queue<Patient> qp2=hq.map.get(2);
            final Queue<Patient> qp3=hq.map.get(3);
            //添加文本控件
            final Text text1=new Text(shell,SWT.WRAP);
            text1.setBounds(100,250,250,200);
            text1.setFont(new Font(display,"宋體",15,SWT.BOLD));
            final Text text2=new Text(shell,SWT.WRAP);
            text2.setFont(new Font(display,"宋體",15,SWT.BOLD));
            text2.setBounds(550,250,250,200);
            final Text text3=new Text(shell,SWT.WRAP);
            text3.setFont(new Font(display,"宋體",15,SWT.BOLD));
            text3.setBounds(900,250,250,200);
            //添加按鈕1
            Button button1=new Button(shell,SWT.Activate);
            button1.setBounds(150,520,120,60);
            button1.setText("張三:下一個");
            //添加按鈕2
            Button button2=new Button(shell,SWT.Activate);
            button2.setBounds(600,520,120,60);
            button2.setText("李四:下一個");
            Button button3=new Button(shell,SWT.Activate);
            button3.setBounds(960,520,120,60);
            button3.setText("王五:下一個");
            //為按鈕1添加事件處理,事件處理內容為“讀取病人的id和姓名,并將此病人添加到相應專家的對立中”
            button1.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=qp1.poll();
                    if(pt!=null)
                    {
                        text1.setText(pt.getName()+"請進來");
                    }
                    else
                    {
                        text1.setText("暫時沒有病人了,您先休息會兒");
                    }
                }
            });
            //為按鈕2添加事件處理
            button2.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=qp2.poll();
                    if(pt!=null)
                    {
                        text2.setText(pt.getName()+"請進來");
                    }
                    else
                    {
                        text2.setText("暫時沒有病人了,您先休息會兒");
                    }
                }
            });
            //為按鈕3添加事件處理
            button3.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e)
                {
                    Patient pt=qp3.poll();
                    if(pt!=null)
                    {
                        text3.setText(pt.getName()+"請進來");
                    }
                    else
                    {
                        text3.setText("暫時沒有病人了,您先休息會兒");
                    }
                }
            });
            shell.layout();
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
        }

    }

    ********************************************************************************************

    程序運行結果如下:

    未命名

    這個程序還有許多缺點比如說數據冗余,沒有實現專家與病人之間的通信!

    由于沒有實現多線程技術,在專家系統端運行時,只能是調用服務器初始化的病人,不能調用病人系統端添加的病人。

    posted on 2010-10-31 19:52 馮魁 閱讀(299) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 特级毛片在线大全免费播放| 四虎国产精品永免费| 成全高清在线观看免费| 亚洲成?v人片天堂网无码| 亚洲AV日韩AV永久无码色欲| 在线免费观看污网站| 亚洲av无码天堂一区二区三区 | 成人免费无毒在线观看网站| 亚洲国产美女福利直播秀一区二区 | 无码人妻AV免费一区二区三区 | 亚洲男人的天堂久久精品 | 亚洲AV成人精品日韩一区18p| 亚洲精选在线观看| 97在线视频免费播放| 亚洲欧洲日产国产最新| 很黄很色很刺激的视频免费| 亚洲人成自拍网站在线观看| 日本人成在线视频免费播放| 国产精品极品美女免费观看| 国产精品亚洲专区一区| 一个人免费观看在线视频www | 亚洲国产成人久久精品99 | 国产精品亚洲综合五月天| 国产成人免费高清激情视频| 国产亚洲一区二区在线观看| 中文字幕日本人妻久久久免费| 久久久亚洲AV波多野结衣| 最近最新MV在线观看免费高清| 国产精品无码亚洲精品2021 | 男女交性永久免费视频播放| 特级毛片免费观看视频| 久久夜色精品国产嚕嚕亚洲av| 亚洲成人激情小说| 亚洲精品tv久久久久久久久久| 成人A片产无码免费视频在线观看| 亚洲国产精品yw在线观看| 免费福利电影在线观看| 国产亚洲午夜高清国产拍精品| 99ee6热久久免费精品6| 亚洲一区二区在线视频| 女人张腿给男人桶视频免费版 |