Swift 程序添加订单金额过滤和取送件距离功能

本文将介绍如何在 Swift 程序中添加订单金额过滤功能和取送件距离功能。通过这些功能,用户可以根据订单金额筛选订单,并根据取送件距离对订单进行排序。

首先,在 Order 类中添加 amount 和 distance 属性:

class Order {
    var orderID: String
    var restaurant: String
    var customer: String
    var orderTime: Date
    var amount: Double
    var distance: Double
    
    init(orderID: String, restaurant: String, customer: String, orderTime: Date, amount: Double, distance: Double) {
        self.orderID = orderID
        self.restaurant = restaurant
        self.customer = customer
        self.orderTime = orderTime
        self.amount = amount
        self.distance = distance
    }
}

接着,在 OrderManager 类中添加过滤和排序方法:

class OrderManager {
    // ...
    
    func filterOrdersByAmount(minAmount: Double, maxAmount: Double) -> [Order] {
        return orders.filter { $0.amount >= minAmount && $0.amount <= maxAmount }
    }
    
    func sortOrdersByDistance() {
        orders.sort { $0.distance < $1.distance }
    }
    
    // ...
}

最后,在程序中进行测试:

let order1 = Order(orderID: '123', restaurant: 'Restaurant A', customer: 'Customer 1', orderTime: Date(), amount: 50.0, distance: 2.5)
let order2 = Order(orderID: '456', restaurant: 'Restaurant B', customer: 'Customer 2', orderTime: Date(), amount: 30.0, distance: 1.0)
let order3 = Order(orderID: '789', restaurant: 'Restaurant C', customer: 'Customer 3', orderTime: Date(), amount: 40.0, distance: 3.0)

let deliveryPerson1 = DeliveryPerson(name: 'John')
let deliveryPerson2 = DeliveryPerson(name: 'Jane')

let orderManager = OrderManager(orders: [order1, order2, order3], deliveryPersons: [deliveryPerson1, deliveryPerson2])

// Display all orders
orderManager.displayOrders()

// Filter orders by amount
let filteredOrders = orderManager.filterOrdersByAmount(minAmount: 30.0, maxAmount: 50.0)
print("\nFiltered Orders:")
for order in filteredOrders {
    print('Order ID: (order.orderID)')
    print('Restaurant: (order.restaurant)')
    print('Customer: (order.customer)')
    print('Order Time: (order.orderTime)')
    print('Amount: (order.amount)')
    print('Distance: (order.distance)')
}

// Sort orders by distance
orderManager.sortOrdersByDistance()

// Display all orders after sorting
print("\nSorted Orders:")
orderManager.displayOrders()

// Assign order to delivery person
orderManager.assignOrder(orderID: '789', to: deliveryPerson1)

// Display all orders after assigning order
print("\nOrders after assigning:")
orderManager.displayOrders()

这样,就可以根据订单金额进行过滤,并根据取送件距离进行排序了。

Swift 程序添加订单金额过滤和取送件距离功能

原文地址: http://www.cveoy.top/t/topic/qpoi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录