一、基于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<String> queue;public QueueCaller(){queue=new ArrayList<String>();}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中定义的方法,实现了在主函数里调用方法。