Results 1 to 7 of 7

Thread: MsgBox Troubles

  1. #1

    Thread Starter
    New Member
    Join Date
    Sep 2003
    Posts
    4

    MsgBox Troubles

    Can someone please tell me why I can't get the finalGrade value printed out in the MsgBox.





    <HTML>
    <HEAD>
    <TITLE>Michael Cashe : Grade Calculator : Project 2 : INSC 497</TITLE>
    <SCRIPT type="text/vbscript" LANGUAGE="vbscript">

    Sub cmdCalculate_OnClick()

    Dim quizGrade1
    Dim quizGrade2
    Dim quizGrade3
    Dim finalGrade

    ' Perform grade calculations.
    finalGrade = document.frmCalculator.quizGrade1 + _
    document.frmCalculator.quizGrade2 + _
    document.frmCalculator.quizGrade3

    ' Display the results.

    Message = "The summary report of grades entered is: "
    Message = Message & "Final Grade: " & TABSPACE & finalGrade & CRLF
    MsgBox (Message),,"Grade Summary"
    End Sub

    </SCRIPT>
    </HEAD>

    <BODY>
    <H1>The Grade Calculator</H1>
    <P> This program will take user input for 8 grades, calculate them
    and then output summary information.</P>

    <FORM NAME="frmCalculator">

    <TABLE BORDER = "3">
    <THEAD><TR><TH>Grade Type</TH>
    <TH>Grades</TH></TR></THEAD>
    <TR>
    <TD><B>Quiz Grades:</B></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade1" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade2" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade3" SIZE=5></TD>
    </TR>

    </TABLE>

    <BR>

    <INPUT TYPE="Button" NAME="cmdCalculate" VALUE="Calculate Grades">

    </FORM>
    </BODY>
    </HTML>

  2. #2
    Frenzied Member andreys's Avatar
    Join Date
    Sep 2002
    Location
    Los Angeles
    Posts
    1,615
    Change to:
    Code:
    Message = "The summary report of grades entered is: "
    Message = Message & "Final Grade: " & vbTab & finalGrade & vbCrLf
    MsgBox Message, ,"Grade Summary"
    Visit my PROJECTS @ www.asprojects.com

  3. #3
    Frenzied Member andreys's Avatar
    Join Date
    Sep 2002
    Location
    Los Angeles
    Posts
    1,615
    Just noticed, change all thing to this. It prevent from error if not numeric values entered, or there is no entry at all.
    Code:
    Sub cmdCalculate_OnClick()
    Dim quizGrade1
    Dim quizGrade2
    Dim quizGrade3
    Dim finalGrade
    
    on error resume next
    ' Perform grade calculations.
    finalGrade = cint("0" & document.frmCalculator.quizGrade1.value) + _
    	cint("0" & document.frmCalculator.quizGrade2.value) + _
    	cint("0" & document.frmCalculator.quizGrade3.value)
    
    ' Display the results.
    
    if err.number<>0 then
    	Message =  "Error in Calculation! Enter numbers only, please."
    else
    	Message = "The summary report of grades entered is: " & vbCrLf & _
    	          "Final Grade: " & vbTab & finalGrade
    end if
    
    MsgBox Message, ,"Grade Summary"
    
    End Sub
    Last edited by andreys; Sep 16th, 2003 at 01:08 PM.
    Visit my PROJECTS @ www.asprojects.com

  4. #4

    Thread Starter
    New Member
    Join Date
    Sep 2003
    Posts
    4
    Andreys, thanks a lot. That was plaguing me for a couple of days. I have another question. Is there a vb method that will allow me to test whether or not a person entered a number such as 99.5 as opposed to 99.51. In my assignment the user is not to be allowed to enter more than 1 number after the decimal point. I hope this doesn't call for a complex parsing algorithm. Thanks,
    mc

  5. #5
    Lively Member
    Join Date
    Aug 2001
    Posts
    103
    can you check the len of the value entered?

    i.e.

    VB Code:
    1. dim lNumber
    2. dim lDecimals
    3. lNumber = 200.12
    4. lNumber = cstr(lNumber)
    5. lDecimals =len(lNumber) - instr(1, lNumber, ".")
    6.     if lDecimals > 1 then
    7.              'your code here
    8.     end if

  6. #6

    Thread Starter
    New Member
    Join Date
    Sep 2003
    Posts
    4
    Is there a way to check whether or not a function was executed. Apparently, you can't declare return types in vbscript. The problem I'm having is, I am validating user input, if the validating function is kicked off and executed I need to know so I can build an If statement around it. Here is my code.

    <HTML>
    <HEAD>
    <TITLE>Michael Cashe : Grade Calculator : Project 2 : INSC 497</TITLE>
    <SCRIPT LANGUAGE="VBScript">
    OPTION EXPLICIT

    Dim gradeArray(7)

    Sub cmdCalculate_OnClick()

    gradeArray(0) = cint("0" & document.frmCalculator.quizGrade1.value)
    gradeArray(1) = cint("0" & document.frmCalculator.quizGrade2.value)
    gradeArray(2) = cint("0" & document.frmCalculator.quizGrade3.value)
    gradeArray(3) = cint("0" & document.frmCalculator.projectGrade1.value)
    gradeArray(4) = cint("0" & document.frmCalculator.projectGrade2.value)
    gradeArray(5) = cint("0" & document.frmCalculator.projectGrade3.value)
    gradeArray(6) = cint("0" & document.frmCalculator.finalExam.value)
    gradeArray(7) = cint("0" & document.frmCalculator.extraCredit.value)

    'Call method to display Grade Summary
    extraCreditValidate
    displayResults

    End Sub

    Function calculateQuizAverage
    Dim quizAverage
    quizAverage = ((gradeArray(0) + _
    gradeArray(1) + _
    gradeArray(2))/ 3)
    calculateQuizAverage = quizAverage
    End Function

    Function calculateProjectAverage
    Dim projectAverage
    projectAverage = (((gradeArray(3) * .10) + _
    (gradeArray(4) * .20) + _
    (gradeArray(5) * .25)) / _
    (.10 + .20 + .25))
    calculateProjectAverage = projectAverage
    End Function

    Function calculateFinalGrade
    Dim finalGrade
    finalGrade = ((gradeArray(0) * .10) + _
    (gradeArray(1) * .10) + _
    (gradeArray(2) * .10) + _
    (gradeArray(3) * .10) + _
    (gradeArray(4) * .20) + _
    (gradeArray(5) * .25) + _
    (gradeArray(6) * .15) + _
    (gradeArray(7)))
    calculateFinalGrade = finalGrade
    End Function

    Function calculateLetterGrade
    Dim letterGrade

    If (calculateFinalGrade >= 0 AND calculateFinalGrade <= 60) Then
    letterGrade = "F"
    ElseIf (calculateFinalGrade >= 61 AND calculateFinalGrade <= 69) Then
    letterGrade = "D"
    ElseIf (calculateFinalGrade >= 70 AND calculateFinalGrade <= 75) Then
    letterGrade = "C"
    ElseIf (calculateFinalGrade >= 76 AND calculateFinalGrade <= 79) Then
    letterGrade = "C+"
    ElseIf (calculateFinalGrade >= 80 AND calculateFinalGrade <= 82) Then
    letterGrade = "B-"
    ElseIf (calculateFinalGrade >= 83 AND calculateFinalGrade <= 86) Then
    letterGrade = "B"
    ElseIf (calculateFinalGrade >= 87 AND calculateFinalGrade <= 89) Then
    letterGrade = "B+"
    ElseIf (calculateFinalGrade >= 90 AND calculateFinalGrade <= 93) Then
    letterGrade = "A-"
    ElseIf (calculateFinalGrade >= 94 AND calculateFinalGrade <= 100) Then
    letterGrade = "A+"
    End If
    calculateLetterGrade = letterGrade
    End Function

    Function extraCreditValidate
    If (gradeArray(7) > 5) then
    Alert "Please enter an extra credit range from 0 - 5"
    Exit Function
    Else

    End If
    End Function


    Function displayResults
    Dim gradesMessage

    ' Display the results.

    gradesMessage = "The summary report of grades entered is:"
    gradesMessage = gradesMessage & vbCRLF & vbCRLF
    gradesMessage = gradesMessage & "Quiz Average:" & vbTab & calculateQuizAverage & vbCRLF
    gradesMessage = gradesMessage & "Project Average:" & vbTab & calculateProjectAverage & vbCRLF
    gradesMessage = gradesMessage & "Final Grade:" & vbTab & calculateFinalGrade & vbCRLF
    gradesMessage = gradesMessage & "Letter Grade:" & vbTab & calculateLetterGrade & vbCRLF
    MsgBox gradesMessage,,"Grade Summary"
    displayResults = gradesMessage
    End Function

    </SCRIPT>
    </HEAD>

    <BODY>
    <H1>The Grade Calculator</H1>
    <P> This program will take user input for 8 grades, calculate them
    and then output summary information.</P>

    <FORM NAME="frmCalculator">
    <TABLE BORDER = "3">
    <THEAD><TR><TH>Grade Type</TH>
    <TH>Grades</TH></TR></THEAD>

    <TR>
    <TD><B>Quiz Grades:</B></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade1" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade2" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="quizGrade3" SIZE=5></TD>
    </TR>

    <TR>
    <TD><B>Project Grades:</B></TD>
    <TD><INPUT TYPE="Text" NAME="projectGrade1" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="projectGrade2" SIZE=5></TD>
    <TD><INPUT TYPE="Text" NAME="projectGrade3" SIZE=5></TD>
    </TR>

    <TR>
    <TD><B>Final Exam:</B></TD>
    <TD><INPUT TYPE="Text" NAME="finalExam" SIZE=5></TD>
    </TR>

    <TR>
    <TD><B>Extra Credit:</B></TD>
    <TD><INPUT TYPE="Text" NAME="extraCredit" SIZE=5></TD>
    </TR>

    </TABLE>
    <BR>

    <INPUT TYPE="Button" NAME="cmdCalculate" VALUE="Calculate Grades">
    <BR>
    <BR>
    <INPUT TYPE=reset VALUE="Reset Grades">
    </FORM>
    </BODY>
    </HTML>

  7. #7

    Thread Starter
    New Member
    Join Date
    Sep 2003
    Posts
    4
    Nevermind guys. I set a flag based on which portion of the function was executed. Until next time........ Thanks.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width