You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求拆分电话账单计算器的税费、超量费计算方法并生成明细账单

电话账单计算器代码重构(方法拆分版)

下面是拆分后的完整代码,将计算逻辑拆分为独立方法,同时添加了明细账单打印功能:

import java.util.*

fun main(args: Array<String>) {
    print("Enter the Total Minutes of Calls Made this Month: ")
    val scanner = Scanner(System.`in`)
    val totalMinutes = scanner.nextInt()

    // 调用拆分后的方法计算各项费用
    val excessMinutes = calculateExcessMinutes(totalMinutes)
    val excessFee = calculateExcessFee(excessMinutes)
    val subtotal = calculateSubtotal(excessFee)
    val taxAmount = calculateTax(subtotal)
    val totalBill = calculateTotal(subtotal, taxAmount)

    // 打印明细账单
    printBillDetails(totalMinutes, excessMinutes, excessFee, subtotal, taxAmount, totalBill)
}

// 计算超出套餐的分钟数(套餐包含60分钟)
fun calculateExcessMinutes(totalMinutes: Int): Int {
    return maxOf(totalMinutes - 60, 0)
}

// 计算超量通话费用(每分钟0.25)
fun calculateExcessFee(excessMinutes: Int): Double {
    return excessMinutes * 0.25
}

// 计算账单小计(套餐基础费10元 + 超量费用)
fun calculateSubtotal(excessFee: Double): Double {
    return 10.0 + excessFee
}

// 计算税费(小计的15%)
fun calculateTax(subtotal: Double): Double {
    return subtotal * 0.15
}

// 计算最终总额(小计 + 税费)
fun calculateTotal(subtotal: Double, taxAmount: Double): Double {
    return subtotal + taxAmount
}

// 打印明细账单
fun printBillDetails(
    totalMinutes: Int,
    excessMinutes: Int,
    excessFee: Double,
    subtotal: Double,
    taxAmount: Double,
    totalBill: Double
) {
    println("\n=== 电话账单明细 ===")
    println("本月总通话时长: $totalMinutes 分钟")
    println("套餐包含时长: 60 分钟")
    println("超出套餐时长: $excessMinutes 分钟")
    println("超量通话费用: $%.2f".format(excessFee))
    println("套餐基础费用: 10.00")
    println("账单小计: $%.2f".format(subtotal))
    println("税费(15%): $%.2f".format(taxAmount))
    println("最终账单总额: $%.2f".format(totalBill))
}

拆分说明

  • 单一职责原则:每个方法只负责一项计算逻辑,比如calculateExcessMinutes仅处理超量分钟数的计算,calculateTax仅处理税费计算,代码更易维护和测试。
  • 可读性提升:通过方法名就能清晰理解每个步骤的功能,无需阅读具体实现逻辑。
  • 明细账单:新增printBillDetails方法,将各项费用明细逐一打印,用户能清晰看到费用构成。

内容的提问来源于stack exchange,提问作者C0pper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:05:54