<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 馮魁 閱讀(295) 評論(0)  編輯  收藏


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導航

    統計

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩精品无码免费专区网站| 精品女同一区二区三区免费播放| 免费能直接在线观看黄的视频| 亚洲国产精品日韩av不卡在线| 中文字幕亚洲综合久久男男| 巨胸喷奶水视频www网免费| 少妇性饥渴无码A区免费 | 亚洲伦理一二三四| 亚洲国产精品成人久久| 亚洲熟妇丰满多毛XXXX| 国产乱色精品成人免费视频 | 久久久久se色偷偷亚洲精品av | 在线日本高清免费不卡| 伊人免费在线观看| 午夜爽爽爽男女免费观看影院| 一级毛片免费播放视频| 中文字幕的电影免费网站| 插鸡网站在线播放免费观看| 亚洲中文无码线在线观看| 成年女人18级毛片毛片免费观看| 久草在视频免费福利| 久久久久久久免费视频| 日本免费网站观看| 日本最新免费不卡二区在线| 国产又黄又爽又刺激的免费网址 | 亚洲AV无码一区二区三区电影 | 亚洲日本一区二区三区| 亚洲福利视频网址| 国产精品亚洲专区在线播放| 国产黄色片免费看| 国产大片线上免费观看| 国产中文字幕免费| 亚洲人成在线影院| 另类专区另类专区亚洲| 57pao国产成视频免费播放| 67194成是人免费无码| 日韩亚洲变态另类中文| 亚洲中文字幕人成乱码| 国产免费牲交视频免费播放| 国产大片免费网站不卡美女| 四虎永久免费观看|