Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Author: Mike Camenzuli, 100374827
  2. 'Title: Lab 2 - Semester Average
  3. 'Date: Feb.20/2018
  4. 'Description: Calculate student averages based on user input.
  5. Option Strict On
  6. Public Class frmSemGrades
  7.     Dim GradeDouble As Double          'user inputs
  8.    Dim GradeArray(5) As Double        'array for grades to go into
  9.    Dim GradeSum As Double             'variable for grades to be summed up
  10.    Dim PercentGrade As Double
  11.  
  12.     Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
  13.         Me.Close()
  14.     End Sub
  15.  
  16.     Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
  17.         tbGradeCourse1.Text = ""
  18.         tbGradeCourse2.Text = ""
  19.         tbGradeCourse3.Text = ""
  20.         tbGradeCourse4.Text = ""
  21.         tbGradeCourse5.Text = ""
  22.         tbGradeCourse6.Text = ""
  23.         tbGradeSem.Text = ""
  24.         tbLetterGradeSem.Text = ""
  25.         tbLetterGrade1.Text = ""
  26.         tbLetterGrade2.Text = ""
  27.         tbLetterGrade3.Text = ""
  28.         tbLetterGrade4.Text = ""
  29.         tbLetterGrade5.Text = ""
  30.         tbLetterGrade6.Text = ""
  31.         tbErrorOutput.Text = ""
  32.         tbGradeCourse1.Focus()
  33.         btnCalculate.Enabled = True
  34.         tbGradeCourse1.ReadOnly = False
  35.         tbGradeCourse2.ReadOnly = False
  36.         tbGradeCourse3.ReadOnly = False
  37.         tbGradeCourse4.ReadOnly = False
  38.         tbGradeCourse5.ReadOnly = False
  39.         tbGradeCourse6.ReadOnly = False
  40.     End Sub
  41.     Private Function validNumber(currentGrade As String) As Double
  42.         Dim returnNumber As Double = 0.0
  43.  
  44.         tbErrorOutput.ResetText()
  45.  
  46.         If (IsNumeric(currentGrade) = False) Then
  47.             returnNumber = 1
  48.             tbErrorOutput.Text += $"Grade input must be numeric.{vbCrLf}"
  49.         ElseIf (CDbl(currentGrade) < 0.0) Or (CDbl(currentGrade) > 100.0) Then
  50.             returnNumber = 2
  51.             tbErrorOutput.Text += $"Please enter a number within 0-100.{vbCrLf}"
  52.         End If
  53.  
  54.         Return returnNumber
  55.  
  56.     End Function
  57.  
  58.  
  59.     Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
  60.  
  61.         For Index = 0 To 5
  62.             If tbGradeCourse1.Text = "" Then
  63.                 tbErrorOutput.Text = "Entry must be Numeric."
  64.             ElseIf tbGradeCourse2.Text = "" Then
  65.                 tbErrorOutput.Text = "Entry must be Numeric."
  66.             ElseIf tbGradeCourse3.Text = "" Then
  67.                 tbErrorOutput.Text = "Entry must be Numeric."
  68.             ElseIf tbGradeCourse4.Text = "" Then
  69.                 tbErrorOutput.Text = "Entry must be Numeric."
  70.             ElseIf tbGradeCourse5.Text = "" Then
  71.                 tbErrorOutput.Text = "Entry must be Numeric."
  72.             ElseIf tbGradeCourse6.Text = "" Then
  73.                 tbErrorOutput.Text = "Entry must be Numeric."
  74.  
  75.             Else
  76.  
  77.                 GradeSum += GradeArray(Index)
  78.  
  79.             End If
  80.         Next
  81.  
  82.         tbGradeSem.Text = $"{Math.Round(GradeSum / 6, 2)}"
  83.         tbLetterGradeSem.Text = LetterGrade(CDbl(tbGradeSem.Text))
  84.  
  85.         tbGradeCourse1.ReadOnly = True
  86.         tbGradeCourse2.ReadOnly = True
  87.         tbGradeCourse3.ReadOnly = True
  88.         tbGradeCourse4.ReadOnly = True
  89.         tbGradeCourse5.ReadOnly = True
  90.         tbGradeCourse6.ReadOnly = True
  91.         btnCalculate.Enabled = False
  92.     End Sub
  93.  
  94.     Private Function LetterGrade(Letter As Double) As String
  95.         Dim returnLetterGrade As String
  96.  
  97.  
  98.         Select Case Letter
  99.             Case 90 To 100
  100.                 returnLetterGrade = "A+"
  101.             Case 85 To 89.99
  102.                 returnLetterGrade = "A"
  103.             Case 80 To 84.99
  104.                 returnLetterGrade = "A-"
  105.             Case 77 To 79.99
  106.                 returnLetterGrade = "B+"
  107.             Case 73 To 76.99
  108.                 returnLetterGrade = "B"
  109.             Case 70 To 72.99
  110.                 returnLetterGrade = "B-"
  111.             Case 67 To 69.99
  112.                 returnLetterGrade = "C+"
  113.             Case 63 To 66.99
  114.                 returnLetterGrade = "C"
  115.             Case 60 To 62.99
  116.                 returnLetterGrade = "C-"
  117.             Case 57 To 59.99
  118.                 returnLetterGrade = "D+"
  119.             Case 53 To 56.99
  120.                 returnLetterGrade = "D"
  121.             Case 50 To 52.99
  122.                 returnLetterGrade = "D-"
  123.             Case 0 To 49.99
  124.                 returnLetterGrade = "F"
  125.         End Select
  126.  
  127.         Return returnLetterGrade
  128.  
  129.     End Function
  130.     Private Sub tbGradeCourse1_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse1.LostFocus
  131.         If (validNumber(tbGradeCourse1.Text) = 0) Then
  132.             Double.TryParse(tbGradeCourse1.Text, PercentGrade)
  133.             tbLetterGrade1.Text = LetterGrade(PercentGrade)
  134.             GradeArray(0) = PercentGrade
  135.         Else
  136.             tbGradeCourse1.Clear()
  137.             tbGradeCourse1.Focus()
  138.         End If
  139.     End Sub
  140.  
  141.     Private Sub tbGradeCourse2_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse2.LostFocus
  142.         If (validNumber(tbGradeCourse2.Text) = 0) Then
  143.             Double.TryParse(tbGradeCourse2.Text, PercentGrade)
  144.             tbLetterGrade2.Text = LetterGrade(PercentGrade)
  145.             GradeArray(1) = PercentGrade
  146.         Else
  147.             tbGradeCourse2.Clear()
  148.             tbGradeCourse2.Focus()
  149.         End If
  150.     End Sub
  151.  
  152.     Private Sub tbGradeCourse3_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse3.LostFocus
  153.         If (validNumber(tbGradeCourse3.Text) = 0) Then
  154.             Double.TryParse(tbGradeCourse3.Text, PercentGrade)
  155.             tbLetterGrade3.Text = LetterGrade(PercentGrade)
  156.             GradeArray(2) = PercentGrade
  157.         Else
  158.             tbGradeCourse3.Clear()
  159.             tbGradeCourse3.Focus()
  160.         End If
  161.     End Sub
  162.  
  163.     Private Sub tbGradeCourse4_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse4.LostFocus
  164.         If (validNumber(tbGradeCourse4.Text) = 0) Then
  165.             Double.TryParse(tbGradeCourse4.Text, PercentGrade)
  166.             tbLetterGrade4.Text = LetterGrade(PercentGrade)
  167.             GradeArray(3) = PercentGrade
  168.         Else
  169.             tbGradeCourse4.Clear()
  170.             tbGradeCourse4.Focus()
  171.         End If
  172.     End Sub
  173.  
  174.     Private Sub tbGradeCourse5_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse5.LostFocus
  175.         If (validNumber(tbGradeCourse5.Text) = 0) Then
  176.             Double.TryParse(tbGradeCourse5.Text, PercentGrade)
  177.             tbLetterGrade5.Text = LetterGrade(PercentGrade)
  178.             GradeArray(4) = PercentGrade
  179.         Else
  180.             tbGradeCourse5.Clear()
  181.             tbGradeCourse5.Focus()
  182.         End If
  183.     End Sub
  184.  
  185.     Private Sub tbGradeCourse6_LostFocus(sender As Object, e As EventArgs) Handles tbGradeCourse6.LostFocus
  186.         If (validNumber(tbGradeCourse6.Text) = 0) Then
  187.             Double.TryParse(tbGradeCourse6.Text, PercentGrade)
  188.             tbLetterGrade6.Text = LetterGrade(PercentGrade)
  189.             GradeArray(5) = PercentGrade
  190.         Else
  191.             tbGradeCourse6.Clear()
  192.             tbGradeCourse6.Focus()
  193.         End If
  194.     End Sub
  195. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement