1、VB计算器实验软件开发环境与工具实验报告实验一实验题目: 计算器的设计与实现 实验类型: 验证型 实验地点: 软件实验室一 指导教师: * 专业班级: 计算机科学与技术系*班 姓 名: * 2013年10月25日1、实验题目:计算器的设计与实现。二、实验目的: 1、进一步熟悉并且掌握Visual Studio 2010集成开发环境的使用。 2、学会使用常用的几种控件。 3、掌握中三种分支结构的使用。 4、初步掌握的基本编程方法和技巧。 5、根据所学知识能够独立完成一个简易计算器。三、实验内容:设计一个简单的计算器,使之能够实现加、减、乘、除基本的四则运算。四、实验设计思路: 先在窗体上设计计算
2、器的外观,包含按钮和文本输出框,然后写出各个触发事件,包含 数字事件、运算符事件等,之后再写各类运算函数,包括加法、减法、乘法和除法,完了在主函数中调用各函数进行运算。五、实验步骤: 1、在Microsoft Visual Studio 2010中,点击“新建项目”,命名为计算器,再点击“确定”,进入窗体设计界面。 2、使用按钮以及文本框在窗体设计界面设计一个简易计算器。界面如下: 3、分别在不同的按钮中编写相应的函数来实现其功能并且验证通过。六、实验代码:Public Class 计算器 Dim strdx() As String = , , 声明一个字符串,用以存取数值 Dim calco
3、unt1 As String = Dim calcount2 As String = 声明2个字符串,用以存取运算符 Dim strvalue As Boolean = False 声明一个布尔型的变量,用以区别小数点的运用 Private Sub 数字0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字0.Click If TextBox1.Text = 0 Then 配合清零使用,如果显示框内为0,将显示内容清空 TextBox1.Text = End If If strdx(0) =
4、Then 输入键入的数字 strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then 输入两位数 strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text 配合小数点的使用,防止出现2个小数点 TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字1_Click(ByVal sender A
5、s System.Object, ByVal e As System.EventArgs) Handles 数字1.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(
6、0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字2.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = Fal
7、se Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字3.Click If TextBox1.Text = 0 Then TextBox1.Text = End If
8、 If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字4_Click(ByVal sender As System.Object, B
9、yVal e As System.EventArgs) Handles 数字4.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text T
10、extBox1.Text &= strdx(0) End If End Sub Private Sub 数字5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字5.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) =
11、 strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字6.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = The
12、n strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字7_Click(ByVal sender As System.Object, ByVal e As System.E
13、ventArgs) Handles 数字7.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= st
14、rdx(0) End If End Sub Private Sub 数字8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字8.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sender.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender
15、.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 数字9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数字9.Click If TextBox1.Text = 0 Then TextBox1.Text = End If If strdx(0) = Then strdx(0) = sende
16、r.text TextBox1.Text &= strdx(0) & . ElseIf strvalue = False Then strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) & . Else strdx(0) = strdx(0) & sender.text TextBox1.Text &= strdx(0) End If End Sub Private Sub 加法_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 加
17、法.Click If calcount1 = Then 点击按键后,将calcount1置为此运算键 calcount1 = sender.text strdx(1) = strdx(0) 将strdx(0)的值赋给strdx(1),再将strdx(0)置空,以便继续输入 strdx(0) = ElseIf calcount2 = = Then 如果是连等运算,可以将上一次运算的结果strdx(2)赋值给strdx(1),strdx(0)置空,以便继续输入 calcount1 = sender.text strdx(1) = strdx(2) strdx(0) = strdx(2) = 将上一
18、次的结果清空 calcount2 = 将上一次置的等号清除 Else : Select Case calcount1 用来实现连续的加减乘除 Case + strdx(1) = Str(Val(strdx(0) + Val(strdx(1) strdx(0) = calcount1 = sender.text Case - strdx(1) = Str(Val(strdx(1) - Val(strdx(0) strdx(0) = calcount1 = sender.text Case * strdx(1) = Str(Val(strdx(0) * Val(strdx(1) 如果后一运算符的优
19、先级高,先算后面的 strdx(0) = calcount1 = sender.text Case / strdx(1) = Str(Val(strdx(1) / Val(strdx(0) 如果后一运算符的优先级高,先算后面的 strdx(0) = calcount1 = sender.text End Select End If TextBox1.Text &= sender.text 连接 End Sub Private Sub 减法_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 减法.C
20、lick If calcount1 = Then calcount1 = sender.text strdx(1) = strdx(0) strdx(0) = ElseIf calcount2 = = Then calcount1 = sender.text strdx(1) = strdx(2) strdx(0) = strdx(2) = calcount2 = Else : Select Case calcount1 Case + strdx(1) = Str(Val(strdx(0) + Val(strdx(1) strdx(0) = calcount1 = sender.text Ca
21、se - strdx(1) = Str(Val(strdx(1) - Val(strdx(0) strdx(0) = calcount1 = sender.text Case * strdx(1) = Str(Val(strdx(0) * Val(strdx(1) strdx(0) = calcount1 = sender.text Case / strdx(1) = Str(Val(strdx(1) / Val(strdx(0) strdx(0) = calcount1 = sender.text End Select End If TextBox1.Text &= sender.text
22、End Sub Private Sub 乘法_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 乘法.Click If calcount1 = Then calcount1 = sender.text strdx(1) = strdx(0) strdx(0) = ElseIf calcount2 = = Then calcount1 = sender.text strdx(1) = strdx(2) strdx(0) = strdx(2) = calcount2 = Else : Select C
23、ase calcount1 Case + strdx(1) = Str(Val(strdx(0) + Val(strdx(1) strdx(0) = calcount1 = sender.text Case - strdx(1) = Str(Val(strdx(1) - Val(strdx(0) strdx(0) = calcount1 = sender.text Case * strdx(1) = Str(Val(strdx(0) * Val(strdx(1) strdx(0) = calcount1 = sender.text Case / strdx(1) = Str(Val(strdx
24、(1) / Val(strdx(0) strdx(0) = calcount1 = sender.text End Select End If TextBox1.Text &= sender.text End Sub Private Sub 除法_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 除法.Click If calcount1 = Then calcount1 = sender.text strdx(1) = strdx(0) strdx(0) = ElseIf calcount2 =
25、 = Then calcount1 = sender.text strdx(1) = strdx(2) strdx(0) = strdx(2) = calcount2 = Else : Select Case calcount1 Case + strdx(1) = Str(Val(strdx(0) + Val(strdx(1) strdx(0) = calcount1 = sender.text Case - strdx(1) = Str(Val(strdx(1) - Val(strdx(0) strdx(0) = calcount1 = sender.text Case * strdx(1)
26、 = Str(Val(strdx(0) * Val(strdx(1) strdx(0) = calcount1 = sender.text Case / strdx(1) = Str(Val(strdx(1) / Val(strdx(0) strdx(0) = calcount1 = sender.text End Select End If TextBox1.Text &= sender.text End Sub Private Sub 小数点_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
27、小数点.Click strvalue = True 使用小数点后将strvalue置为0 strdx(0) = strdx(0) & . TextBox1.Text &= strdx(0) 连接 End Sub Private Sub 清零_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 清零.Click strdx(0) = 将所有变量置0,以便重新运算 strdx(1) = strdx(2) = calcount1 = calcount2 = strvalue = False TextBox
28、1.Text = 0 End Sub Private Sub 等号_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 等号.Click TextBox1.Text &= = 连接 If strdx(2) = Then calcount2 = = 如果是第一次输入等号,将 calcount2置为等号 Select Case calcount1 实现运算 Case + TextBox1.Text &= Str(Val(strdx(1) + Val(strdx(0) strdx(2) = Str(Val
29、(strdx(1) + Val(strdx(0) Case - TextBox1.Text &= Str(Val(strdx(1) - Val(strdx(0) strdx(2) = Str(Val(strdx(1) - Val(strdx(0) Case * TextBox1.Text &= Str(Val(strdx(1) * Val(strdx(0) strdx(2) = Str(Val(strdx(1) * Val(strdx(0) Case / If strdx(0) = 0 Then TextBox1.Text = error! Else TextBox1.Text &= Str(Val(strdx(1) / Val(strdx(0) strdx(2) = Str(Val(strdx(1) / Val(strdx(0) End If End Select ElseIf calcount2 = * Then 连续运算时有优先级问题时改变运算顺序 strdx(0) = Str(Val(strdx(
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2