2011-06-21 60 views
0

我正在嘗試創建一個Android應用程序來幫助計算拆分賬單,如果假設您在2人以上的聚會中外出就餐。Bill Splitter Calculator Android應用程序邏輯

您應該輸入賬單的小計,輸入派對中的人數,輸入適用的折扣(如果有的話),有7個稅的複選框和10%的服務費(如果沒有)已被納入該法案。最後,您只需點擊應用程序的「計算按鈕」即可計算每個人需要支付的金額。

該方案需要小計金額,當用戶輸入它, 計算額外折扣,如果有任何,採取折扣後的金額, 計算附加7%消費稅的稅收,如果該複選框被選中,或者什麼都不做如果取消選中 ,則計算額外的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); 

預先感謝您爲您的所有類型的反饋的。

+0

嗯 - 爲什麼硬編碼稅?或任何酬金或服務費用?這些事情各不相同 – jkhouw1

+0

它看起來像結果將繼續增加,如果用戶一直在切換gst複選框 –

+0

有沒有關於我該如何處理這個問題的建議,以便在用戶保持切換複選框時不會繼續增加? 硬編碼的原因是,因爲在我居住的國家,稅收和服務費用是固定的。 :) –

回答

0

爲什麼不像使用calulator一樣使用邏輯?輸入總帳單,輸入人數,輸入稅金並輸入小費。

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

說實話,我不entirly知道是什麼原因讓您這麼多麻煩。編輯1:作爲後面的想法,當你和我的朋友和我出去時,我們只爲我們付出什麼;我們不會均勻分割標籤。也許你可以考慮添加這種功能?

編輯2:要解決您的評論,您總是將結果設置爲至少結果。當複選框未選中時,您需要將其設置迴應用程序默認值。也許if (!isChecked) result = 1;

+0

感謝您的反饋和附加功能...我會嘗試一下。謝謝 :) –