Java宿舍洗衣机统计

引言

在大学宿舍中,洗衣机是一个非常重要的设备。为了了解学生们在宿舍中使用洗衣机的情况,我们可以使用Java编程语言来开发一个简单的统计系统。这个系统可以帮助我们收集和分析洗衣机的使用数据,让我们更好地管理和维护宿舍设施。本文将介绍如何使用Java编写一个宿舍洗衣机统计系统,并提供示例代码帮助读者理解实现细节。

系统需求

在开始编写代码之前,我们需要明确系统的需求。根据需求,我们需要实现以下功能:

  1. 记录每个学生使用洗衣机的次数。
  2. 统计洗衣机的总使用次数。
  3. 统计洗衣机的平均使用次数。
  4. 按学生姓名查询洗衣机使用次数。

数据模型

为了实现上述功能,我们需要定义适当的数据模型。在本例中,我们将使用一个Student类来表示学生,并使用一个WashingMachine类来表示洗衣机。每个Student对象将有一个姓名和使用次数的属性,而每个WashingMachine对象将有一个使用次数的属性。

以下是Student类的示例代码:

public class Student {
    private String name;
    private int usageCount;
    
    public Student(String name) {
        this.name = name;
        this.usageCount = 0;
    }
    
    public String getName() {
        return name;
    }
    
    public int getUsageCount() {
        return usageCount;
    }
    
    public void incrementUsageCount() {
        usageCount++;
    }
}

以下是WashingMachine类的示例代码:

public class WashingMachine {
    private int usageCount;
    
    public WashingMachine() {
        this.usageCount = 0;
    }
    
    public int getUsageCount() {
        return usageCount;
    }
    
    public void incrementUsageCount() {
        usageCount++;
    }
}

统计系统实现

现在,我们可以开始编写宿舍洗衣机统计系统的核心逻辑。我们将创建一个LaundryStatistics类来实现统计功能。该类将包含一个Map对象,用于存储每个学生的使用次数。我们将使用学生的姓名作为键,使用次数作为值。

以下是LaundryStatistics类的示例代码:

import java.util.HashMap;
import java.util.Map;

public class LaundryStatistics {
    private Map<String, Student> studentMap;
    private WashingMachine washingMachine;
    
    public LaundryStatistics() {
        this.studentMap = new HashMap<>();
        this.washingMachine = new WashingMachine();
    }
    
    public void recordUsage(String studentName) {
        Student student = studentMap.getOrDefault(studentName, new Student(studentName));
        student.incrementUsageCount();
        washingMachine.incrementUsageCount();
        studentMap.put(studentName, student);
    }
    
    public int getTotalUsageCount() {
        return washingMachine.getUsageCount();
    }
    
    public double getAverageUsageCount() {
        if (studentMap.isEmpty()) {
            return 0;
        }
        
        int totalUsage = 0;
        for (Student student : studentMap.values()) {
            totalUsage += student.getUsageCount();
        }
        
        return (double) totalUsage / studentMap.size();
    }
    
    public int getUsageCountByStudent(String studentName) {
        Student student = studentMap.get(studentName);
        return student != null ? student.getUsageCount() : 0;
    }
}

使用示例

现在我们已经编写了宿舍洗衣机统计系统的代码,让我们看看如何使用它。

public class Main {
    public static void main(String[] args) {
        LaundryStatistics statistics = new LaundryStatistics();
        
        // 记录学生使用洗衣机的次数
        statistics.recordUsage("张三");
        statistics.recordUsage("李四");
        statistics.recordUsage("张三");
        statistics.recordUsage("王五");
        
        // 获取洗衣机的总使用次数
        int totalUsageCount = statistics.getTotalUsageCount();
        System.out.println("洗衣机总使用次数:" + totalUsageCount);
        
        // 获取洗衣机的平均使用次数
        double averageUsageCount = statistics.getAverageUsageCount();