none
PictureBox使用疑問(BMI程式) RRS feed

  • 問題

  • 各位好,我現在在開發手機上程式遇到一些問題,想請教一下大家
    我現在在寫一個測試BMI的應用程式,遇到兩個問題如下。
    1.我想在使用者輸入身高/體重如果太誇就跑出警告訊息,要怎麼下程式,例如:輸入身高5555,就跳出妳是外星人嘛?
    2.我想在判斷完使用者的BMI後,跑出圖片,例如:BMI如果是 27 To 50下方就會有胖子圖片,BMI如果是0 To 18.4就是瘦子圖片,
    但是我不知道要怎麼下程式 ,麻煩懂的人教我一下謝謝
    以下是我的程式碼
    ---------------------------------------------------------------
    Public Class Form1

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Height As Double
            Dim Weight As Double
            Dim BMI As Double

            Height = Val(Txt_Height.Text) / 100
            Weight = Val(Txt_Weight.Text)
            BMI = Weight / (Height ^ 2)
            '體重/身高^'


            Txt_BMI.Text = BMI
            msg.Text = Isfat(BMI)

        End Sub


        Function Isfat(ByVal BMI As Double) As String


            Select Case BMI
                Case 0 To 18.4
                    Isfat = "您的體重過輕,要多補充營養喔。"

                Case 18.5 To 23.9
                    Isfat = "您的體重很標準,要繼續維持下去喔。"

                Case 24 To 26.9
                    Isfat = "您需要注意您的飲食,記得要多多運動。"

                Case 27 To 50
                    Isfat = "您的體重太重了,要開始減肥了。"


                Case Else
                    Isfat = "這BMI值太誇張了!!,您是外星人"

            End Select

        End Function

    2009年5月26日 下午 03:21

解答

  • hello 楓小鬼,
    其實你已經快作完了啊 XD

    首先是 Isfat Function
    文字 利用 Return 關鍵字回傳回去即可

    另外就是圖片部份
    當然也可以再寫一個 Function 判斷 BMI
    接著再回傳圖片的路徑之類的

    但其實這個動作和 Isfat 裡的判斷式很相近
    所以建議改寫 Isfat Function
    將回傳的值改為數字,再到 Enum 或是預定好的陣列裡取值

    整個程式運作流程如下
    '--------------------------- Button Click 事件 ---------------------------
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '判斷 BMI
    '從 Isfat 取得目前 BMI 落點的值
    '新增說明文字陣列及圖片陣列
    '取得陣列中相符的值
    '設定 Txt_BMI.Text
    '設定 PictureBox1.ImageUrl
    'PictureBox1.Refresh (忘了要不要下 Refresh 指令了?)

    End Sub
    '---------------------------  Isfat 判斷 ---------------------------
    Function Isfat(ByVal BMI As Double) As Integer

    Select Case BMI
                Case 0 To 18.4
                    Return 1
                Case 18.5 To 23.9
                    Return 2
                '中間略過
                Case Else
                    Return 5
    End Select
    End Function
    --------------------------------------------------------------------

    這邊只能提供一些想法
    剩下的就是你自己要去體會和實作了

    VB不是很熟,語法有寫錯請見諒
    • 已編輯 坎尼 2009年5月27日 上午 02:01 改錯字
    • 已提議為解答 bauannModerator 2009年6月1日 上午 06:57
    • 已標示為解答 楓小鬼 2009年6月2日 上午 02:32
    2009年5月27日 上午 02:00

所有回覆

  • hello 楓小鬼,
    其實你已經快作完了啊 XD

    首先是 Isfat Function
    文字 利用 Return 關鍵字回傳回去即可

    另外就是圖片部份
    當然也可以再寫一個 Function 判斷 BMI
    接著再回傳圖片的路徑之類的

    但其實這個動作和 Isfat 裡的判斷式很相近
    所以建議改寫 Isfat Function
    將回傳的值改為數字,再到 Enum 或是預定好的陣列裡取值

    整個程式運作流程如下
    '--------------------------- Button Click 事件 ---------------------------
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '判斷 BMI
    '從 Isfat 取得目前 BMI 落點的值
    '新增說明文字陣列及圖片陣列
    '取得陣列中相符的值
    '設定 Txt_BMI.Text
    '設定 PictureBox1.ImageUrl
    'PictureBox1.Refresh (忘了要不要下 Refresh 指令了?)

    End Sub
    '---------------------------  Isfat 判斷 ---------------------------
    Function Isfat(ByVal BMI As Double) As Integer

    Select Case BMI
                Case 0 To 18.4
                    Return 1
                Case 18.5 To 23.9
                    Return 2
                '中間略過
                Case Else
                    Return 5
    End Select
    End Function
    --------------------------------------------------------------------

    這邊只能提供一些想法
    剩下的就是你自己要去體會和實作了

    VB不是很熟,語法有寫錯請見諒
    • 已編輯 坎尼 2009年5月27日 上午 02:01 改錯字
    • 已提議為解答 bauannModerator 2009年6月1日 上午 06:57
    • 已標示為解答 楓小鬼 2009年6月2日 上午 02:32
    2009年5月27日 上午 02:00
  • 非常感謝我已經測試出來了謝謝

    2009年6月2日 上午 02:32