一.设计思路 (1)二.关键问题的解决 (1)三.概要设计说明 (1)四.源代码 (1)五.心得体会 (8)一.设计思路1.要达到的目的要达到的目的主要是培养学生利用系统提供的基本控件进行创新性设计,理解Visual Basic 语言中面向对象的程序设计。
培养学生综合利用Visual Basic 语言进行程序设计的能力。
二.关键问题的解决先使用Command 命令按钮,命令按钮控件数组,文本框等基本控件设计窗体,再根据下面方法编制程序:三.概要设计说明本组设计的科学计算器具有科学型和标准型两种类型, 适合不同需要.科学型中包含弧度与角度的计算,同时兼具2,8,10,16 进制的运算.四.源代码Dim num1 As DoubleDim num2 As DoubleDim num3 As DoubleDim flag As DoubleDim operator As IntegerDim q As IntegerPrivate Sub Command1_Click(Index As Integer)Select Case IndexCase Is <= 9If Index = 0 And Val(Text1.Text) = 0 ThenText1.Text = 0ElseIf Val(Text1.Text) = 0 ThenText1.Text = IndexElseText1.Text = Text1.Text & IndexEnd IfEnd IfCase Is >= 20If (Val(Text1.Text) = 0) ThenText1.Text = Command1(Index).CaptionElseText1.Text = Text1.Text + Command1(Index).Caption End IfCase 10Text1.Text = Text1.Text + "."Case 11Text1.Text = -Val(Text1.Text)Case 12If Not flag Thennum1 = Val(Text1.Text)Text1.Text = 0flag = Trueoperator = 1End IfCase 13If Not flag Thennum1 = Val(Text1.Text)Text1.Text = 0flag = Trueoperator = 2End IfCase 14If Not flag Thennum1 = Val(Text1.Text)Text1.Text = 0flag = Trueoperator = 3End IfCase 15If Not flag Thennum1 = Val(Text1.Text)Text1.Text = 0flag = Trueoperator = 4End IfCase 16If Not flag Thennum1 = Val(Text1.Text)Text1.Text = 0flag = Trueoperator = 5End IfCase 17num1 = Val(Text1.Text)Text1.Text = Sqr(num1)Case 19Text1.Text = 0Case 18If flag ThenIf q = 2 Thennum1 = Val("&O" & Val(num1))num2 = Val("&O" & Val(Text1.Text)) Select Case operatorCase 1num3 = num1 + num2Case 2num3 = num1 - num2Case 3num3 = num1 * num2Case 4num3 = num1 / num2Case 5num3 = num1 Mod num2End Selectnum3 = Oct(Val(num3))Text1.Text = num3flag = FalseElseIf q = 4 Thennum1 = Val("&H" & num1)num2 = Val("&H" & Text1.Text) Select Case operatorCase 1num3 = num1 + num2Case 2num3 = num1 - num2Case 3num3 = num1 * num2Case 4num3 = num1 / num2Case 5num3 = num1 Mod num2 End SelectText1.Text = Hex(num3)flag = FalseElseIf q = 1 Thennum2 = Val(Text1.Text) Select Case operatorCase 1num3 = num1 + num2Case 2num3 = num1 - num2Case 3num3 = num1 * num2Case 4num3 = num1 / num2Case 5num3 = num1 Mod num2 End SelectText1.Text = num3flag = FalseElseIf q = 3 ThenDim a As StringDim b As IntegerDim i As IntegerDim t As Integera = Val(num1)b = 0For i = 1 To Len(a)t = Asc(Mid(a, i, 1)) - 48b = b * 2 + tNext inum1 = ba = Val(Text1.Text)b = 0For i = 1 To Len(a)t = Asc(Mid(a, i, 1)) - 48b = b * 2 + tNext inum2 = bSelect Case operatorCase 1num3 = num1 + num2Case 2num3 = num1 - num2Case 3num3 = num1 * num2Case 4num3 = num1 / num2Case 5num3 = num1 Mod num2End SelectDim j As IntegerDim w As IntegerDim k As Stringw = Val(num3)Doj = w Mod 2w = w \ 2k = j & kLoop While w > 0Text1.Text = kflag = FalseEnd IfEnd IfEnd SelectEnd SubPrivate Sub Form_Load()Text1.Text = 0Option3.Value = Trueflag = Falsenum1 = 0num2 = 0num3 = 0End SubPrivate Sub Option1_Click()Dim i As IntegerDim a As IntegerDim b As StringIf q = 2 Thena = Val("&O" & Val(Text1.Text))Doi = a Mod 2a = a \ 2b = i & bLoop While a > 0Text1.Text = bElseIf q = 1 Thena = Val(Text1.Text)Doi = a Mod 2a = a \ 2b = i & bLoop While a > 0Text1.Text = bElseIf q = 4 Thena = Val("&H" & Text1.Text)Doi = a Mod 2a = a \ 2b = i & bLoop While a > 0Text1.Text = bEnd IfFor i = 2 To 9Command1(i).Enabled = False Next iFor i = 20 To 25Command1(i).Enabled = False Next iq = 3End SubPrivate Sub Option2_Click()If q = 3 ThenDim a As StringDim b As IntegerDim i As IntegerDim t As Integera = Val(Text1.Text)b = 0For i = 1 To Len(a)t = Asc(Mid(a, i, 1)) - 48b = b * 2 + tNext iText1.Text = Oct(b)ElseIf q = 1 ThenText1.Text = Oct(Val(Text1.Text))ElseIf q = 4 ThenText1.Text = Oct(Val("&H" & Text1.Text)) End IfFor i = 2 To 7Command1(i).Enabled = TrueNext iCommand1(8).Enabled = FalseCommand1(9).Enabled = FalseFor i = 20 To 25Command1(i).Enabled = FalseNext iq = 2End SubPrivate Sub Option3_Click()If q = 2 ThenText1.Text = Val("&O" & Val(Text1.Text))ElseIf q = 3 ThenDim a As StringDim b As IntegerDim i As IntegerDim t As Integera = Val(Text1.Text)b = 0For i = 1 To Len(a)t = Asc(Mid(a, i, 1)) - 48b = b * 2 + tNext iText1.Text = bElseIf q = 4 ThenText1.Text = Val("&H" & Text1.Text)End IfFor i = 2 To 9Command1(i).Enabled = TrueNext iFor i = 20 To 25Command1(i).Enabled = FalseNext iq = 1End SubPrivate Sub Option4_Click()Dim a As StringDim b As IntegerDim i As IntegerDim t As IntegerIf q = 1 ThenText1.Text = Hex(Val(Text1.Text))ElseIf q = 2 Thena = Val("&0" & Val(Text1.Text))Text1.Text = Hex(a)ElseIf q = 3 Thena = Val(Text1.Text)b = 0For i = 1 To Len(a)t = Asc(Mid(a, i, 1)) - 48b = b * 2 + tNext iText1.Text = Hex(b)End IfFor i = 2 To 25Command1(i).Enabled = TrueNext iq = 4End Sub五.心得体会. 经过一个星期的上机实践学习, 使我对VB 有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对VB 的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对VB 中经常出现的错误也不了解,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固, 通过实践,使我在这几个方面的认识有所提高. 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习VB,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。