-1

注文の合計金額を表示するアプリケーションを作成しています。注文した商品の数と、顧客が卸売業者であるか小売業者であるかに基づいて価格を決定します。

使用する計算:

1〜4アイテム=卸売業者の場合はアイテムあたり10ドル。

5つ以上のアイテム=卸売業者の場合はそれぞれ9ドル。

1〜3アイテム=小売業者の場合はアイテムあたり15ドル。

4〜8アイテム=小売業者の場合はアイテムあたり14ドル。

9個以上のアイテム=小売業者の場合はアイテムあたり12ドル。私は計算に固執し、それをどのように行うかについて混乱しています。

GUIが完成しました。これまでのところ、次のようになっています。

GUIの画像:http://i.imgur.com/P2tDz.png

Dim quantity As Decimal
Dim price As Decimal
Dim wholesaler As Integer
Dim retailer As Integer

Integer.TryParse(txtUnits.Text, price)

chkRetailer.Text = retailer
chkWholesale.Text = wholesaler


If wholesaler Then
    If Quantity <= 4 Then
        Price = 10
    Else
        Price = 9
    End If
ElseIf retailer Then
    If Quantity <= 3 Then
        Price = 15
    ElseIf Quantity <= 8 Then
        Price = 14
    Else
        Price = 12
    End If
End If

lblTotPrice.Text = price * quantity

lblTotPrice.Text = price.ToString("C0")

それは私が混乱している計算です、私は表示と宣言が正しいと信じています。

ありがとうございました。

4

4 に答える 4

2

これは、 Case ステートメントを使用するとより明確 になります (提供されているリンクの VB の例は非常に役立ちます)。

最初にIFステートメントを使用して、卸売業者であるかどうかを判断し、2 つのケース ステートメントのどちらが有効な価格を割り当てているかを判断します。

于 2012-09-13T21:45:39.263 に答える
0

正解だと思いますが、lblTotPrice に価格 * 数量を割り当ててから、価格を割り当てます。最後の2行でこれを試してください

Dim subTotal as integer
subtotal = price * quantity 
lblTotPrice.Text = subtotal.ToString("C0") 

コードで少しうまく機能する Select Case ステートメントを使用するなど、他にも役立つ可能性のあることがいくつかありますが、これが主な問題だと思います。

于 2012-09-14T13:14:52.577 に答える
0

次のように if ループをネストすると、より簡単になります。(ここでは疑似コードを使用しています。)

If Wholesaler Then
  If Quantity <= 4 Then
    Price = 10
  Else
    Price = 9
  EndIf
ElseIf Retailer Then
  If Quantity <= 3 Then
    Price = 15
  ElseIf Quantity <= 8 Then
    Price = 14
  Else
    Price = 12
  EndIf
End If

TotalCost = Price * Quantity
于 2012-09-13T20:36:29.693 に答える
0

ここには多くのエラーがあります。

このステートメントは、txtUnits から入力を受け取り、それを価格に割り当てています。

Integer.TryParse(txtUnits.Text, price)

これらの 2 行は、チェックボックスの text プロパティに 0 を割り当てるだけです。

chkRetailer.Text = retailer
chkWholesale.Text = wholesaler

これらのステートメントは常に 0 になるため、常に False と評価されます。価格が割り当てられることはありません。

If wholesaler Then
  'never reaches here
ElseIf retailer Then
  'or here
End If

ラベルに 2 つの割り当てを行っています。これです

lblTotPrice.Text = price * quantity

すぐにこれに置き換えられているので役に立たない

lblTotPrice.Text = price.ToString("C0")
于 2012-09-14T01:02:24.993 に答える