VB课程设计 进制转换_第1页
VB课程设计 进制转换_第2页
VB课程设计 进制转换_第3页
VB课程设计 进制转换_第4页
VB课程设计 进制转换_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB课程设计报告内容摘要进制转换,是利用VB编写的一个程序,可以在窗体上的文本框中输入一个进制数然后单击一下进制转换按钮,所得到的结果将在另一个文本框中显示出来。程序一共设计了四个板块,每个版块对应着一种进制的转换。用户在使用该程序时一目了然,在所需要的版块中输入一个数值并得到了所需的结果,这是一个使用非常方便的程序。此程序让人们在生活中、工作中、学习中都很方便的使用它进行一些较为复杂而且不易计算的进制转换,使得用户及时有效的得到他们所需要的数据。目录一、功能描述3二、概要设计31.设计思路32.功能模块图3三、详细设计41.主界面的设计42. 各功能模块的实现过程42.1十进制的转换42.2八进制的转换52.3十六进制的转换62.4二进制的转换7四、效果及存在问题91.程序运行效果图92.存在的问题10五、心得体会11六、参考文献11一、功能描述1) 在二、八、十、十六进制的转换的板块中,在转换按钮的左边文本框里输入该进制数,单击转换按钮,在其右边的文本框中即可显示出转换后的进制数。2) 针对于十进制,负数的十进制也可以进行进制转换。3) 单击“退出”按钮,退出本程序。二、概要设计1.设计思路1) 本程序一共有4大模块分别是二、八、十、十六进制的转换。2) 在这4大模块中,每个模块又有3个小模块即在每个大模块中的该进制数与其它进制数之间的转换。2.功能模块图进制转换程序二进制的转换八进制的转换十进制的转换十六进制的转换八进制的转换十进制的转换十六进制的转换二进制的转换十进制的转换十六进制的转换二进制的转换八进制的转换十六进制的转换二进制的转换八进制的转换十进制的转换图1 功能模块图三、详细设计1.主界面的设计1) 在窗体上添加12个命令按钮command1command12,24个文本框text1text24和4个标签label1label4。2) 4个标签将主界面分成4个板块属性分别是二,八,十,十六进制的转换。将12个命令按钮和24个文本框平均的放在4个标签中,按照报告给出的截图设置相应的属性。2. 各功能模块的实现过程2.1十进制的转换1) 功能描述:用户在进制转换按钮左边的文本框中输入一个十进制输,然后单击要转换的进制按钮即可在右边的文本框中显示出所转换的进制数。另外,本程序也可实现负数的十进制转换。2) 实现过程:通过单击命令按钮触发click事件运行函数,将所输入的数经过函数的运算得出结果显示数来。3) 程序代码:Public Function DEC_to_BIN(ByVal DEC As Long) As String 十进制二进制 If DEC = 0 Then DEC_to_BIN = Do While DEC 0 DEC_to_BIN = DEC Mod 2 & DEC_to_BIN DEC = DEC 2 Loop Else 当十进制为负数时 Dim i As Integer Dim B As String Dim z As String DEC = Abs(DEC) DEC_to_BIN = Do While DEC 0 z = DEC Mod 2 & z DEC = DEC 2 Loop For i = 1 To Len(z) Select Case Mid(z, i, 1) Case 0: B = B & 1 Case 1: B = B & 0 End Select Next i B = add(B) DEC_to_BIN = B End IfEnd FunctionPublic Function DEC_to_OCT(ByVal DEC As Long) As String 十进制八进制 If DEC = 0 Then DEC_to_OCT = Do While DEC 0 DEC_to_OCT = DEC Mod 8 & DEC_to_OCT DEC = DEC 8 Loop Else 当十进制为负数时 Dim i As Integer Dim B As String Dim z As String DEC = Abs(DEC) DEC_to_OCT = Do While DEC 0 z = DEC Mod 2 & z DEC = DEC 2 Loop For i = 1 To Len(z) Select Case Mid(z, i, 1) Case 0: B = B & 1 Case 1: B = B & 0 End Select Next i B = add(B) DEC_to_OCT = BIN_to_OCT(B) End IfEnd Function2.2八进制的转换1) 功能描述:用户在进制转换按钮左边的文本框中输入一个八进制输,然后单击要转换的进制按钮即可在右边的文本框中显示出所转换的进制数。2) 实现过程:通过单击命令按钮触发click事件运行函数,将所输入的数经过函数的运算得出结果显示数来。3) 程序代码:Public Function OCT_to_BIN(ByVal Oct As String) As String 八进制转二进制 Dim i As Long Dim B As String For i = 1 To Len(Oct) Select Case Mid(Oct, i, 1) Case 0: B = B & 000 Case 1: B = B & 001 Case 2: B = B & 010 Case 3: B = B & 011 Case 4: B = B & 100 Case 5: B = B & 101 Case 6: B = B & 110 Case 7: B = B & 111 End Select Next i While Left(B, 1) = 0 B = Right(B, Len(B) - 1) Wend OCT_to_BIN = BEnd FunctionPrivate Sub Command12_Click() 八进制转换十六进制If Text21.Text = ThenElseText22 = Hex(&O & Text21)End IfEnd Sub2.3十六进制的转换1) 功能描述:用户在进制转换按钮左边的文本框中输入一个八进制输,然后单击要转换的进制按钮即可在右边的文本框中显示出所转换的进制数。2) 实现过程:通过单击命令按钮触发click事件运行函数,将所输入的数经过函数的运算得出结果显示数来。3) 程序代码:Private Sub Command4_Click() 十六进制转十进制If Text4.Text = ThenElseText8 = CLng(&H & Text4)End IfEnd SubPrivate Sub Command3_Click() 十六进制转二进制 Dim a As String Dim B As String Dim i As Integer a = Val(Text9.Text) a = UCase(a) For i = 1 To Len(a) If Not (Mid(a, i, 1) = 0 And Mid(a, i, 1) = A And Mid(a, i, 1) = F) Then MsgBox 数据错 Exit Sub End If Next i For i = 1 To Len(a) t = ch16to2(Mid(a, i, 1) B = B & t Next i Text10.Text = Text10.Text & BEnd Sub2.4二进制的转换1) 功能描述:用户在进制转换按钮左边的文本框中输入一个八进制输,然后单击要转换的进制按钮即可在右边的文本框中显示出所转换的进制数。2) 实现过程:通过单击命令按钮触发click事件运行函数,将所输入的数经过函数的运算得出结果显示数来。3) 程序代码:Private Sub Command5_Click() 二进制转十进制Dim a As String Dim B As Integer Dim i As Integer Dim t As Integer a = Val(Text2.Text) For i = 1 To Len(a) If (Mid(a, i, 1) 0) And (Mid(a, i, 1) 1) Then MsgBox 不是合法的2进制数, vbCritical Exit Sub End If Next i B = 0 For i = 1 To Len(a) t = Asc(Mid(a, i, 1) - 48 B = B * 2 + t Next i Text6.Text = Text6.Text & BEnd SubPublic Function BIN_to_HEX(ByVal Bin As String) As String 二进制转十六进制 Dim i As Long Dim h As String If Len(Bin) Mod 4 0 Then Bin = String(4 - Len(Bin) Mod 4, 0) & Bin End If For i = 1 To Len(Bin) Step 4 Select Case Mid(Bin, i, 4) Case 0000: h = h & 0 Case 0001: h = h & 1 Case 0010: h = h & 2 Case 0011: h = h & 3 Case 0100: h = h & 4 Case 0101: h = h & 5 Case 0110: h = h & 6 Case 0111: h = h & 7 Case 1000: h = h & 8 Case 1001: h = h & 9 Case 1010: h = h & A Case 1011: h = h & B Case 1100: h = h & C Case 1101: h = h & D Case 1110: h = h & E Case 1111: h = h & F End Select Next i While Left(h, 1) = 0 h = Right(h, Len(h) - 1) Wend BIN_to_HEX = hEnd Function四、效果及存在问题 1.程序运行效果图1) 程序界面图2 程序界面2) 各类进制之间的转换图3 各类进制之间的转换3) 负数的十进制转换图4 负数的十进制转换4) 对输入进制数是否合法进行判断图5 对输入的进制是否合法进行判断2.存在的问题在运行程序后发现一些问题如当输入一些较大的数值进行转换时程序会报错,这个问题可以通过改变它的定义变量来解决,比如将定义的整型变量integer改为long或double。还一个小问题就是没有清除功能,可能给用户带来不便,这个可以加一个命令按钮,把清除的代码写入即可。五、心得体会通过本周的VB课程设计使我对进制转换有了更深一步的理解,以前碰到的进制转换是用笔算的,可是现在要用函数代替我的笔可谓有一定的难度。通过翻书、上网、询问老师和同学的途径,终于写出了代码。但是运行时问题来了,我在二进制转换中输入了一个非二进制程序也能将其转换,又得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论