Java实现预约功能

在现代应用中,预约功能是一个非常常见的模块,无论是在酒店、医疗还是服务行业。利用Java实现预约功能可以帮助用户方便地管理时间和资源。本文将通过一个简单的示例来展示如何在Java中实现一个基本的预约功能。

项目设定

我们将实现一个简单的预约系统,支持用户添加预约、查看所有预约以及删除预约。在这个系统中,我们将使用一个集合来存储预约信息。为了简化实现,我们假设每个预约只有一个名称和一个日期。

数据结构

首先,我们需要定义一个Appointment类,表示一次预约。这个类将包含预约的名称和日期信息。

import java.time.LocalDate;

public class Appointment {
    private String name;
    private LocalDate date;

    public Appointment(String name, LocalDate date) {
        this.name = name;
        this.date = date;
    }

    public String getName() {
        return name;
    }

    public LocalDate getDate() {
        return date;
    }

    @Override
    public String toString() {
        return "预约名称: " + name + ", 日期: " + date;
    }
}

预约管理类

接下来,我们创建一个AppointmentManager类来管理所有的预约。这个类将提供添加、查看和删除预约的方法。

import java.util.ArrayList;
import java.util.List;

public class AppointmentManager {
    private List<Appointment> appointments;

    public AppointmentManager() {
        appointments = new ArrayList<>();
    }

    public void addAppointment(Appointment appointment) {
        appointments.add(appointment);
        System.out.println("添加预约: " + appointment);
    }

    public void viewAppointments() {
        if (appointments.isEmpty()) {
            System.out.println("没有任何预约。");
            return;
        }
        System.out.println("所有预约:");
        for (Appointment appointment : appointments) {
            System.out.println(appointment);
        }
    }

    public void deleteAppointment(String name) {
        boolean removed = appointments.removeIf(appointment -> appointment.getName().equals(name));
        if (removed) {
            System.out.println("删除预约: " + name);
        } else {
            System.out.println("未找到预约: " + name);
        }
    }
}

主程序

在主程序中,我们将创建一个AppointmentManager实例,并通过控制台与用户交互,以执行添加、查看和删除预约的操作。

import java.time.LocalDate;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        AppointmentManager manager = new AppointmentManager();
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("请选择操作:");
            System.out.println("1: 添加预约");
            System.out.println("2: 查看所有预约");
            System.out.println("3: 删除预约");
            System.out.println("0: 退出");
            int choice = scanner.nextInt();
            scanner.nextLine(); // 消费换行符

            switch (choice) {
                case 1:
                    System.out.print("输入预约名称: ");
                    String name = scanner.nextLine();
                    System.out.print("输入预约日期 (YYYY-MM-DD): ");
                    LocalDate date = LocalDate.parse(scanner.nextLine());
                    manager.addAppointment(new Appointment(name, date));
                    break;
                case 2:
                    manager.viewAppointments();
                    break;
                case 3:
                    System.out.print("输入要删除的预约名称: ");
                    String nameToRemove = scanner.nextLine();
                    manager.deleteAppointment(nameToRemove);
                    break;
                case 0:
                    System.out.println("退出系统");
                    scanner.close();
                    return;
                default:
                    System.out.println("无效选择,请重试。");
            }
        }
    }
}

代码解析

  1. 预约类Appointment类包含预约名称和日期,并重写了toString()方法以便于打印。

  2. 管理类AppointmentManager类使用一个ArrayList存储预约,并提供了addAppointmentviewAppointmentsdeleteAppointment等方法供外部调用。

  3. 主程序:使用Scanner接收用户输入,实现基本的控制台交互,使用户能方便地管理预约。

总结

通过这种方式,我们实现了一个简单的预约功能。用户可以添加、查看和删除预约,使用Java语言的面向对象特性显著提高了代码的可读性和可维护性。这样的基础模块可以作为更复杂系统的基础,随着需求的增长还可以进一步扩展,比如添加用户身份验证、数据库支持等功能。希望这篇文章能对你理解Java预约功能的实现有所帮助!