Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am working on a GPA calculator for my visual basic class, and am stuck at a pa

ID: 3664876 • Letter: I

Question

I am working on a GPA calculator for my visual basic class, and am stuck at a part. What i need to do is enter the name of a class, hit the "add class button" and have the VB program capture the string and populate to the list view screen. But the program i receved from a friend of mine who is also taking the class seems to not be working for me. See the code below to understand what i am working on.

the end goal for this is to be able to enter the name of the class, enter the test scores, produce a grade average, show the GPA average, and save the classes. Thanks!

Public Class GPA_form
'Private WithEvents mfrmEditClass As frmEditClass
Private Classes As List(Of ClassObject)

Private Sub exitButton_Click(sender As Object, e As EventArgs) Handles exitButton.Click
Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(MultipleClasses))
Dim Path As String


Path = "C:TempMultipleClasses.xml"

Dim file As New System.IO.StreamWriter(Path)

Dim mMultipleClasses As New MultipleClasses
mMultipleClasses.Classes = Classes


writer.Serialize(file, mMultipleClasses)

file.Close()
End
End Sub

Private Sub gpaData_TextChanged(sender As Object, e As EventArgs) Handles gpaData.TextChanged

End Sub

'Private Sub btnNewClass_Click(sender As Object, e As EventArgs) Handles btnNewClass.Click
'mfrmEditClass = New frmEditClass
'Dim mClassObject As New ClassObject
'mClassObject.ClassName = "Test"
'mfrmEditClass.mClassObject = mClassObject
'mfrmEditClass.ShowDialog()

'End Sub

' Private Sub mfrmEditClass_ClassComplete() Handles mfrmEditClass.ClassComplete
'Dim mClassObject As ClassObject
'mClassObject = mfrmEditClass.mClassObject
'Classes.Add(mClassObject)
' LoadClasses()

'End Sub

' Public Sub New()

' This call is required by the designer.
'InitializeComponent()

' Add any initialization after the InitializeComponent() call.

' End Sub

'CHANGE

Private Sub btnNewClass_Click(sender As Object, e As EventArgs) Handles btnNewClass.Click
Dim studentCount As String
Dim lstClasses As ListView
Dim output As String = ""
'Dim CalculateStudentAverage As String


  

End Sub
Private Function LoadClasses()
Dim lstvw As ListView
lstvw = Me.lstClasses
lstvw.Clear()
lstvw.Columns.Add("Name")
lstvw.Columns.Add("Tests")
lstvw.View = View.Details

Dim lstItem As ListViewItem
Dim lstSubItem As ListViewItem.ListViewSubItem

For Each mClass As ClassObject In Classes
lstItem = New ListViewItem
lstItem.Text = mClass.ClassName

lstSubItem = New ListViewItem.ListViewSubItem

lstSubItem.Text = mClass.Tests.Count

lstItem.SubItems.Add(lstSubItem)

lstvw.Items.Add(lstItem)

Next
End Function

Private Sub GPA_form_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed

End Sub
Private Sub GPA_form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Classes = New List(Of ClassObject)
Dim Path As String
Dim FilePath As String

Path = "C:TempMultipleClasses.xml"
FilePath = "C://Temp//MultipleClasses.xml"
If My.Computer.FileSystem.FileExists(FilePath) Then
Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(MultipleClasses))
Dim file As New System.IO.StreamReader(Path)
Dim mMultipleClasses As MultipleClasses = CType(reader.Deserialize(file), MultipleClasses)
Classes = mMultipleClasses.Classes
LoadClasses()
file.Close()

End If

End Sub

Private Sub btnGPA_Click(sender As Object, e As EventArgs) Handles btnGPA.Click
Dim dblTotal As Double

dblTotal = 0

For Each mClass As ClassObject In Classes
dblTotal = dblTotal + mClass.TestAverage
Next

Dim dblAverage As Double

dblAverage = dblTotal / Classes.Count

Me.gpaData.Text = dblAverage

End Sub


