匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 9 年前

要如何用vb寫這個程式

用if then else

if then elseif

select case

將輸入的0~9改寫成輸出國字的零到九

若輸入非0~9則輸出"無法改寫"之字元

必請加入提示句

已更新項目:

直接寫出來的我點數就直接送他

2 個已更新項目:

以先寫出答案的給點數

3 個已更新項目:

那個 因為我初學者 所以對這個程式的概念還不熟

所以可以把宣告那些給我嗎

還有 因為我還沒學到 MSBOX 跟LABEL1 還有CAPTION

所以我不懂這些意思

可以麻煩再寫一次別種的嗎

4 個已更新項目:

就是請用console writeline

或是consol write

5 個已更新項目:

對了我是用 主控台應用程式 寫的

5 個解答

評分
  • 9 年前
    最佳解答

    Dim w, t, y, a

    a = ""

    '===============先讓使用者輸入inputbox為輸入視窗

    Do

    w = InputBox("請輸入數字0~9")

    If w = "" Then

    MsgBox("不能不輸入", 16) 'msgbox為訊息視窗

    End If

    Loop Until w <> "" '為了以防使用者未輸入 所以當 w等於空字串出現錯誤訊息

    t = False '先將T為布林值

    Do '作為判斷是否超過0~9

    For y = 1 To Len(w)

    If Val(Asc(Mid(w, y, 1))) >= 48 And Val(Asc(Mid(w, y, 1))) <= 57 Then

    '0的ASC為48 9的ASC為57 所以任何字元當超過就顯示錯誤訊息 然後重新輸入

    t = True

    Else

    MsgBox("不能輸入除了0~9的字元", 16)

    Do

    w = InputBox("請輸入數字0~9")

    If w = "" Then

    MsgBox("不能不輸入", 16)

    End If

    Loop Until w <> ""

    Exit For

    End If

    Next

    Loop Until t = True

    For y = 1 To Len(w) '此地方為修改0~9成國字

    If Mid(w, y, 1) = "0" Then : a = a + "零"

    ElseIf Mid(w, y, 1) = "1" Then : a = a + "一"

    ElseIf Mid(w, y, 1) = "2" Then : a = a + "二"

    ElseIf Mid(w, y, 1) = "3" Then : a = a + "三"

    ElseIf Mid(w, y, 1) = "4" Then : a = a + "四"

    ElseIf Mid(w, y, 1) = "5" Then : a = a + "五"

    ElseIf Mid(w, y, 1) = "6" Then : a = a + "六"

    ElseIf Mid(w, y, 1) = "7" Then : a = a + "七"

    ElseIf Mid(w, y, 1) = "8" Then : a = a + "八"

    ElseIf Mid(w, y, 1) = "9" Then : a = a + "九"

    End If

    Next

    MsgBox(a) '輸出訊息

    Me.Close()

    2011-11-24 09:26:12 補充:

    MsgBox(a) '輸出訊息

    Console.WriteLine(a) '輸出訊息

    Console.WriteLine("任意鍵結束")

    Console.ReadKey()

    2011-11-24 09:27:37 補充:

    Else

    MsgBox("不能輸入除了0~9的字元", 16)

    Do

    w = InputBox("請輸入數字0~9")

    If w = "" Then

    MsgBox("不能不輸入", 16)

    End If

    Else

    Console.WriteLine("不能輸入除了0~9的字元")

    Do

    w = (Console.ReadLine())

    If w = "" Then

    Console.WriteLine("不能不輸入")

    End If

    2011-11-24 09:28:08 補充:

    Do

    w = InputBox("請輸入數字0~9")

    If w = "" Then

    MsgBox("不能不輸入", 16) 'msgbox為訊息視窗

    End If

    改為

    Do

    Console.WriteLine("請輸入數字0~9")

    w = (Console.ReadLine())

    If w = "" Then

    Console.WriteLine("不能不輸入")

    參考資料: 自己
  • 9 年前

    又要匿名, 又不給版本, 又沒有禮貌, 又以為點數可以當飯吃, 又以「初學者」名義諸多要求, 又不作思考就說「不懂意思」

    給人的感覺就是以為這裡是免費代做功課

    2011-11-23 23:18:06 補充:

    003 : if num>9 or num<0 then 如果text1.text = "10" 就會掛掉

    004 : Val(Asc(Mid(w, y, 1))) >= 48

    ASC 回傳 Integer, 沒有再用Val 換成Double 的必要

    也無需要判斷完是否為數字, 再判斷數字是0~9

    2011-11-23 23:19:30 補充:

    只需直接用For

    Select Case Mid(x, i, 1)

    case "0" '//"0"c 直接判斷每一個字元

    case "1" '//"1"c

    case ...

    case else

    call msgbox("prompt", 48, "title")

    exit sub 'return 如遇到錯誤字元(非"0"c ~ "9"c 則丟出訊息, 離開副程式

    end select

  • num=text1.text

    if num>9 or num<0 then

    msbox"無法改寫"

    else

    if num=0 then

    label1.caption="零"

    elseif num=1 then

    label1.caption="一"

    ...

    end if

    select case num

    case 0

    label1.caption="零"

    case 1

    label1.caption="一"

    ...

    end select

    end if

  • 匿名使用者
    9 年前

    回答1是打廣告的嗎??

    2011-11-25 23:09:30 補充:

    Function c$(ByVal n%)

      Dim t$ = "零一二三四五六七八九"

      Return IIf(0 <= n And n <= 9, t.Substring(n, 1), "")

    End Function

  • 您覺得這個回答如何?您可以登入為回答投票。
還有問題?馬上發問,尋求解答。