排队小程序java_病人挂号等待,各类医生专家按顺序给排队病人依次作诊的UI小程序...

1)、先封装一个病人(Patient)的类。里面设置两个属性:一个是排队的人数(num),一个是前面需要等待的人数(frontnum);

package com.dr.patient;

public class Patient {

private int num;

private int frontNum;

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;

}

}

2)、然后建立一个病人服务的类(PatientServer),构建一个病人等待排队数字的循环逻辑;package com.dr.patient;

import java.util.LinkedList;

import java.util.Queue;

public class PatientServer {

Queue patientList = new LinkedList();                //新建一个容器,病人的队列 public Queue init(){                                                        //构建一个方法,把挂号的病人加入  for(int i=1;i<=24;i++){                                                               //设定队列中已有24个人,挂号加入的从第25个开始   Patient pat = new Patient();

pat.setNum(i);

pat.setFrontNum(i-1);

patientList.offer(pat);                                                 //将指定的病人元素插入此队列  }

return patientList;

}

}

3)、病人挂号点击页面,主要用Display、Shell方法新建窗口!

final Display display = Display.getDefault();

final Shell shell = new Shell();

shell.setBounds(300, 100, 800, 700);

shell.setText("病人挂号排队端");

a.png

// ------------------新插入的界面核心代码------------------------  PatientServer qs = new PatientServer();//实例化类  final Queue patientList = qs.init();//初始化队列服务器

final Text txt = new Text(shell,SWT.MULTI);                                       //建立窗口里文本的的大小     txt.setBounds(150, 50, 500, 450);

final Button button = new Button(shell, SWT.Activate);                        //设置一个button按钮

123.png

button.addSelectionListener(new SelectionAdapter() {                     //鼠标单击按钮事件          public void widgetSelected(SelectionEvent e) {

Patient p = new Patient();

p.setNum(patientList.size()+1);

p.setFrontNum(patientList.size());

patientList.offer(p);

if(patientList.size() <= 48){

txt.setText( "您好!您现在排在"+p.getNum()+"位置上,\n\n您前面有"+p.getFrontNum()+"个病人需要看病\n\n请您耐心等候吧!\n\n\n\n若您为急诊,则直接去急诊室看病就可以了!");

}else{

txt.setText("您现在排在"+p.getNum()+"位置上,\n\n\n您前面已经超过36个病人等待了,请您尽快选择换地吧!给你带来的不便,望您见谅!\n");

}   }

});

button.setBounds(300, 530, 200, 75);                                                     / 设置按钮位置  button.setFont(new Font(display,"华文楷体",12,SWT.BOLD));

button.setText("生病挂号");                                                                  // 设置按钮上的文字

shell.layout();

shell.open();                                                                            //打开窗口  while (!shell.isDisposed()) {                                                    //支撑窗口在不点击任何按钮时一直保留在桌面上   if (!display.readAndDispatch())

display.sleep();

}

}

}

22.png

4)、再封装一个急救病人的类(PatientHuarry)!方法和封装病人的类基本一样。

package com.dr.patient;

public class PatientHuarry {

private int num;                                    //两个急求病人的属性   private int frontNum;

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;

}

}

5)、再从新构建一个新的队列(patienthuarryList),让其承载急救病人,而进入队列的方法思维也是和Patient的类一样

public class PatientServerH {

Queue patienthuarryList = new LinkedList();

public Queue init(){

for(int i=1;i<=16;i++){                               //这对列能放的人数   PatientHuarry ph = new PatientHuarry();

ph.setNum(i);

ph.setFrontNum(i-1);

patienthuarryList.offer(ph);

}

return patienthuarryList;

}

}

6)、最后构建医生专家按病人挂号排序就诊的页面!而为急诊的病人,则不需挂号,直接去急诊室就诊。

医生专家的UI界面:

33.png

