Bill Splitter计算器Android App程序逻辑

时间:2011-06-21 14:27:51

标签: android

我正在尝试创建一个Android应用,以帮助计算拆分账单,如果让我们说你在2人或更多人的聚会中外出就餐。

您应该输入账单小计,输入参加方的人数,输入适用的折扣(如果有的话),有7个税率的2个复选框,如果没有则有10%的服务费用包括在法案中。最后,您只需点击应用程序的“计算按钮”即可计算每个人必须支付的费用。

程序在用户输入时采用小计金额, 计算额外折扣,如果有,请扣除折扣后的金额, 如果选中该复选框,则计算额外的7%GST税,或者如果未选中则不执行任何操作 如果选中该复选框,则计算额外的10%提示,如果未选中则不执行任何操作。

我不确定我执行程序的逻辑,如果有人可以查看并提供反馈,也会感激不尽。该应用程序的逻辑应该是:

这是我写的代码:

    gst = (CheckBox) findViewById(R.id.cbCheck1);
    gst.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (gst.isChecked()) {
                result = result + (0.07 * result);
            } else {
                result = result;
            }
        }
    });


    tips = (CheckBox) findViewById(R.id.cbCheck2);
    tips.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (tips.isChecked()) {
                result = result + (0.1 * result);
            } else {
                result = result;
            }
        }
    });  

    //Initialize EditTexts
    String amount = enterAmount.getText().toString();
    double subtotal = Double.valueOf(amount).doubleValue();

    String diners = numberDiners.getText().toString();
    int people = Integer.parseInt(diners);

    String disc = enterDiscount.getText().toString();
    int discount = Integer.parseInt(disc);
    double discounted = discount / 100;

    result = (1 - discounted) * (subtotal / people);  

提前感谢您提供的所有反馈意见。

1 个答案:

答案 0 :(得分:0)

为什么不像使用calulator一样使用逻辑?输入总帐单,输入人数,输入税金并输入提示。

1) total = total * (1+tax)
2) total = total * (1+tip)
3) totalPerPerson = total / numPeeps

说实话,我并不十分确定是什么让你如此麻烦。

编辑1:作为一个后悔的想法,有些东西供你考虑,当我的朋友和我出去时,我们只为我们得到的东西买单;我们不会均匀地拆分标签。也许您可以考虑添加这种功能吗?

编辑2:要解决您的评论,您始终将结果设置为至少结果。如果取消选中该复选框,则需要将其设置回应用程序默认值。也许if (!isChecked) result = 1;