1

私は解決策を見つけるために一生懸命働いてきましたが、まだサイコロはありません。switch ステートメントでケースの値を合計する方法を見つけようとして立ち往生しています。宿題の質問と進捗状況を提供します。クラスとclassTestが含まれます。提案をありがとう。

宿題 ?

大企業はコミッション ベースで営業担当者に支払います。営業担当者は、週に 200 ドルと、その週の総売上高の 9% を受け取ります。たとえば、1 週間に $5000 相当の商品を販売する販売員は、$200 と $5000 の 9%、つまり合計 $650 を受け取ります。各販売員が販売した商品のリストが提供されています。これらのアイテムの値は次のとおりです。 アイテム 値 1 239.99 2 129.75 3 99.95 4 350.89

ある販売員の先週の販売商品を入力し、その販売員の収益を計算して表示する Java アプリケーションを開発します。販売できるアイテムの数に制限はありません。

** * ** * ***私の問題:** * ** * ** * ** * ** * ** * ** * **

複数のアイテムを入力しようとすると、問題が発生します。プログラムは、1 つの項目だけを実行するときに機能します。ただし、複数回実行すると、プログラムが値を合計することはなく、販売員の収益がオフになります

クラス* ** * ** * **

public class SalesCommissionCalculator 
{
    private String item;
    private double value;

    public SalesCommissionCalculator()
    {
        setItem("");
        setValue(0.0);

    }

    public SalesCommissionCalculator(String i, double v)
    {
        setItem(i);
        setValue(v);

    }

    public void setItem(String i)
    {
        item = i;
    }

    public void setValue(double v)
    {   
        value = v;
    }


    public String getItem()
    {
        return item;
    }

    public double getValue()
    {
        return value;
    }


    public String toString()
    {
        return ("Item"+item+"Value"+value);
    }

}

** * ** * ** * ** *クラステスト:

import javax.swing.JOptionPane;
import java.util.Scanner;

public class SalesCommissionCalculatorTest 
{
    public static void main(String args [])
    {

        int quantity;
        int item;
        double salary = 200.00;
        double commission = 0.09;
        double total= 0;
        String msg="";


        SalesCommissionCalculator item1 = new SalesCommissionCalculator("1", 239.99);
        SalesCommissionCalculator item2 = new SalesCommissionCalculator("2", 129.75);
        SalesCommissionCalculator item3 = new SalesCommissionCalculator("3", 99.95);
        SalesCommissionCalculator item4 = new SalesCommissionCalculator("4", 350.89);

        item=Integer.parseInt(JOptionPane.showInputDialog("Enter item number 1, 2, 3 or 4. Enter -1 to quit."));

        while(item != -1)
        {
            switch(item)
            {
            case 1: quantity=Integer.parseInt(JOptionPane.showInputDialog("Enter quantity"));
                    total = (quantity*item1.getValue());
                    break;

            case 2: quantity=Integer.parseInt(JOptionPane.showInputDialog("Enter quantity"));
                    total= (quantity*item2.getValue());
                    break;

            case 3: quantity=Integer.parseInt(JOptionPane.showInputDialog("Enter quantity"));
                    total = (quantity*item3.getValue());
                    break;

            case 4: quantity=Integer.parseInt(JOptionPane.showInputDialog("Enter quantity"));
                    total = (quantity*item4.getValue());
                    break;

            default: 
                    System.out.println("Invalid Item Number");

            }

            item=Integer.parseInt(JOptionPane.showInputDialog("Enter item number 1, 2, 3 or 4. Enter -1 to quit."));


        }

            msg = msg + String.format("Your Commission is $%.2f", (total*commission)+salary);

            JOptionPane.showMessageDialog(null, msg);

        }
    }
4

2 に答える 2

0

いずれの場合も、合計を累積していません。現在持っているもの (例としてケース 1 を使用)

total = (quantity*item1.getValue());

に等しくなるように合計を設定するだけquantity*item1.getValue()です。おそらくあなたが望んでいたのは

total += (quantity*item1.getValue());

代わりは。(他の3つのケースも同様)

于 2013-10-03T23:14:34.407 に答える