public class DoctorUI {

public static void main(String[] args) {

final Display display = Display.getDefault();

final Shell shell = new Shell();

shell.setBounds(200, 150, 1000, 600);

shell.setText("医生专家服务端");

// ------------------新插入的界面核心代码------------------------  PatientServer qs = new PatientServer();                         //实例化类     final Queue patientList = qs.init();                 //初始化队列服务器

PatientServerH qsh = new PatientServerH();

final Queue patienthuarryList = qsh.init();

final Text txt1 = new Text(shell,SWT.MULTI);                        //创建四个文本窗口     txt1.setBounds(80, 50, 170, 300);

final Text txt2 = new Text(shell,SWT.MULTI);

txt2.setBounds(300, 50, 170, 300);

final Text txt3 = new Text(shell,SWT.MULTI);

txt3.setBounds(520, 50, 170, 300);

final Text txt4 = new Text(shell,SWT.MULTI);

txt4.setBounds(740, 50, 170, 300);

// 事件代码里要访问button     final Button button1 = new Button(shell, SWT.Activate);                         // button1的事件方法     button1.addSelectionListener(new SelectionAdapter() {                     // 加一个选择监听器     public void widgetSelected(SelectionEvent e) {

Patient p= patientList.poll();                    //弹出一个队列中的病人

if(p!=null){

txt1.setText(p.getNum()+"号病人请到内科专家处看病\n\n我们部门在一层左拐第一间,\n很乐意为您看病!!\n\n\n\n\n\n\n\n您好!请按时吃药!");

}

else{

txt1.setText("现在没有等候的病人了,\n可以喝杯水了哈");

}

}

});

button1.setBounds(120, 400, 90, 40);               // 设置按钮位置      button1.setText("内科专家");                           // 设置按钮上的文字

final Button button2 = new Button(shell, SWT.Activate);                        // button2的事件方法

button2.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

Patient p= patientList.poll();

if(p!=null){

txt2.setText(p.getNum()+"号病人请到外科专家处看病\n\n我们部门在二层右拐第三间,\n很乐意为您看病!!\n\n\n\n\n\n\n\n您好!请慢走!");

}

else{

txt2.setText("现在没有等候的病人了,\n可以喝杯水了哈");

}    }

});

button2.setBounds(340, 400, 90, 40);

button2.setText("外科专家");

final Button button3 = new Button(shell, SWT.Activate);                         // button3的事件方法

button3.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

Patient p= patientList.poll();

if(p!=null){

txt3.setText(p.getNum()+"号病人请到放射科科专家处看病\n\n我们部门在一层右拐最里一间,\n很乐意为您看病!!\n\n\n\n\n\n\n\n您好!请注意调理!");

}

else{

txt3.setText("现在没有等候的病人了,\n可以喝杯水了哈!");         }

}

});

button3.setBounds(560, 400, 90, 40);

button3.setText("放射科专家");

final Button button4 = new Button(shell, SWT.Activate);                       // button4的事件方法

button4.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

PatientHuarry ph= patienthuarryList.poll();

if(ph!=null){

txt4.setText(ph.getNum()+"号急诊病人请到急诊专家处看病\n我们部门在一层左拐第三间,\n很乐意为您看病!!\n\n\n\n由于的您病情比较着急,\n我们会全力为您治疗,\n请您放心!!\n\n\n\n\n\n\n\n您好!请保重身体!");

}

else{

txt4.setText("现在没有急诊的病人了,\n我们可以休息会儿了!\n嘻嘻!");          }

}

});

button4.setBounds(780, 400, 90,40);

button4.setText("急诊专家");

shell.layout();

shell.open();

while (!shell.isDisposed()) {                                   //同样为支撑窗口在不点击任何按钮时一直保留在桌面上

if (!display.readAndDispatch())

display.sleep();

}

}

}

总结:这小程序主要是根据医院服务需求,做了简单的病人看病需要挂号,而医生作诊同样需要呼叫病人,这就无形中减少了病人和医生之间话费时间的联系!            在编辑这个程序的过程中,主要还是用到的一些窗口的控件及其方法。

最后也希望在看后我程序的人,给与我点评!我想从大家的想法中学到更多的东西,谢谢!

afbf141484669bf041828b3365009d29.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值