MainClass public class MainClass { public static void main ( String [] args ) { // 创建默认叫号排队器 QueueCaller qc = new QueueCaller (); // 取3个号 for ( int i = 1 ; i = 3 ; i ++ ) { qc . fetchNumber ( "张山-" + i ); } while
MainClass
public class MainClass {public static void main(String[] args) {
// 创建默认叫号排队器
QueueCaller qc = new QueueCaller();
// 取3个号
for (int i = 1; i <= 3; i++) {
qc.fetchNumber("张山-" + i);
}
while (qc.size() != 0) {
qc.callNumber();
// 显示候诊信息
qc.showPatients();
}
}
}
QueueCaller
package cn.campsg.java.experiment;import java.util.ArrayList;
public class QueueCaller {
private ArrayList<String> queue;
public QueueCaller() {
//构造函数里创建实例
queue = new ArrayList<String>();
}
//获取容器中现有数量
public int size() {
return queue.size();
}
//向容器添加String类型的,此时第一个为就诊的,后面为等待就诊的
public void fetchNumber(String patient) {
queue.add(patient);
System.out.println(patient + "前面还有" + (size() - 1) + "位在等候就诊");
}
//这里是查看候诊中的
public void showPatients() {
if (queue.size() <= 1) {
return;
} else {
for (int i = 1; i <= queue.size() - 1; i++)
System.out.println(queue.get(i) + "候诊中");
}
}
//进行叫号,移除正在就诊的,然后进行呼叫下一个
public void callNumber() {
queue.remove(0);
if (queue.size() != 0)
System.out.println("请患者:" + queue.get(0) + "到诊室就诊!");
}
}
题目描述
1、实验要求本实验要求:以医院排队叫号就诊为业务背景,训练Java列表对象(List)的应用场景。
1-1. 业务说明:
1-1.1. 本实验以患者到医院就诊为业务背景,患者取号排队,等待叫号。
1-1.2. 叫号器负责叫号,叫号后移除排队的队首患者,并显示其他候诊人。
1-2. 创建工程并配置环境:
1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E039;
1-2.1. 限制2. 创建包,命名为:cn.campsg.java.experiment;
1-3. 创建排队叫号器业务类:
1-3.1. 限制1. 在cn.campsg.java.experiment.包中创建排队叫号器业务类:
1) 类名:QueueCaller。
1-3.2. 为QueueCaller类创建私有属性,要求如下:
属性权限
属性名称
属性类型
属性说明
private
queue
无
ArrayList<String>
患者排队列表
泛型说明:队列中存储的是患者姓名(字符串类型)。
1-3.3. 为QueueCaller类创建0参构造器:
1) 在构造器内实例化患者排队列表(queue)。
1-3.4. 为QueueCaller类创建获取患者数量的方法,要求如下:
访问权限
方法名称
返回值
方法参数
参数说明
public
size
int
无
无
方法说明:本方法获得当前正在排队候诊的患者数量。
1-3.5. size方法的业务逻辑实现要求如下:
1) 从排队队列queue中获取有效长度。
1-3.6. 为QueueCaller类创建取号的方法,要求如下:
访问权限
方法名称
返回值
方法参数
参数说明
public
fetchNumber
void
String patient
取号的患者
方法说明:本方法将就诊患者加入到排队队列(queue)中。
1-3.7. fetchNumber方法的业务逻辑实现要求如下:
1) 将就诊患者加入到排队队列(queue)中;
2) 输出患者排队就诊信息,信息如下:
患者姓名 + "前面还有 " + 排队人数+ " 位在等候就诊。"
1-3.8. 为QueueCaller类创建显示候诊患者信息的方法,要求如下:
访问权限
方法名称
返回值
方法参数
参数说明
public
showPatients
void
无
无
方法说明:本方法显示所有正在排队的患者姓名。
1-3.9. showPatients方法的业务逻辑实现要求如下:
1) 获取排队的所有患者姓名;
2) 输出每位患者的姓名,信息内容:
患者姓名 + " 候诊中"。
1-3.10. 为QueueCaller类创建叫号方法,要求如下:
访问权限
方法名称
返回值
方法参数
参数说明
public
callNumber
void
无
无
方法说明:按照取号顺序依次叫号。
1-3.11. callNumber方法的业务逻辑实现要求如下:
1) 从排队队列(queue)中返回队首患者姓名;
2) 移除队首患者(表示该患者已经就诊不在排队队列中)。
3) 输出被叫号的患者信息,信息内容:
"请患者:" + 患者姓名 + " 到诊室就诊!"。
1-4. 显示模拟叫号就诊情况:
1-4.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;
1-4.2. 为MainClass创建入口主方法:main。
1-4.3. 模拟3个患者排队就诊:
1) 在main方法中,创建1个排队叫号器(QueueCaller)对象;
2) 在main方法中,向叫号器对象存入3个患者姓名;
1-4.4. 模拟叫号:
1) 在main方法中,循环叫号直到没有就诊患者为止。
2) 每次叫号后均需显示正在排队的患者信息。