Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Author: Mike Camenzuli, 100374827
- 'Title: Lab 2 - Semester Average
- 'Date: Feb.20/2018
- 'Description: Calculate student averages based on user input.
- Option Strict On
- Public Class frmSemGrades
- Dim GradeDouble As Double 'user inputs
- Dim GradeArray(5) As Double 'array for grades to go into
- Dim GradeSum As Double 'variable for grades to be summed up
- Dim PercentGrade As Double
- Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
- Me.Close()
- End Sub
- Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
- tbGradeCourse1.Text = ""
- tbGradeCourse2.Text = ""
- tbGradeCourse3.Text = ""
- tbGradeCourse4.Text = ""
- tbGradeCourse5.Text = ""
- tbGradeCourse6.Text = ""
- tbGradeSem.Text = ""
- tbLetterGradeSem.Text = ""
- tbLetterGrade1.Text = ""
- tbLetterGrade2.Text = ""
- tbLetterGrade3.Text = ""
- tbLetterGrade4.Text = ""
- tbLetterGrade5.Text = ""
- tbLetterGrade6.Text = ""
- tbErrorOutput.Text = ""
- tbGradeCourse1.Focus()
- btnCalculate.Enabled = True
- tbGradeCourse1.ReadOnly = False
- tbGradeCourse2.ReadOnly = False
- tbGradeCourse3.ReadOnly = False
- tbGradeCourse4.ReadOnly = False
- tbGradeCourse5.ReadOnly = False
- tbGradeCourse6.ReadOnly = False
- End Sub
- Private Function validNumber(currentGrade As String) As Double
- Dim returnNumber As Double = 0.0
- tbErrorOutput.ResetText()
- If (IsNumeric(currentGrade) = False) Then
- returnNumber = 1
- tbErrorOutput.Text += $"Grade input must be numeric.{vbCrLf}"
- ElseIf (CDbl(currentGrade) < 0.0) Or (CDbl(currentGrade) > 100.0) Then
- returnNumber = 2
- tbErrorOutput.Text += $"Please enter a number within 0-100.{vbCrLf}"
- End If
- Return returnNumber
- End Function
- Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
- For Index = 0 To 5
- If tbGradeCourse1.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- ElseIf tbGradeCourse2.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- ElseIf tbGradeCourse3.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- ElseIf tbGradeCourse4.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- ElseIf tbGradeCourse5.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- ElseIf tbGradeCourse6.Text = "" Then
- tbErrorOutput.Text = "Entry must be Numeric."
- Else
- GradeSum += GradeArray(Index)
- End If
- Next
- tbGradeSem.Text = $"{Math.Round(GradeSum / 6, 2)}"
- tbLetterGradeSem.Text = LetterGrade(CDbl(tbGradeSem.Text))
- tbGradeCourse1.ReadOnly = True
- tbGradeCourse2.ReadOnly = True
- tbGradeCourse3.ReadOnly = True
- tbGradeCourse4.ReadOnly = True
- tbGradeCourse5.ReadOnly = True
- tbGradeCourse6.ReadOnly = True
- btnCalculate.Enabled = False
- End Sub
- Private Function LetterGrade(Letter As Double) As String
- Dim returnLetterGrade As String
- Select Case Letter
- Case 90 To 100
- returnLetterGrade = "A+"
- Case 85 To 89.99
- returnLetterGrade = "A"
- Case 80 To 84.99
- returnLetterGrade = "A-"
- Case 77 To 79.99
- returnLetterGrade = "B+"
- Case 73 To 76.99
- returnLetterGrade = "B"
- Case 70 To 72.99
- returnLetterGrade = "B-"
- Case 67 To 69.99
- returnLetterGrade = "C+"
- Case 63 To 66.99
- returnLetterGrade = "C"
- Case 60 To 62.99
- returnLetterGrade = "C-"
- Case 57 To 59.99
- returnLetterGrade = "D+"
- Case 53 To 56.99
- returnLetterGrade = "D"
- Case 50 To 52.99
- returnLetterGrade = "D-"
- Case 0 To 49.99
- returnLetterGrade = "F"
- End Select
- Return returnLetterGrade
- End Function
- Private Sub tbGradeCourse1_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse1.LostFocus
- If (validNumber(tbGradeCourse1.Text) = 0) Then
- Double.TryParse(tbGradeCourse1.Text, PercentGrade)
- tbLetterGrade1.Text = LetterGrade(PercentGrade)
- GradeArray(0) = PercentGrade
- Else
- tbGradeCourse1.Clear()
- tbGradeCourse1.Focus()
- End If
- End Sub
- Private Sub tbGradeCourse2_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse2.LostFocus
- If (validNumber(tbGradeCourse2.Text) = 0) Then
- Double.TryParse(tbGradeCourse2.Text, PercentGrade)
- tbLetterGrade2.Text = LetterGrade(PercentGrade)
- GradeArray(1) = PercentGrade
- Else
- tbGradeCourse2.Clear()
- tbGradeCourse2.Focus()
- End If
- End Sub
- Private Sub tbGradeCourse3_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse3.LostFocus
- If (validNumber(tbGradeCourse3.Text) = 0) Then
- Double.TryParse(tbGradeCourse3.Text, PercentGrade)
- tbLetterGrade3.Text = LetterGrade(PercentGrade)
- GradeArray(2) = PercentGrade
- Else
- tbGradeCourse3.Clear()
- tbGradeCourse3.Focus()
- End If
- End Sub
- Private Sub tbGradeCourse4_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse4.LostFocus
- If (validNumber(tbGradeCourse4.Text) = 0) Then
- Double.TryParse(tbGradeCourse4.Text, PercentGrade)
- tbLetterGrade4.Text = LetterGrade(PercentGrade)
- GradeArray(3) = PercentGrade
- Else
- tbGradeCourse4.Clear()
- tbGradeCourse4.Focus()
- End If
- End Sub
- Private Sub tbGradeCourse5_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse5.LostFocus
- If (validNumber(tbGradeCourse5.Text) = 0) Then
- Double.TryParse(tbGradeCourse5.Text, PercentGrade)
- tbLetterGrade5.Text = LetterGrade(PercentGrade)
- GradeArray(4) = PercentGrade
- Else
- tbGradeCourse5.Clear()
- tbGradeCourse5.Focus()
- End If
- End Sub
- Private Sub tbGradeCourse6_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse6.LostFocus
- If (validNumber(tbGradeCourse6.Text) = 0) Then
- Double.TryParse(tbGradeCourse6.Text, PercentGrade)
- tbLetterGrade6.Text = LetterGrade(PercentGrade)
- GradeArray(5) = PercentGrade
- Else
- tbGradeCourse6.Clear()
- tbGradeCourse6.Focus()
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement