VB编程:编写八进制数与十进制数相互转换的过程:
(1)过程ReadOctal,读入八进制数,然后转换为等值的十进制数。
(2)过程WriteOctal,将十进制正整数以等值的八进制形式输出。

解:Visual Basic 中的八进制数有两种类型,即整型(Integer)和长整型(Long)。其中整型的取值范围为&o0到&o177777,也就是说,一个整型八进制数最多有6位数字。这里将只编写处理整型八进制数的过程。
(1)编写ReadOctal过程()

’该过程有一个参数,其类型为String,它是一个需要转换为十进制的八进制字符串。过程中有一个DecVal变量,它是一个模块级变量,需要在窗体层定义。

Sub ReadOctal(oct_num As String)
    l = Len(oct_num)
    s = 0
    n = 0
    For i = 1 To 1 Step -1
        d = Mid(oct_num, i, 1)
        s = s + d * 8 ^ n
        n = n + 1
    Next i
    DecVal = s
End Sub

(2)编写WriteOctal过程

Sub WriteOctal(int_num As Integer)
    Dim strOctStr(6) As String
    For i = 6 To 1 Step -1
        OctStr(i) = int_num = Int(int_num / 8) * 8
        int_num = Int(int_num / 8)
    Next i
    For i = 1 To 6
        s = s + OctStr(i)
    Next i
    OctVal = CInt(s)
End Sub

该过程用“除8取余”的方法把一个十进制(int_num)转换为八进制。它分为两步,首先是“除8取余”,然后把所得到的余数按相反的顺序排列。
该过程中的OctVal变量也需要在窗体层定义。

(3)在窗体上画4个标签,四个文本框和两个按钮,如下图所示:


(4)定义窗体层变量,编写窗体的Load事件过程:
Option Base 1
Dim OctVal, DecVal

Private Sub Form_Load()
    Label1.Caption = "十进制数"
    Label2.Caption = "十进制数"
    Label3.Caption = "十进制数"
    Label4.Caption = "十进制数"
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
    Command1.Caption = "十进制转八进制"
    Command2.Caption = "八进制转十进制"
End Sub

(5)编写两个按钮的事件过程
Private Sub Command1_Click()
    If Val(Text1.Text) >= 0 And Val(Text1.Text) <= 32767 Then
        WriteOctal Val(Text1.Text)
        Text2.Text = OctVal
    Else
        MsgBox "请输入Ingeger类型的正数"
        Text1.Text = ""
    End If
End Sub

Private Sub Command2_Click()
    For i = Len(Text3.Text) To 1 Step -1
        d = Mid(Text3.Text, i, 1)
        If d > 7 Then
            MsgBox "请输入八进制数"
            Text3.Text = ""
            Exit Sub
        End If
    Next i

    If Val(Text3.Text) >= 0 And Val(Text3.Text) <= 32767 Then
        ReadOctal Text3.Text
        Text4.Text = DecVal
    Else
        MsgBox "请输入Ingeger类型的正数"
        Text3.Text = ""
    End If
End Sub

运行以上代码,程序执行情况如下图所示。

来源:visual basic程序设计教程第四版答案(刘炳文)

本文链接:http://www.wb98.com/vb1/post/vb_9.7.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

扫我手机登录

赞助商链接