您当前的位置:首页 > 计算机 > 编程开发 > Java

java代码实现二元一次方程

时间:02-09来源:作者:点击数:

前言

最近和朋友打羽毛球,6个人参加了羽毛球活动,打完了要计算平均每个人的费用,如果每次都用纸和笔来算就会比较麻烦,所以我就写了一个Android的程序来实现自动计算的功能。

用纸和笔计算二元一次方程

举行一次羽毛球活动,有4个男生和2个女生参加。费用由场地费和球费组成,场地费是150元,球费是30元,总共费用是180元,费用AA,出于对女生的关爱,女生优惠5元,也就是女生的平均费用比男生少5元,求男生平均费用是多少,女生平均费用是多少。

这道题,通过二元一次方程可轻松解决,这是初中的数学知识,假设男生的平均费用为x元,女生的平均费用为y元,解题步骤如下:

在这里插入图片描述

用Java代码计算二元一次方程

虽说用笔和纸计算二元一次方程很简单,但是每次打完球都需要拿纸和笔这么计算一下的话也是挺麻烦的,所以我就想到了用代码来帮助我们自动完成计算,简单省事。如上面的截图,我们用纸和笔计算二元一次方程时,是分解成了很多步的,但是在Java代码中,没办法这样照搬实现,我们需要把这多个分解写成一个公式,一步完成。

在Java中,各种数据都可以使用变量来表示,所以我先声明各种变量,如下:

  • totalCost:总费用
  • boyCount:男生人数
  • girlCount:女生人数
  • girlDiscounts:女生优惠金额
  • girlAverageCost:女生平均费用
  • boyAverageCost:男生平均费用

根据前面用纸和笔的解题思路,我们换成对应的变量,如下:

  • 男生平均费用 - 女生平均费用 = 女生优惠费用,变量表示如下:
    • boyAverageCost-girlAverageCost=girlDiscounts通过变换可得:
    • boyAverageCost=girlDiscounts+girlAverageCost,即:男生平均费用 = 女生优惠费用 + 女生平均费用
  • 所有男生的费用 + 所有女生的费用 = 总费用,变量表示如下:
    • boyCount*boyAverageCost+girlCount*girlAverageCost=totalCost,通过变换可得:
    • boyCount*girlDiscounts+boyCount*girlAverageCost+girlCount*girlAverageCost=totalCost,简化可得:
    • boyCount*girlDiscounts+ (boyCount+girlCount) *girlAverageCost=totalCost,再简化可得:
    • (boyCount+girlCount) *girlAverageCost=totalCost-boyCount*girlDiscounts,再简化可得:
    • girlAverageCost= (totalCost-boyCount*girlDiscounts) / (boyCount+girlCount)

OK,这里我们还是人工一步一步的进行了换算,但是最后我们得出一个公式来计算女生的平均费用,得到女生的平均费用之后再计算男生的就简单了,男生费用比女生费用多girlDiscounts元,所以:boyAverageCost=girlAverageCost+girlDiscounts

总结就是两条公式,一条计算女生平均费用的,一条计算男生平均费用的如下:

  • girlAverageCost= (totalCost-boyCount*girlDiscounts) / (boyCount+girlCount)
  • boyAverageCost=girlAverageCost+girlDiscounts

公式有了,接下来就可以用代码来实验一下了,这里我就使用Kotlin语言了,和Java语言差不多的,还是之前的那个题目,总费用是180,4个男生2个女生,女生的平均费用比男生少5元,分别计算出男生、女生的平均费,代码如下:

fun main() {
    val totalCost = 180f   // 总费用
    val boyCount = 4       // 男生人数
    val girlCount = 2      // 女生人数
    val girlDiscounts = 5f // 女生优惠

    // 计算女生平均费用
    val girlAverageCost = (totalCost - boyCount * girlDiscounts) / (boyCount + girlCount)

    // 计算男生平均费用
    val boyAverageCost = girlAverageCost + girlDiscounts

    // 打印结果
    println("男生平均费用:$boyAverageCost")
    println("女生平均费用:$girlAverageCost")
}

打印结果如下:

男生平均费用:31.666666
女生平均费用:26.666666

我们以后只需要修改代码中前面的4个变量的值,就可以自动计算出男生、女生的平均费用了。

这里需要注意的是,金额的计算有可能会有小数,所以在声明总费用和女生优惠金额时,我使用了float类型,这样的计算结果就会保留小数,比较精确。

Android程序实现

有了计算公式,我们就可以实现一个Android程序了,可以安装在自己的Android手机上,这样以后打完羽毛球后计算费用时,打开此应用就可以轻松的计算平均费用了,这里我增加了更多的输入,应用截图如下:

在这里插入图片描述

这里必须要输入的只有两项,其它的可以填0或者删除留空,必须要输入的2项如下:

  • 场地费加球费
  • 男生人数

输入这两项后点击“开始计算结果”按钮就能算出男生的平均每人费用,如果只有女生,则把女生当成男生就行了,即把女生人数输入到男生人数的地方进行计算,如果男女费用一样,则男女人数相加后填入男生人数的地方进行计算。如果男女费用不一样,才需要分开输入男女人数,然后再填入女生优惠。

其它的选项,看情况输入,比如输入一桶球的价格,程序就会自动计算出平均每个球的价格(按一桶球12个球计算),然后我们再输入总共用了多少个球,程序会自动计算出球的总消费,我们再输入场地的价格,程序会自动计算场地加球的总费用。

具体实现代码托管在码云上,可自行下载修改:https://gitee.com/daizhufei/badminton-charge-calculator,如果不需要修改,也可以直接下载apk安装到手机上直接使用:https://gitee.com/daizhufei/badminton-charge-calculator/raw/master/app/release/BadmintonChargeCalculator.apk

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门