用java帮我写一个医院排队叫号系统,要求支持微信预约
时间: 2023-08-16 16:06:28 浏览: 163
好的,我可以为您提供一个简单的医院排队叫号系统的Java实现。以下是一个基本的实现,它包含了以下功能:
1. 添加病人到队列中
2. 按照预约时间排序队列
3. 叫号
4. 支持微信预约
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class HospitalQueue {
private List<Patient> queue;
private int lastNumber;
public HospitalQueue() {
queue = new ArrayList<>();
lastNumber = 0;
}
public void addPatient(Patient patient) {
queue.add(patient);
Collections.sort(queue, new Comparator<Patient>() {
@Override
public int compare(Patient p1, Patient p2) {
return p1.getAppointmentTime().compareTo(p2.getAppointmentTime());
}
});
}
public void callNextPatient() {
if (queue.isEmpty()) {
System.out.println("队列为空");
return;
}
Patient nextPatient = queue.get(0);
queue.remove(0);
lastNumber++;
System.out.println("请" + nextPatient.getName() + "到" + nextPatient.getDepartment() + "就诊,号码是" + lastNumber);
}
public void reserve(String name, String department, String appointmentTime) {
Patient patient = new Patient(name, department, appointmentTime);
addPatient(patient);
System.out.println("预约成功!");
}
}
class Patient {
private String name;
private String department;
private String appointmentTime;
public Patient(String name, String department, String appointmentTime) {
this.name = name;
this.department = department;
this.appointmentTime = appointmentTime;
}
public String getName() {
return name;
}
public String getDepartment() {
return department;
}
public String getAppointmentTime() {
return appointmentTime;
}
}
```
在这个实现中,我们使用了一个 `Patient` 类来存储病人的信息,包括姓名、科室和预约时间。`HospitalQueue` 类表示整个叫号系统,包括添加病人到队列中、按照预约时间排序队列、叫号和支持微信预约等功能。
在 `addPatient` 方法中,我们使用了 `Collections.sort` 方法来按照预约时间对队列进行排序。
在 `callNextPatient` 方法中,我们检查队列是否为空,如果是,则输出“队列为空”;否则,我们从队头取出下一个病人,并从队列中删除该病人。然后,我们将最后一个号码加1,并输出叫号信息。
在 `reserve` 方法中,我们创建一个新的病人对象并将其添加到队列中。我们还输出“预约成功!”以告知病人他们的预约已经成功。
这只是一个简单的实现,您可以根据您的需求进行修改和扩展。同时,如果您想要实现微信预约功能,您需要使用微信开发者工具和相关API来实现。
阅读全文