Public Sub frmEditClass()
'Dim mClassObject As ClassObject
End Sub
Public Event ClassComplete()


Public Sub New()

' This call is required by the designer.
InitializeComponent()


' Add any initialization after the InitializeComponent() call.

End Sub

Private Sub frmEditClass_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Me.txtClassName.Text = mClassObject.ClassName
LoadTests()
End Sub

Private Function LoadTests()
Dim lstvw = Me.lstTests
'lstvw.Clear()
'lstvw.Columns.Add("Grade")
'lstvw.View = View.Details

Dim lstItem As ListViewItem
' For Each mTest As TestObject In mClassObject.Tests
lstItem = New ListViewItem
'lstItem.Text = mTest.Grade
Me.lstTests.Items.Add(lstItem)
'Next
End Function

Private Sub btnNewTest_Click(sender As Object, e As EventArgs) Handles btnNewTest.Click
Dim mTest As New TestObject
mTest.Grade = Me.txtGrade.Text
'mClassObject.addTest(mTest)
LoadTests()
End Sub

Private Sub btnComplete_Click(sender As Object, e As EventArgs) Handles btnComplete.Click
'mClassObject.ClassName = Me.txtClassName.Text
RaiseEvent ClassComplete()
Me.Close()

End Sub


Private Function txtClassName() As Object
Throw New NotImplementedException
End Function

  

End Class

This is the Form

It compiles it does not collect or save inputted data

Explanation / Answer

The below is a quick code for a very basic GPA calculator. It doesn't do any validation of the correct data input, and the listings in the list box do not line up.


There are 3 buttons and a list box on the form.

Button 1 is for entering your courses, hours and grades.

Button 2 is to clear the list box.

Button 3 is to close the form

The following grades are valid: A, A-,B+, B, B-, C+, C, C-, D+, D, D-, F and WF. Do not use WF, except in rare cases


Public Class Form1
Public Course, Grade As String
Public GPA, CreditHours, TotalGradePoints, TotalCreditHours, GradePoints, GradePointsFactor As Double
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

Do
Course = InputBox(" Enter course name or EXIT to to exit ")
If Course.ToUpper = "EXIT" Then
Exit Do
End If
CreditHours = InputBox("Enter credit hours for this course")
TotalCreditHours += CreditHours
Grade = InputBox("Enter course grade")
Grade = Grade.ToUpper
GradePointsFactor = Grades()
GradePoints = CreditHours * GradePointsFactor
TotalGradePoints += GradePoints
ListBox1.Items.Add(Course & " " & CreditHours & " " & Grade & " " & GradePoints)
Loop
GPA = TotalGradePoints / TotalCreditHours
ListBox1.Items.Add(" ")
ListBox1.Items.Add(" ")
ListBox1.Items.Add("Your total course hours were " & TotalCreditHours & ", and your total grade points were " & TotalGradePoints)
ListBox1.Items.Add("Your GPA is " & GPA)
End Sub
Function Grades()
'Dim GradePoints As Double
If Grade = "A" Then
GradePointsFactor = 4
ElseIf Grade = "A-" Then
GradePointsFactor = 3.7
ElseIf Grade = "B+" Then
GradePointsFactor = 3.33
ElseIf Grade = "B" Then
GradePointsFactor = 3
ElseIf Grade = "B-" Then
GradePointsFactor = 2.7
ElseIf Grade = "C+" Then
GradePointsFactor = 2.3
ElseIf Grade = "C" Then
GradePointsFactor = 2
ElseIf Grade = "C-" Then
GradePointsFactor = 1.7
ElseIf Grade = "D+" Then
GradePointsFactor = 1.3
ElseIf Grade = "D" Then
GradePointsFactor = 1
ElseIf Grade = "D-" Then
GradePointsFactor = 0.7
ElseIf Grade = "F" Then
GradePointsFactor = 0
ElseIf Grade = "WF" Then
GradePointsFactor = 0
End If
Return GradePointsFactor
End Function

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
End Sub

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote