1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
#include <iostream> using namespace std; // Function to determine the grade using pass-by-value char determineGradeByValue(double quiz, double midTerm, double finalExam) { double average = (quiz + midTerm + finalExam) / 3; if (average >= 90) { return 'A'; } else if (average >= 70) { return 'B'; } else if (average >= 50) { return 'C'; } else { return 'F'; } } // Function to determine the grade using pass-by-reference void determineGradeByReference(double quiz, double midTerm, double finalExam, char &grade) { double average = (quiz + midTerm + finalExam) / 3;
if (average >= 90) { grade = 'A'; } else if (average >= 70) { grade = 'B'; } else if (average >= 50) { grade = 'C'; } else { grade = 'F'; } } int main() { double quizScore, midTermScore, finalExamScore; char gradeByValue, gradeByReference; // Input the scores cout << "Enter the quiz score: "; cin >> quizScore; cout << "Enter the mid-term score: "; cin >> midTermScore; cout << "Enter the final exam score: "; cin >> finalExamScore; // Determine grade using pass-by-value gradeByValue = determineGradeByValue(quizScore, midTermScore, finalExamScore); cout << "Grade determined using pass-by-value: " << gradeByValue << endl; // Determine grade using pass-by-reference determineGradeByReference(quizScore, midTermScore, finalExamScore, gradeByReference); cout << "Grade determined using pass-by-reference: " << gradeByReference << endl; return 0; } |
Explanation:
- Pass-by-Value (
determineGradeByValue
):- Function Definition:
char determineGradeByValue(double quiz, double midTerm, double finalExam)
- This function takes three scores as input parameters by value (i.e., copies of the original values).
- It calculates the average score.
- Based on the average, it determines the grade:
>= 90%
results in gradeA
>= 70%
and< 90%
results in gradeB
>= 50%
and< 70%
results in gradeC
< 50%
results in gradeF
- The function returns the determined grade.
- Function Definition:
- Pass-by-Reference (
determineGradeByReference
):- Function Definition:
void determineGradeByReference(double quiz, double midTerm, double finalExam, char &grade)
- This function also receives three scores but takes a reference to the
grade
variable to store the result. - It calculates the average score similarly.
- It assigns the appropriate grade directly to the
grade
reference variable.
- Function Definition:
- Main Function (
main
):- The program prompts the user to input the quiz, mid-term, and final exam scores.
- It calculates the grade using both methods and prints the results.
Example Outputs:
Example 1:
Input:
- Quiz Score:
85
- Mid-Term Score:
90
- Final Exam Score:
88
Output:
1 2 3 4 5 |
Enter the quiz score: 85 Enter the mid-term score: 90 Enter the final exam score: 88 Grade determined using pass-by-value: B Grade determined using pass-by-reference: B |
Example 2:
Input:
- Quiz Score:
45
- Mid-Term Score:
60
- Final Exam Score:
55
Output:
1 2 3 4 5 |
Enter the quiz score: 45 Enter the mid-term score: 60 Enter the final exam score: 55 Grade determined using pass-by-value: C Grade determined using pass-by-reference: C |
Example 3:
Input:
- Quiz Score:
92
- Mid-Term Score:
94
- Final Exam Score:
96
Output:
1 2 3 4 5 |
Enter the quiz score: 92 Enter the mid-term score: 94 Enter the final exam score: 96 Grade determined using pass-by-value: A Grade determined using pass-by-reference: A |