一、基于OBE模式的实验目的和要求
要求复习课件中理论知识;练习课堂所讲的例子;编写程序完成以下实验目标并上交实验报告(包括电子文档与纸质文档)。
- 能够根据Java集合框架,利用迭代方法编程实现对集合的遍历操作。
- 能够熟练使用泛型接口、泛型类和泛型方法实现程序开发。
- 能够熟练使用反射机制。
二、实验仪器和设备
微型计算机、Eclipse编程环境。
三、实验过程(选择一个完成)
1、以患者到医院就诊为背景,使用列表对象(ArrayList)和泛型机制实现就诊排队叫号系统。要求如下:
- 定义叫号器类QueueCaller,包含成员变量ArrayList类型的queue(排队对象)。该类实现功能如下:a)患者取号排队方法fetchNumber,加入等待队列,并显示当前等待人数;b) 实现负责叫号方法callNumber,叫号后移除排队首患者,并显示其他等候人员。(注意:要求列表中以字符串类型存储患者姓名。)
- 编写测试类,实现下图效果:
package 实验报告.叫号系统;
class MainClass {
public static void main(String[] args){
QueueCaller Patient= new QueueCaller();
for(int i=1;i<=3;i++){
Patient.fetchNumber("张三-"+i);
}
Patient.FirstPatient();
while(Patient.size()!=0){
Patient.callNumber();
Patient.showPatients();
}
}
}
package 实验报告.叫号系统;
import java.util.*;
public class QueueCaller {
private ArrayList queue;
public QueueCaller(){
queue=new ArrayList();
}
public int size(){
return queue.size();
}
public void FirstPatient(){
System.out.println("请患者:"+queue.get(0)+"到诊室就诊!");
for(int i=1;i<=queue.size()-1;i++){
System.out.println(queue.get(i)+"候诊中");
}
}
public void fetchNumber(String patient){
queue.add(patient);
System.out.println(patient+"前面还有"+(size()-1)+"位在等候就诊");
}
public void showPatients(){
if(queue.isEmpty()){
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)+"到诊室就诊!");
}
}
实现结果
结果分析
运用了ArrayListqueue 存放了患者的名字,实现了患者名字的存入于显示,运用类的实例化,实例化了QueueCaller类,在QueueCaller类中定义了显示候诊人数方法,叫号方法,并且在测试中考虑到第一个人无法显示问题,又定义了一个第一个人显示方法。在Mianclass里调用了QueueCaller中定义的方法,实现了在主函数里调用方法。



