visual basic程序设计教程第四版答案(刘炳文)
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
本站文章搜索: