0

だから私がかなり長い間試みてきたことは、フォーム上で選択されたラジオボタンをリストボックスに連結して、領収書として読み上げられるようにすることでした。変数の領収書を空の文字列として宣言しましたが、チェックしたラジオ ボタンで領収書の変数をどのように入力できるか知りたいと思っていました。必要に応じてコードを提供できますが、役立つかどうかはわかりません。

コードは以下に提供されています

public class Order
    {
        public string[] pizzaChoice = new
        string[] {"Plain Slice", "Medium Plain", "Large Plain", "White Slice", "Medium White", "Large White",
                  "Roar Slice", "Roar Medium", "Roar Large", "BBQ Slice", "BBQ Medium", "BBQ Large", 
                  "Cheeseburger Slice", "Cheeseburger Medium", "Cheeseburger Large", "Buffalo Slice", "Buffalo Medium", "Buffalo Large",
                  "The Works Slice", "The Works Medium", "The Works Large"};
        public decimal[] pizzaChoicePrice = new decimal[] {1.50m, 8.00m, 10.00m, 1.75m, 9.00m, 12.00m,
                                                           2.00m, 9.00m, 12.00m, 2.00m, 9.00m, 12.00m,
                                                           2.00m, 9.00m, 12.00m, 2.00m, 9.00m, 12.00m,
                                                           2.50m, 10.00m, 13.00m};
        private string pizza;
        private string drink;
        private string specialRequest;
        private decimal pizzaPrice;
        private decimal drinkPrice;

        public Order()
        {
            pizza = "";
            specialRequest = "";
            drinkPrice = 0;
            pizzaPrice = 0;
        }
        public string Pizza
        {
            get
            {
                return pizza;
            }
            set
            {
                pizza = value;
                SetPizzaPrice();
            }
        }
        public string SpecialRequests
        {
            get
            {
                return specialRequest;
            }
            set
            {
                specialRequest = value;
            }
        }
        public string Drink
        { 
            get
            {
                return drink;
            }
            set 
            {
                drink = value;
                SetDrinkPrice();
            }
        }
        public decimal PizzaPrice
        {
            get
            {
                return pizzaPrice;
            }
        }
        public decimal DrinkPrice
        {
            get
            {
                return drinkPrice;
            }
        }
        public void SetPizzaPrice()
        {
            for (int i = 0; i < pizzaChoice.Length; i++)
            {
                if (pizzaChoice[i] == pizza)
                {
                    pizzaPrice = pizzaChoicePrice[i];
                }
            }
        }
        public void SetDrinkPrice()
        {
            switch (drink)
            {
                case "Small Water":
                case "Medium Water":
                case "Large Water":
                    drinkPrice = 0.00m;
                    break;
                case "Small Fountain Soda":
                case "Can of Soda":
                    drinkPrice = 0.75m;
                    break;
                case "Medium Fountain Soda":
                    drinkPrice = 1.25m;
                    break;
                case "Large Fountain Soda":
                case "Large Iced Tea/Lemonade/Juice":
                    drinkPrice = 2.00m;
                    break;
                case "20 oz Bottled Soda":
                    drinkPrice = 1.75m;
                    break;
                case "2 Liter Bottled Soda":
                    drinkPrice = 2.50m;
                    break;
                case "12 oz Iced Tea/Lemonade/Juice":
                    drinkPrice = 1.00m;
                    break;
                case "24 oz Iced Tea/Lemonade/Juice":
                    drinkPrice = 1.50m;
                    break;
            }
        }
        public decimal TotalBeforeTax()
        {
            return pizzaPrice + drinkPrice;
        }
    }
}
4

1 に答える 1

0

いくつかの提案:

注文できるさまざまなものと価格を別のメニュー クラスに入れます。これにより、注文できるものに関する責任を 1 つの場所に置くことができます。これにより、クラス Order がきれいに保たれます。

メソッドまたはMenu クラスをPlaceOrder作成します。Order を作成して返すようにします。このように、 Order クラスは、注文されたものを追跡するだけの責任があります。CreateOrderOrder

ユーザー インターフェイス/フォームで、ラジオボタンやその他のコントロールを好きなように作成します (Menu クラスの情報を使用して UI を動的に構築することもできます)。ボタンのクリック イベントでは、選択されたすべてのアイテムと金額を PlaceOrder メソッドに渡します。

読み取り可能な方法で Order を取得するには、Order クラスにメソッドを追加し、Printこのメソッドから、Order オブジェクトに格納されているデータを受け入れ可能な形式で返します。メソッドが単一の文字列を返すようにすることもできPrintますが、文字列の配列にすることもできます。

これを実装するのが難しい場合は、具体的な質問を投稿してください。非常に具体的にして、あなたが試したことを私たちに示してください。

于 2013-04-29T06:15:21.623 に答える