This project was given to us during our mid-term examination and is coded using VB.Net 2010.
It is consists of three forms.
FORM 1:
Components:
Dim Operation As String
Dim Dot As Boolean = False
Dim thereIsOp As Boolean = False
Dim num1 As Double
Dim successiveOp As Boolean = False
Dim btnEqualsClicked As Boolean = False
Dim Memory As Double = Nothing
Dim digits As Integer = Nothing
Private Sub btnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiply.Click
performOpAction("multiply")
End Sub
Private Sub btnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDivide.Click
performOpAction("divide")
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
performOpAction("add")
End Sub
Private Sub btnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMinus.Click
performOpAction("minus")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call addToDisplay(1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call addToDisplay(2)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Call addToDisplay(3)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call addToDisplay(4)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Call addToDisplay(5)
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Call addToDisplay(6)
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Call addToDisplay(7)
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Call addToDisplay(8)
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Call addToDisplay(9)
End Sub
Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button0.Click
Call addToDisplay(0)
End Sub
Private Sub btnDot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDot.Click
If thereIsOp = True Then
Display.Text = 0
thereIsOp = False
End If
If Dot = False Then
Display.Text = Display.Text & "."
Dot = True
End If
btnEqualsClicked = False
End Sub
Private Sub btnEqual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEquals.Click
If successiveOp = True Then
Display.Text = performOperation()
End If
thereIsOp = True
successiveOp = False
btnEqualsClicked = True
End Sub
Private Function performOperation()
Dim num As Double
If Operation = "multiply" Then
num = num1 * Display.Text
ElseIf Operation = "divide" Then
num = num1 / Display.Text
ElseIf Operation = "add" Then
num = num1 + Display.Text
ElseIf Operation = "minus" Then
num = num1 - Display.Text
End If
Dot = False
Return num
End Function
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
Display.Text = 0
num1 = Nothing
Operation = "none"
digits = 0
Dot = False
btnEqualsClicked = False
End Sub
Private Sub btnDelete_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If btnEqualsClicked = False Then
If Display.Text.Length > 1 Then
Display.Text = Display.Text.Substring(0, Display.Text.Length - 1)
digits -= 1
Else
Display.Text = Nothing
Display.Text = 0
digits = 0
End If
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub btnposNeg_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPosNeg.Click
Display.Text = Display.Text * -1
End Sub
Private Sub btnPercent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPercent.Click
Display.Text = (Display.Text / 100) * num1
Dot = False
thereIsOp = True
End Sub
Private Sub btnSqrt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSqrt.Click
Display.Text = Sqrt(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnMemRet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemRet.Click
Display.Text = Memory
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemClear.Click
Memory = Nothing
MemIndicate.Text = Nothing
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemAdd.Click
Memory = Memory + Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemMinus.Click
Memory = Memory - Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemStore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemStore.Click
If Display.Text <> "0" Then
If Display.Text <> "0." Then
Memory = Display.Text
MemIndicate.Text = "M"
Else
Display.Text = "0"
End If
End If
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub addToDisplay(ByVal toAdd As Integer)
If digits < 16 Then
If thereIsOp = True Then
Display.Text = Nothing
thereIsOp = False
End If
If Display.Text = "0" Then
Display.Text = Nothing
End If
Display.Text = Display.Text & toAdd
digits += 1
End If
btnEqualsClicked = False
End Sub
Private Sub performOpAction(ByVal OperatorIs As String)
If successiveOp = True Then
Display.Text = performOperation()
End If
Operation = OperatorIs
successiveOp = True
thereIsOp = True
num1 = Display.Text
Display.Text = num1
digits = 0
Dot = False
End Sub
Private Sub Display_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Display.TextChanged
Dim x As Integer = 0
For i = 0 To Display.Text.Length - 1
If Display.Text.Substring(i, 1) = "." Then
x += 1
End If
Next
If x > 0 Then
Dot = True
Else
Dot = False
End If
End Sub
End Class
FORM 2:
Component: MenuStrip1
Code:
Public Class Form2
Public standard As New Form1
Public scientific As New Form3
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
standard.TopLevel = False
standard.Location = New System.Drawing.Point(0, 27)
Me.Controls.Add(standard)
scientific.TopLevel = False
scientific.Location = New System.Drawing.Point(0, 27)
Me.Controls.Add(scientific)
standard.Show()
End Sub
Private Sub StandardToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StandardToolStripMenuItem.Click
Me.Size = New System.Drawing.Size(262, 333)
standard.Show()
scientific.Hide()
End Sub
Private Sub ScientificToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ScientificToolStripMenuItem.Click
Me.Size = New System.Drawing.Size(403, 324)
scientific.Show()
standard.Hide()
End Sub
End Class
FORM 3:
Components: Includes all components in form1. (Mod is btnPercent), btnlog, btnReciprocal, btnA, btnB, btnC, btnD, btnE, btnF, RadioButton1 (Bin), RadioButton2 (Dec), RadioButton3 (Oct), RadioButton4 (Hex), btnSine, btnCosine, btnTangent, btnCubeRoot, btnNthRoot, btnSquare, btnCube, btnNthPower, GroupBox1 and GroupBox2.
Code:
Imports System.Math
Public Class Form3
'Declaration and initialization of variables
Dim Operation As String
Dim Dot As Boolean = False
Dim thereIsOp As Boolean = False
Dim num1 As Double
Dim successiveOp As Boolean = False
Dim btnEqualsClicked As Boolean = False
Dim Memory As Double = Nothing
Dim digits As Integer = Nothing
Dim previous As String = "dec"
Dim present As String = "dec"
Private Sub btnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiply.Click
performOpAction("multiply") 'Operator is multiply
End Sub
Private Sub btnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDivide.Click
performOpAction("divide") 'Operator is divide
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
performOpAction("add") 'Operator is add
End Sub
Private Sub btnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMinus.Click
performOpAction("minus") 'Operator is minus
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call addToDisplay("1")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call addToDisplay("2")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Call addToDisplay("3")
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call addToDisplay("4")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Call addToDisplay("5")
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Call addToDisplay("6")
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Call addToDisplay("7")
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Call addToDisplay("8")
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Call addToDisplay("9")
End Sub
Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button0.Click
Call addToDisplay("0")
End Sub
Private Sub btnDot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDot.Click
'if opertor has been selected, the display will be overwritten instead of adding dot in the end
If thereIsOp = True Then
Display.Text = 0
thereIsOp = False
End If
If Dot = False Then 'if dot is not yet present, it will be added in the display
Display.Text = Display.Text & "."
Dot = True
End If
btnEqualsClicked = False
End Sub
Private Sub btnEqual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEquals.Click
If successiveOp = True Then
Display.Text = performOperation() 'perform the operation function
End If
thereIsOp = True
successiveOp = False
btnEqualsClicked = True
End Sub
Private Function performOperation()
'operation process
Dim num As Double
Dim num2 As Double
If RadioButton1.Checked = True Then
num2 = binTOdec()
ElseIf RadioButton2.Checked = True Then
num2 = Display.Text
ElseIf RadioButton3.Checked = True Then
num2 = octTOdec()
ElseIf RadioButton4.Checked = True Then
num2 = hexTOdec()
End If
If Operation = "multiply" Then
num = num1 * num2
ElseIf Operation = "divide" Then
num = num1 / num2
ElseIf Operation = "add" Then
num = num1 + num2
ElseIf Operation = "minus" Then
num = num1 - num2
ElseIf Operation = "root" Then
num = Display.Text ^ (1 / num1)
ElseIf Operation = "power" Then
num = num1 ^ num2
ElseIf Operation = "modulus" Then
num = num1 Mod num2
End If
Dot = False
Return num
End Function
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
'clear the display and set some variables to initial value
Display.Text = 0
num1 = Nothing
Operation = "none"
digits = 0
Dot = False
btnEqualsClicked = False
End Sub
Private Sub btnDelete_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
'delete one by one
If btnEqualsClicked = False Then
If Display.Text.Length > 1 Then
Display.Text = Display.Text.Substring(0, Display.Text.Length - 1)
digits -= 1
Else
Display.Text = Nothing
Display.Text = 0
digits = 0
End If
End If
End Sub
Private Sub btnposNeg_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPosNeg.Click
Display.Text = Display.Text * -1
End Sub
Private Sub btnPercent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPercent.Click
performOpAction("modulus")
End Sub
Private Sub btnSqrt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSqrt.Click
Display.Text = Sqrt(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnMemRet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemRet.Click
Display.Text = Memory
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemClear.Click
Memory = Nothing
MemIndicate.Text = Nothing
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemAdd.Click
Memory = Memory + Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemMinus.Click
Memory = Memory - Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemStore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemStore.Click
If Display.Text <> "0" Then
If Display.Text <> "0." Then
Memory = Display.Text
MemIndicate.Text = "M"
Else
Display.Text = "0"
End If
End If
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub addToDisplay(ByVal toAdd As Char)
If digits < 16 Then
If thereIsOp = True Then
Display.Text = Nothing
thereIsOp = False
End If
If Display.Text = "0" Then
Display.Text = Nothing
End If
Display.Text = Display.Text & toAdd
digits += 1
End If
btnEqualsClicked = False
End Sub
Private Sub performOpAction(ByVal OperatorIs As String)
If successiveOp = True Then
Display.Text = performOperation()
End If
If RadioButton1.Checked = True Then
num1 = binTOdec()
ElseIf RadioButton2.Checked = True Then
num1 = Display.Text
Display.Text = num1
ElseIf RadioButton3.Checked = True Then
num1 = octTOdec()
ElseIf RadioButton4.Checked = True Then
num1 = hexTOdec()
End If
Operation = OperatorIs
successiveOp = True
thereIsOp = True
digits = 0
Dot = False
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
disableButtons()
present = "bin"
Call baseConverter()
previous = "bin"
thereIsOp = True
End Sub
Private Sub disableButtons()
btnSine.Enabled = False
btnCosine.Enabled = False
btnTangent.Enabled = False
btnCubeRoot.Enabled = False
btnReciprocal.Enabled = False
btnNthRoot.Enabled = False
btnSqrt.Enabled = False
btnlog.Enabled = False
btnSquare.Enabled = False
btnCube.Enabled = False
btnNthPower.Enabled = False
btnA.Enabled = False
btnB.Enabled = False
btnC.Enabled = False
btnD.Enabled = False
btnE.Enabled = False
btnF.Enabled = False
btnPosNeg.Enabled = False
btnMemRet.Enabled = False
btnMemClear.Enabled = False
btnMemMinus.Enabled = False
btnMemAdd.Enabled = False
btnMemStore.Enabled = False
btnPercent.Enabled = False
btnlog.Enabled = False
btnReciprocal.Enabled = False
btnDot.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
btnAdd.Enabled = False
btnMultiply.Enabled = False
btnDivide.Enabled = False
btnMinus.Enabled = False
End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
disableButtons()
present = "oct"
Call baseConverter()
previous = "oct"
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
thereIsOp = True
End Sub
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
disableButtons()
present = "hex"
Call baseConverter()
previous = "hex"
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
btnA.Enabled = True
btnB.Enabled = True
btnC.Enabled = True
btnD.Enabled = True
btnE.Enabled = True
btnF.Enabled = True
thereIsOp = True
End Sub
Private Sub enableButtons()
btnSine.Enabled = True
btnCosine.Enabled = True
btnTangent.Enabled = True
btnCubeRoot.Enabled = True
btnReciprocal.Enabled = True
btnNthRoot.Enabled = True
btnSqrt.Enabled = True
btnlog.Enabled = True
btnSquare.Enabled = True
btnCube.Enabled = True
btnNthPower.Enabled = True
btnPosNeg.Enabled = True
btnMemRet.Enabled = True
btnMemClear.Enabled = True
btnMemMinus.Enabled = True
btnMemAdd.Enabled = True
btnMemStore.Enabled = True
btnPercent.Enabled = True
btnlog.Enabled = True
btnReciprocal.Enabled = True
btnDot.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
btnAdd.Enabled = True
btnMultiply.Enabled = True
btnDivide.Enabled = True
btnMinus.Enabled = True
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
enableButtons()
present = "dec"
Call baseConverter()
previous = "dec"
thereIsOp = True
End Sub
Private Sub baseConverter()
If previous <> present Then
Try
If previous = "dec" And present = "bin" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 2)
ElseIf previous = "dec" And present = "oct" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 8)
ElseIf previous = "dec" And present = "hex" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 16)
ElseIf previous = "bin" And present = "dec" Then
Display.Text = Convert.ToString(binTOdec(), 10)
ElseIf previous = "oct" And present = "dec" Then
Display.Text = Convert.ToString(octTOdec(), 10)
ElseIf previous = "hex" And present = "dec" Then
Display.Text = Convert.ToString(hexTOdec(), 10)
ElseIf previous = "bin" And present = "oct" Then
Display.Text = Convert.ToString(binTOdec(), 8)
ElseIf previous = "bin" And present = "hex" Then
Display.Text = Convert.ToString(binTOdec(), 16)
ElseIf previous = "oct" And present = "bin" Then
Display.Text = Convert.ToString(octTOdec(), 2)
ElseIf previous = "oct" And present = "hex" Then
Display.Text = Convert.ToString(octTOdec(), 16)
ElseIf previous = "hex" And present = "bin" Then
Display.Text = Convert.ToString(hexTOdec(), 2)
ElseIf previous = "hex" And present = "oct" Then
Display.Text = Convert.ToString(hexTOdec(), 8)
End If
Catch
End Try
End If
End Sub
Private Sub btnSine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSine.Click
Display.Text = Sin((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnCosine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCosine.Click
Display.Text = Cos((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnTangent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTangent.Click
Display.Text = Tan((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnCubeRoot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCubeRoot.Click
Display.Text = Display.Text ^ (1 / 3)
Dot = False
thereIsOp = True
End Sub
Private Sub btnNthRoot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNthRoot.Click
performOpAction("root")
End Sub
Private Sub btnlog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlog.Click
Display.Text = Log10(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnReciprocal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReciprocal.Click
Display.Text = 1 / Display.Text
Dot = False
thereIsOp = True
End Sub
Private Sub btnSquare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSquare.Click
Display.Text = Display.Text ^ 2
Dot = False
thereIsOp = True
End Sub
Private Sub btnCube_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCube.Click
Display.Text = Display.Text ^ 2
Dot = False
thereIsOp = True
End Sub
Private Sub btnNthPower_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNthPower.Click
performOpAction("power")
End Sub
Private Sub Display_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Display.KeyDown
End Sub
Private Function binTOdec()
Dim Store As String = Display.Text
Dim len As Integer = Store.Length
Dim x As Integer = 1
Dim total As Long = 0
Dim counter As Integer = len - 1
For i = 0 To len - 1
total = total + (Store.Substring(counter, 1) * x)
x *= 2
counter -= 1
Next
Return total
End Function
Private Function octTOdec()
Dim len As Integer = Display.Text.Length
Dim x As Integer = 0
Dim total As Long = 0
Dim counter As Integer = len - 1
For i = 0 To len - 1
total = total + (Display.Text.Substring(counter, 1) * (8 ^ x))
x += 1
counter -= 1
Next
Return total
End Function
Private Function hexTOdec()
Dim len As Integer = Display.Text.Length
Dim x As Integer = 0
Dim total As Long = 0
Dim counter As Integer = len - 1
Dim num As Integer = 0
For i = 0 To len - 1
If Display.Text.Substring(counter, 1).ToLower = "a" Then
num = 10
ElseIf Display.Text.Substring(counter, 1).ToLower = "b" Then
num = 11
ElseIf Display.Text.Substring(counter, 1).ToLower = "c" Then
num = 12
ElseIf Display.Text.Substring(counter, 1).ToLower = "d" Then
num = 13
ElseIf Display.Text.Substring(counter, 1).ToLower = "e" Then
num = 14
ElseIf Display.Text.Substring(counter, 1).ToLower = "f" Then
num = 15
Else
num = CType(Display.Text.Substring(counter, 1), Integer)
End If
total = total + (num * (16 ^ x))
x += 1
counter -= 1
Next
Return total
End Function
Private Sub btnA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnA.Click
Call addToDisplay("A")
End Sub
Private Sub btnB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB.Click
Call addToDisplay("B")
End Sub
Private Sub btnC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnC.Click
Call addToDisplay("C")
End Sub
Private Sub btnD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnD.Click
Call addToDisplay("D")
End Sub
Private Sub btnE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnE.Click
Call addToDisplay("E")
End Sub
Private Sub btnF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnF.Click
Call addToDisplay("F")
End Sub
Private Sub Display_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Display.TextChanged
Dim x As Integer = 0
For i = 0 To Display.Text.Length - 1
If Display.Text.Substring(i, 1) = "." Then
x += 1
End If
Next
If x > 0 Then
Dot = True
Else
Dot = False
End If
End Sub
End Class
Note: It can be shorten by merging the three forms into a single form and by eliminating unwanted lines.
It is consists of three forms.
FORM 1:
Components:
- TextBoxes: Display and MemIndicate.
- Buttons: btnPosNeg, btnClear, btnDelete, btnMemRet, btnMemClear, btnMemAdd, btnMemMinus, btnMemStore, btnMultiply, btnDivide, btnAdd, btnMinus, btnEquals, btnDot, Button0, Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8, Button9.
![]() |
Code:
Imports System.Math
Public Class Form1Dim Operation As String
Dim Dot As Boolean = False
Dim thereIsOp As Boolean = False
Dim num1 As Double
Dim successiveOp As Boolean = False
Dim btnEqualsClicked As Boolean = False
Dim Memory As Double = Nothing
Dim digits As Integer = Nothing
Private Sub btnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiply.Click
performOpAction("multiply")
End Sub
Private Sub btnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDivide.Click
performOpAction("divide")
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
performOpAction("add")
End Sub
Private Sub btnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMinus.Click
performOpAction("minus")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call addToDisplay(1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call addToDisplay(2)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Call addToDisplay(3)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call addToDisplay(4)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Call addToDisplay(5)
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Call addToDisplay(6)
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Call addToDisplay(7)
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Call addToDisplay(8)
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Call addToDisplay(9)
End Sub
Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button0.Click
Call addToDisplay(0)
End Sub
Private Sub btnDot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDot.Click
If thereIsOp = True Then
Display.Text = 0
thereIsOp = False
End If
If Dot = False Then
Display.Text = Display.Text & "."
Dot = True
End If
btnEqualsClicked = False
End Sub
Private Sub btnEqual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEquals.Click
If successiveOp = True Then
Display.Text = performOperation()
End If
thereIsOp = True
successiveOp = False
btnEqualsClicked = True
End Sub
Private Function performOperation()
Dim num As Double
If Operation = "multiply" Then
num = num1 * Display.Text
ElseIf Operation = "divide" Then
num = num1 / Display.Text
ElseIf Operation = "add" Then
num = num1 + Display.Text
ElseIf Operation = "minus" Then
num = num1 - Display.Text
End If
Dot = False
Return num
End Function
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
Display.Text = 0
num1 = Nothing
Operation = "none"
digits = 0
Dot = False
btnEqualsClicked = False
End Sub
Private Sub btnDelete_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If btnEqualsClicked = False Then
If Display.Text.Length > 1 Then
Display.Text = Display.Text.Substring(0, Display.Text.Length - 1)
digits -= 1
Else
Display.Text = Nothing
Display.Text = 0
digits = 0
End If
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub btnposNeg_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPosNeg.Click
Display.Text = Display.Text * -1
End Sub
Private Sub btnPercent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPercent.Click
Display.Text = (Display.Text / 100) * num1
Dot = False
thereIsOp = True
End Sub
Private Sub btnSqrt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSqrt.Click
Display.Text = Sqrt(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnMemRet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemRet.Click
Display.Text = Memory
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemClear.Click
Memory = Nothing
MemIndicate.Text = Nothing
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemAdd.Click
Memory = Memory + Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemMinus.Click
Memory = Memory - Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemStore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemStore.Click
If Display.Text <> "0" Then
If Display.Text <> "0." Then
Memory = Display.Text
MemIndicate.Text = "M"
Else
Display.Text = "0"
End If
End If
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub addToDisplay(ByVal toAdd As Integer)
If digits < 16 Then
If thereIsOp = True Then
Display.Text = Nothing
thereIsOp = False
End If
If Display.Text = "0" Then
Display.Text = Nothing
End If
Display.Text = Display.Text & toAdd
digits += 1
End If
btnEqualsClicked = False
End Sub
Private Sub performOpAction(ByVal OperatorIs As String)
If successiveOp = True Then
Display.Text = performOperation()
End If
Operation = OperatorIs
successiveOp = True
thereIsOp = True
num1 = Display.Text
Display.Text = num1
digits = 0
Dot = False
End Sub
Private Sub Display_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Display.TextChanged
Dim x As Integer = 0
For i = 0 To Display.Text.Length - 1
If Display.Text.Substring(i, 1) = "." Then
x += 1
End If
Next
If x > 0 Then
Dot = True
Else
Dot = False
End If
End Sub
End Class
Component: MenuStrip1
Code:
Public Class Form2
Public standard As New Form1
Public scientific As New Form3
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
standard.TopLevel = False
standard.Location = New System.Drawing.Point(0, 27)
Me.Controls.Add(standard)
scientific.TopLevel = False
scientific.Location = New System.Drawing.Point(0, 27)
Me.Controls.Add(scientific)
standard.Show()
End Sub
Private Sub StandardToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StandardToolStripMenuItem.Click
Me.Size = New System.Drawing.Size(262, 333)
standard.Show()
scientific.Hide()
End Sub
Private Sub ScientificToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ScientificToolStripMenuItem.Click
Me.Size = New System.Drawing.Size(403, 324)
scientific.Show()
standard.Hide()
End Sub
End Class
FORM 3:
Components: Includes all components in form1. (Mod is btnPercent), btnlog, btnReciprocal, btnA, btnB, btnC, btnD, btnE, btnF, RadioButton1 (Bin), RadioButton2 (Dec), RadioButton3 (Oct), RadioButton4 (Hex), btnSine, btnCosine, btnTangent, btnCubeRoot, btnNthRoot, btnSquare, btnCube, btnNthPower, GroupBox1 and GroupBox2.
Code:
Imports System.Math
Public Class Form3
'Declaration and initialization of variables
Dim Operation As String
Dim Dot As Boolean = False
Dim thereIsOp As Boolean = False
Dim num1 As Double
Dim successiveOp As Boolean = False
Dim btnEqualsClicked As Boolean = False
Dim Memory As Double = Nothing
Dim digits As Integer = Nothing
Dim previous As String = "dec"
Dim present As String = "dec"
Private Sub btnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiply.Click
performOpAction("multiply") 'Operator is multiply
End Sub
Private Sub btnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDivide.Click
performOpAction("divide") 'Operator is divide
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
performOpAction("add") 'Operator is add
End Sub
Private Sub btnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMinus.Click
performOpAction("minus") 'Operator is minus
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call addToDisplay("1")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call addToDisplay("2")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Call addToDisplay("3")
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call addToDisplay("4")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Call addToDisplay("5")
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Call addToDisplay("6")
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Call addToDisplay("7")
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Call addToDisplay("8")
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Call addToDisplay("9")
End Sub
Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button0.Click
Call addToDisplay("0")
End Sub
Private Sub btnDot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDot.Click
'if opertor has been selected, the display will be overwritten instead of adding dot in the end
If thereIsOp = True Then
Display.Text = 0
thereIsOp = False
End If
If Dot = False Then 'if dot is not yet present, it will be added in the display
Display.Text = Display.Text & "."
Dot = True
End If
btnEqualsClicked = False
End Sub
Private Sub btnEqual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEquals.Click
If successiveOp = True Then
Display.Text = performOperation() 'perform the operation function
End If
thereIsOp = True
successiveOp = False
btnEqualsClicked = True
End Sub
Private Function performOperation()
'operation process
Dim num As Double
Dim num2 As Double
If RadioButton1.Checked = True Then
num2 = binTOdec()
ElseIf RadioButton2.Checked = True Then
num2 = Display.Text
ElseIf RadioButton3.Checked = True Then
num2 = octTOdec()
ElseIf RadioButton4.Checked = True Then
num2 = hexTOdec()
End If
If Operation = "multiply" Then
num = num1 * num2
ElseIf Operation = "divide" Then
num = num1 / num2
ElseIf Operation = "add" Then
num = num1 + num2
ElseIf Operation = "minus" Then
num = num1 - num2
ElseIf Operation = "root" Then
num = Display.Text ^ (1 / num1)
ElseIf Operation = "power" Then
num = num1 ^ num2
ElseIf Operation = "modulus" Then
num = num1 Mod num2
End If
Dot = False
Return num
End Function
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
'clear the display and set some variables to initial value
Display.Text = 0
num1 = Nothing
Operation = "none"
digits = 0
Dot = False
btnEqualsClicked = False
End Sub
Private Sub btnDelete_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
'delete one by one
If btnEqualsClicked = False Then
If Display.Text.Length > 1 Then
Display.Text = Display.Text.Substring(0, Display.Text.Length - 1)
digits -= 1
Else
Display.Text = Nothing
Display.Text = 0
digits = 0
End If
End If
End Sub
Private Sub btnposNeg_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPosNeg.Click
Display.Text = Display.Text * -1
End Sub
Private Sub btnPercent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPercent.Click
performOpAction("modulus")
End Sub
Private Sub btnSqrt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSqrt.Click
Display.Text = Sqrt(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnMemRet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemRet.Click
Display.Text = Memory
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemClear.Click
Memory = Nothing
MemIndicate.Text = Nothing
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemAdd.Click
Memory = Memory + Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemMinus.Click
Memory = Memory - Display.Text
If Memory = 0 Then
MemIndicate.Text = Nothing
Else
MemIndicate.Text = "M"
End If
Display.Text = Int(Display.Text)
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub btnMemStore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMemStore.Click
If Display.Text <> "0" Then
If Display.Text <> "0." Then
Memory = Display.Text
MemIndicate.Text = "M"
Else
Display.Text = "0"
End If
End If
thereIsOp = True
digits = 0
Dot = False
btnEqualsClicked = True
End Sub
Private Sub addToDisplay(ByVal toAdd As Char)
If digits < 16 Then
If thereIsOp = True Then
Display.Text = Nothing
thereIsOp = False
End If
If Display.Text = "0" Then
Display.Text = Nothing
End If
Display.Text = Display.Text & toAdd
digits += 1
End If
btnEqualsClicked = False
End Sub
Private Sub performOpAction(ByVal OperatorIs As String)
If successiveOp = True Then
Display.Text = performOperation()
End If
If RadioButton1.Checked = True Then
num1 = binTOdec()
ElseIf RadioButton2.Checked = True Then
num1 = Display.Text
Display.Text = num1
ElseIf RadioButton3.Checked = True Then
num1 = octTOdec()
ElseIf RadioButton4.Checked = True Then
num1 = hexTOdec()
End If
Operation = OperatorIs
successiveOp = True
thereIsOp = True
digits = 0
Dot = False
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
disableButtons()
present = "bin"
Call baseConverter()
previous = "bin"
thereIsOp = True
End Sub
Private Sub disableButtons()
btnSine.Enabled = False
btnCosine.Enabled = False
btnTangent.Enabled = False
btnCubeRoot.Enabled = False
btnReciprocal.Enabled = False
btnNthRoot.Enabled = False
btnSqrt.Enabled = False
btnlog.Enabled = False
btnSquare.Enabled = False
btnCube.Enabled = False
btnNthPower.Enabled = False
btnA.Enabled = False
btnB.Enabled = False
btnC.Enabled = False
btnD.Enabled = False
btnE.Enabled = False
btnF.Enabled = False
btnPosNeg.Enabled = False
btnMemRet.Enabled = False
btnMemClear.Enabled = False
btnMemMinus.Enabled = False
btnMemAdd.Enabled = False
btnMemStore.Enabled = False
btnPercent.Enabled = False
btnlog.Enabled = False
btnReciprocal.Enabled = False
btnDot.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
btnAdd.Enabled = False
btnMultiply.Enabled = False
btnDivide.Enabled = False
btnMinus.Enabled = False
End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
disableButtons()
present = "oct"
Call baseConverter()
previous = "oct"
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
thereIsOp = True
End Sub
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
disableButtons()
present = "hex"
Call baseConverter()
previous = "hex"
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
btnA.Enabled = True
btnB.Enabled = True
btnC.Enabled = True
btnD.Enabled = True
btnE.Enabled = True
btnF.Enabled = True
thereIsOp = True
End Sub
Private Sub enableButtons()
btnSine.Enabled = True
btnCosine.Enabled = True
btnTangent.Enabled = True
btnCubeRoot.Enabled = True
btnReciprocal.Enabled = True
btnNthRoot.Enabled = True
btnSqrt.Enabled = True
btnlog.Enabled = True
btnSquare.Enabled = True
btnCube.Enabled = True
btnNthPower.Enabled = True
btnPosNeg.Enabled = True
btnMemRet.Enabled = True
btnMemClear.Enabled = True
btnMemMinus.Enabled = True
btnMemAdd.Enabled = True
btnMemStore.Enabled = True
btnPercent.Enabled = True
btnlog.Enabled = True
btnReciprocal.Enabled = True
btnDot.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
btnAdd.Enabled = True
btnMultiply.Enabled = True
btnDivide.Enabled = True
btnMinus.Enabled = True
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
enableButtons()
present = "dec"
Call baseConverter()
previous = "dec"
thereIsOp = True
End Sub
Private Sub baseConverter()
If previous <> present Then
Try
If previous = "dec" And present = "bin" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 2)
ElseIf previous = "dec" And present = "oct" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 8)
ElseIf previous = "dec" And present = "hex" Then
Display.Text = Convert.ToString(CType(Display.Text, Long), 16)
ElseIf previous = "bin" And present = "dec" Then
Display.Text = Convert.ToString(binTOdec(), 10)
ElseIf previous = "oct" And present = "dec" Then
Display.Text = Convert.ToString(octTOdec(), 10)
ElseIf previous = "hex" And present = "dec" Then
Display.Text = Convert.ToString(hexTOdec(), 10)
ElseIf previous = "bin" And present = "oct" Then
Display.Text = Convert.ToString(binTOdec(), 8)
ElseIf previous = "bin" And present = "hex" Then
Display.Text = Convert.ToString(binTOdec(), 16)
ElseIf previous = "oct" And present = "bin" Then
Display.Text = Convert.ToString(octTOdec(), 2)
ElseIf previous = "oct" And present = "hex" Then
Display.Text = Convert.ToString(octTOdec(), 16)
ElseIf previous = "hex" And present = "bin" Then
Display.Text = Convert.ToString(hexTOdec(), 2)
ElseIf previous = "hex" And present = "oct" Then
Display.Text = Convert.ToString(hexTOdec(), 8)
End If
Catch
End Try
End If
End Sub
Private Sub btnSine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSine.Click
Display.Text = Sin((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnCosine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCosine.Click
Display.Text = Cos((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnTangent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTangent.Click
Display.Text = Tan((Display.Text * PI) / 180)
Dot = False
thereIsOp = True
End Sub
Private Sub btnCubeRoot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCubeRoot.Click
Display.Text = Display.Text ^ (1 / 3)
Dot = False
thereIsOp = True
End Sub
Private Sub btnNthRoot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNthRoot.Click
performOpAction("root")
End Sub
Private Sub btnlog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlog.Click
Display.Text = Log10(Display.Text)
Dot = False
thereIsOp = True
End Sub
Private Sub btnReciprocal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReciprocal.Click
Display.Text = 1 / Display.Text
Dot = False
thereIsOp = True
End Sub
Private Sub btnSquare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSquare.Click
Display.Text = Display.Text ^ 2
Dot = False
thereIsOp = True
End Sub
Private Sub btnCube_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCube.Click
Display.Text = Display.Text ^ 2
Dot = False
thereIsOp = True
End Sub
Private Sub btnNthPower_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNthPower.Click
performOpAction("power")
End Sub
Private Sub Display_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Display.KeyDown
End Sub
Private Function binTOdec()
Dim Store As String = Display.Text
Dim len As Integer = Store.Length
Dim x As Integer = 1
Dim total As Long = 0
Dim counter As Integer = len - 1
For i = 0 To len - 1
total = total + (Store.Substring(counter, 1) * x)
x *= 2
counter -= 1
Next
Return total
End Function
Private Function octTOdec()
Dim len As Integer = Display.Text.Length
Dim x As Integer = 0
Dim total As Long = 0
Dim counter As Integer = len - 1
For i = 0 To len - 1
total = total + (Display.Text.Substring(counter, 1) * (8 ^ x))
x += 1
counter -= 1
Next
Return total
End Function
Private Function hexTOdec()
Dim len As Integer = Display.Text.Length
Dim x As Integer = 0
Dim total As Long = 0
Dim counter As Integer = len - 1
Dim num As Integer = 0
For i = 0 To len - 1
If Display.Text.Substring(counter, 1).ToLower = "a" Then
num = 10
ElseIf Display.Text.Substring(counter, 1).ToLower = "b" Then
num = 11
ElseIf Display.Text.Substring(counter, 1).ToLower = "c" Then
num = 12
ElseIf Display.Text.Substring(counter, 1).ToLower = "d" Then
num = 13
ElseIf Display.Text.Substring(counter, 1).ToLower = "e" Then
num = 14
ElseIf Display.Text.Substring(counter, 1).ToLower = "f" Then
num = 15
Else
num = CType(Display.Text.Substring(counter, 1), Integer)
End If
total = total + (num * (16 ^ x))
x += 1
counter -= 1
Next
Return total
End Function
Private Sub btnA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnA.Click
Call addToDisplay("A")
End Sub
Private Sub btnB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB.Click
Call addToDisplay("B")
End Sub
Private Sub btnC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnC.Click
Call addToDisplay("C")
End Sub
Private Sub btnD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnD.Click
Call addToDisplay("D")
End Sub
Private Sub btnE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnE.Click
Call addToDisplay("E")
End Sub
Private Sub btnF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnF.Click
Call addToDisplay("F")
End Sub
Private Sub Display_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Display.TextChanged
Dim x As Integer = 0
For i = 0 To Display.Text.Length - 1
If Display.Text.Substring(i, 1) = "." Then
x += 1
End If
Next
If x > 0 Then
Dot = True
Else
Dot = False
End If
End Sub
End Class
Note: It can be shorten by merging the three forms into a single form and by eliminating unwanted lines.



No comments:
Post a Comment