0
点赞
收藏
分享

微信扫一扫

Java语言实现宠物店宠物寄养管理程序

乐百川 2024-10-14 阅读 16

摘要

随着人们生活水平的提高和家庭结构的变化,越来越多的家庭选择养宠物。与此同时,宠物寄养服务也逐渐兴起。本文将详细介绍如何使用Java语言编写一个宠物店宠物寄养管理程序。该程序能够实现宠物信息管理、寄养订单管理、客户管理和服务统计等功能。通过示例代码和详细解释,读者将能够掌握如何设计和实现一个完整的宠物寄养管理系统,并学习Java编程的一些核心概念。

1. 引言

在现代社会,宠物逐渐成为家庭的一员,宠物的寄养和照顾需求日益增加。合理的宠物寄养管理系统可以帮助宠物店提高运营效率,提升客户满意度,减少管理成本。Java作为一种跨平台的编程语言,非常适合用于开发这样一个管理系统。

2. 开发环境准备

2.1 JDK安装

确保你的计算机上安装了Java Development Kit (JDK)。可以从Oracle官网下载最新版的JDK。

安装完成后,配置环境变量。打开命令行工具,输入以下命令以确认JDK安装成功:

java -version

2.2 IDE选择

建议使用集成开发环境(IDE),如Eclipse或IntelliJ IDEA。下载并安装一个你喜欢的IDE。

2.3 创建项目

在IDE中创建一个新的Java项目,命名为PetHotelManagementSystem

3. 宠物类设计与实现

3.1 宠物类的设计

宠物类Pet将包含宠物的基本信息。

public class Pet {
    private String id; // 宠物编号
    private String name; // 宠物姓名
    private String type; // 宠物类型(如狗、猫等)
    private String breed; // 宠物品种
    private int age; // 宠物年龄

    // 构造方法
    public Pet(String id, String name, String type, String breed, int age) {
        this.id = id;
        this.name = name;
        this.type = type;
        this.breed = breed;
        this.age = age;
    }

    // Getter和Setter方法
    public String getId() { return id; }
    public String getName() { return name; }
    public String getType() { return type; }
    public String getBreed() { return breed; }
    public int getAge() { return age; }

    @Override
    public String toString() {
        return "Pet{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", type='" + type + '\'' +
                ", breed='" + breed + '\'' +
                ", age=" + age +
                '}';
    }
}

3.2 客户类的设计

客户类Customer将包含客户的基本信息。

public class Customer {
    private String customerId; // 客户编号
    private String name; // 客户姓名
    private String phoneNumber; // 客户电话

    // 构造方法
    public Customer(String customerId, String name, String phoneNumber) {
        this.customerId = customerId;
        this.name = name;
        this.phoneNumber = phoneNumber;
    }

    // Getter和Setter方法
    public String getCustomerId() { return customerId; }
    public String getName() { return name; }
    public String getPhoneNumber() { return phoneNumber; }

    @Override
    public String toString() {
        return "Customer{" +
                "customerId='" + customerId + '\'' +
                ", name='" + name + '\'' +
                ", phoneNumber='" + phoneNumber + '\'' +
                '}';
    }
}

4. 寄养订单管理

在寄养订单管理模块中,我们需要设计一个BoardingOrder类来管理宠物寄养订单。

4.1 BoardingOrder类的设计

import java.util.Date;

public class BoardingOrder {
    private Pet pet;
    private Customer customer;
    private Date startDate; // 寄养开始日期
    private Date endDate; // 寄养结束日期
    private double price; // 寄养费用

    // 构造方法
    public BoardingOrder(Pet pet, Customer customer, Date startDate, Date endDate, double price) {
        this.pet = pet;
        this.customer = customer;
        this.startDate = startDate;
        this.endDate = endDate;
        this.price = price;
    }

    // Getter和Setter方法
    public Pet getPet() { return pet; }
    public Customer getCustomer() { return customer; }
    public Date getStartDate() { return startDate; }
    public Date getEndDate() { return endDate; }
    public double getPrice() { return price; }

