|
-
Sep 16th, 2003, 12:43 PM
#1
Thread Starter
New Member
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>
-
Sep 16th, 2003, 12:49 PM
#2
Frenzied Member
Change to:
Code:
Message = "The summary report of grades entered is: "
Message = Message & "Final Grade: " & vbTab & finalGrade & vbCrLf
MsgBox Message, ,"Grade Summary"
-
Sep 16th, 2003, 12:58 PM
#3
Frenzied Member
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.
-
Sep 16th, 2003, 03:02 PM
#4
Thread Starter
New Member
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
-
Sep 18th, 2003, 10:23 AM
#5
Lively Member
can you check the len of the value entered?
i.e.
VB Code:
dim lNumber
dim lDecimals
lNumber = 200.12
lNumber = cstr(lNumber)
lDecimals =len(lNumber) - instr(1, lNumber, ".")
if lDecimals > 1 then
'your code here
end if
-
Sep 22nd, 2003, 06:52 PM
#6
Thread Starter
New Member
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>
-
Sep 22nd, 2003, 08:02 PM
#7
Thread Starter
New Member
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|