0
点赞
收藏
分享

微信扫一扫

Java语言实现洗衣店顾客洗衣管理程序

摘要

随着人们生活节奏的加快,洗衣店作为提供便捷服务的行业逐渐兴起。一个高效的洗衣管理系统不仅能提升服务效率,还能增强顾客的满意度。本文将详细介绍如何使用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项目,命名为LaundryManagementSystem

3. 顾客和洗衣订单类设计与实现

3.1 顾客类的设计

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

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

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

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

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

3.2 洗衣订单类的设计

洗衣订单类LaundryOrder将用于存储每个洗衣订单的详细信息。

import java.util.Date;

public class LaundryOrder {
    private String orderId; // 订单编号
    private Customer customer; // 顾客信息
    private String itemDescription; // 洗涤物品描述
    private double price; // 洗衣费用
    private Date orderDate; // 订单日期
    private Date completionDate; // 完成日期

    // 构造方法
    public LaundryOrder(String orderId, Customer customer, String itemDescription, double price) {
        this.orderId = orderId;
        this.customer = customer;
        this.itemDescription = itemDescription;
        this.price = price;
        this.orderDate = new Date(); // 默认当前日期
    }

    // Getter和Setter方法
    public String getOrderId() { return orderId; }
    public Customer getCustomer() { return customer; }
    public String getItemDescription() { return itemDescription; }
    public double getPrice() { return price; }
    public Date getOrderDate() { return orderDate; }
    public Date getCompletionDate() { return completionDate; }

    public void setCompletionDate(Date completionDate) {
        this.completionDate = completionDate;
    }

    @Override
    public String toString() {
        return "LaundryOrder{" +
                "orderId='" + orderId + '\'' +
                ", customer=" + customer +
                ", itemDescription='" + itemDescription + '\'' +
                ", price=" + price +
                ", orderDate=" + orderDate +
                ", completionDate=" + completionDate +
                '}';
    }
}

4. 洗衣管理系统

为了管理顾客和洗衣订单,我们需要设计一个LaundryManagementSystem类来处理这些操作。

4.1 LaundryManagementSystem类的设计

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

public class LaundryManagementSystem {
    private List<Customer> customers; // 顾客列表
    private List<LaundryOrder> orders; // 洗衣订单列表

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

    // 添加顾客
    public void addCustomer(Customer customer) {
        customers.add(customer);
    }

    // 添加洗衣订单
    public void addOrder(LaundryOrder order) {
        orders.add(order);
    }

    // 显示所有顾客
    public void displayCustomers() {
        for (Customer customer : customers) {
            System.out.println(customer);
        }
    }

    // 显示所有洗衣订单
    public void displayOrders() {
        for (LaundryOrder order : orders) {
            System.out.println(order);
        }
    }

    // 统计总收入
    public double calculateTotalIncome() {
        double total = 0;
        for (LaundryOrder order : orders) {
            total += order.getPrice();
        }
        return total;
    }
}

4.2 增加功能

LaundryManagementSystem类中增加一个方法来查询特定顾客的所有洗衣订单:

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

5. 用户界面设计与实现

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

5.1 创建主界面

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

public class MainFrame extends JFrame {
    private LaundryManagementSystem laundryManagementSystem;

    public MainFrame() {
        laundryManagementSystem = new LaundryManagementSystem();

        setTitle("洗衣店顾客管理系统");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 添加按钮和面板
        JPanel panel = new JPanel();
        JButton addCustomerButton = new JButton("添加顾客");
        JButton addOrderButton = new JButton("添加洗衣订单");
        JButton viewCustomersButton = new JButton("查看顾客");
        JButton viewOrdersButton = new JButton("查看洗衣订单");
        JButton calculateIncomeButton = new JButton("计算总收入");

        panel.add(addCustomerButton);
        panel.add(addOrderButton);
        panel.add(viewCustomersButton);
        panel.add(viewOrdersButton);
        panel.add(calculateIncomeButton);

        add(panel, BorderLayout.SOUTH);

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

        addOrderButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                addOrder();
            }
        });

        viewCustomersButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                viewCustomers();
            }
        });

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

        calculateIncomeButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                calculateTotalIncome();
            }
        });
    }

    private void addCustomer() {
        String customerId = JOptionPane.showInputDialog("请输入顾客编号");
        String name = JOptionPane.showInputDialog("请输入顾客姓名");
        String phone = JOptionPane.showInputDialog("请输入顾客电话");

        Customer customer = new Customer(customerId, name, phone);
        laundryManagementSystem.addCustomer(customer);
        JOptionPane.showMessageDialog(this, "顾客添加成功");
    }

    private void addOrder() {
        String orderId = JOptionPane.showInputDialog("请输入订单编号");
        String customerId = JOptionPane.showInputDialog("请输入顾客编号");
        String itemDescription = JOptionPane.showInputDialog("请输入洗涤物品描述");
        double price = Double.parseDouble(JOptionPane.showInputDialog("请输入洗衣费用"));

        Customer customer = null;
        for (Customer c : laundryManagementSystem.getCustomers()) {
            if (c.getCustomerId().equals(customerId)) {
                customer = c;
                break;
            }
        }

        if (customer == null) {
            JOptionPane.showMessageDialog(this, "顾客不存在,无法添加订单");
            return;
        }

        LaundryOrder order = new LaundryOrder(orderId, customer, itemDescription, price);
        laundryManagementSystem.addOrder(order);
        JOptionPane.showMessageDialog(this, "洗衣订单添加成功");
    }

    private void viewCustomers() {
        StringBuilder customersList = new StringBuilder();
        for (Customer customer : laundryManagementSystem.getCustomers()) {
            customersList.append(customer.toString()).append("\n");
        }
        JOptionPane.showMessageDialog(this, customersList.toString(), "顾客列表", JOptionPane.INFORMATION_MESSAGE);
    }

    private void viewOrders() {
        StringBuilder ordersList = new StringBuilder();
        for (LaundryOrder order : laundryManagementSystem.getOrders()) {
            ordersList.append(order.toString()).append("\n");
        }
        JOptionPane.showMessageDialog(this, ordersList.toString(), "洗衣订单列表", JOptionPane.INFORMATION_MESSAGE);
    }

    private void calculateTotalIncome() {
        double totalIncome = laundryManagementSystem.calculateTotalIncome();
        JOptionPane.showMessageDialog(this, "总收入为: " + totalIncome);
    }

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

5.2 完善用户界面

继续完善其他功能的用户界面,增加查看特定顾客的所有洗衣订单的功能。

6. 功能测试与优化

6.1 功能测试

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

6.2 性能优化

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

举报

相关推荐

0 条评论