    @Override
    public String toString() {
        return "BoardingOrder{" +
                "pet=" + pet +
                ", customer=" + customer +
                ", startDate=" + startDate +
                ", endDate=" + endDate +
                ", price=" + price +
                '}';
    }
}

5. 宠物寄养管理

我们需要一个PetHotelManager类来管理宠物的寄养信息。

5.1 PetHotelManager类的设计

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

public class PetHotelManager {
    private List<BoardingOrder> orders;

    public PetHotelManager() {
        orders = new ArrayList<>();
    }

    public void addOrder(BoardingOrder order) {
        orders.add(order);
    }

    public void displayOrders() {
        for (BoardingOrder order : orders) {
            System.out.println(order);
        }
    }

    public double calculateTotalEarnings() {
        double total = 0;
        for (BoardingOrder order : orders) {
            total += order.getPrice();
        }
        return total;
    }
}

5.2 增加功能

PetHotelManager类中增加方法以支持查询特定客户的所有寄养订单:

public List<BoardingOrder> getOrdersByCustomer(String customerId) {
    List<BoardingOrder> customerOrders = new ArrayList<>();
    for (BoardingOrder order : orders) {
        if (order.getCustomer().getCustomerId().equals(customerId)) {
            customerOrders.add(order);
        }
    }
    return customerOrders;
}

6. 用户界面设计与实现

为了使系统更易于使用,我们需要设计一个简单的用户界面。这里我们将使用Java Swing来实现图形界面。

6.1 创建主界面

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

public class MainFrame extends JFrame {
    private PetHotelManager petHotelManager;

    public MainFrame() {
        petHotelManager = new PetHotelManager();

        setTitle("宠物店寄养管理系统");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 添加按钮和面板
        JPanel panel = new JPanel();
        JButton addPetButton = new JButton("添加宠物");
        JButton addCustomerButton = new JButton("添加客户");
        JButton addOrderButton = new JButton("添加寄养订单");
        JButton viewOrdersButton = new JButton("查看寄养订单");

        panel.add(addPetButton);
        panel.add(addCustomerButton);
        panel.add(addOrderButton);
        panel.add(viewOrdersButton);

        add(panel, BorderLayout.SOUTH);

        // 添加按钮事件
        addOrderButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                addBoardingOrder();
            }
        });

        viewOrdersButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                viewOrders();
            }
        });
    }

    private void addBoardingOrder() {
        // 弹出对话框从用户获取寄养订单信息
        String petId = JOptionPane.showInputDialog("请输入宠物编号");
        String petName = JOptionPane.showInputDialog("请输入宠物姓名");
        String customerId = JOptionPane.showInputDialog("请输入客户编号");
        String customerName = JOptionPane.showInputDialog("请输入客户姓名");
        String startDateStr = JOptionPane.showInputDialog("请输入寄养开始日期 (yyyy-mm-dd)");
        String endDateStr = JOptionPane.showInputDialog("请输入寄养结束日期 (yyyy-mm-dd)");
        double price = Double.parseDouble(JOptionPane.showInputDialog("请输入寄养费用"));

        Pet pet = new Pet(petId, petName, "犬", "拉布拉多", 3); // 举例宠物
        Customer customer = new Customer(customerId, customerName, "123456789");

        // 解析日期
        Date startDate = new Date(); // 这里应有日期解析
        Date endDate = new Date(); // 这里应有日期解析

        BoardingOrder order = new BoardingOrder(pet, customer, startDate, endDate, price);
        petHotelManager.addOrder(order);
        JOptionPane.showMessageDialog(this, "寄养订单添加成功");
    }

    private void viewOrders() {
        petHotelManager.displayOrders();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            new MainFrame().setVisible(true);
        });
    }
}

6.2 完善用户界面

继续完善其他功能的用户界面,增加查看客户、宠物信息的界面和功能。

7. 功能测试与优化

7.1 功能测试

编写单元测试以验证每个类和方法的功能是否正常。例如,测试宠物类和客户类的getter和setter方法,确保它们能正确返回和设置属性值。

7.2 性能优化

检测可能的性能瓶颈,优化数据结构和算法。例如,对于寄养订单的管理,可以考虑使用HashMap来加速查询操作。

举报

相关推荐

0 条评论