// CIS22A - Assignment 4 Solution Fall 2019 #include #include #include #include using namespace std; int main() { const unsigned short MaxPoints = 400; unsigned short ass1, ass2, ass3, ass4, ass5, ass6, ass7, ass8, ass9, ass10, ass11; /* Assignment grades */ unsigned short assTotal; unsigned short minAss; unsigned short midterm; unsigned short final; unsigned short totalPoints; unsigned short labexercises; unsigned short percent; char grade; char plus_minus; /* Get user input */ cout << "Enter assignment 1 points "; cin >> ass1; cout << "Enter assignment 2 points "; cin >> ass2; cout << "Enter assignment 3 points "; cin >> ass3; cout << "Enter assignment 4 points "; cin >> ass4; cout << "Enter assignment 5 points "; cin >> ass5; cout << "Enter assignment 6 points "; cin >> ass6; cout << "Enter assignment 7 points "; cin >> ass7; cout << "Enter assignment 8 points "; cin >> ass8; cout << "Enter assignment 9 points "; cin >> ass9; cout << "Enter assignment 10 points "; cin >> ass10; cout << "Enter assignment 11 points "; cin >> ass11; cout << "Enter lab exercise points "; cin >> labexercises; cout << "Enter midterm points "; cin >> midterm; cout << "Enter final points "; cin >> final; // Determine the minimum assignment minAss = ass1; if (ass2 < minAss) minAss = ass2; if (ass3 < minAss) minAss = ass3; if (ass4 < minAss) minAss = ass4; if (ass5 < minAss) minAss = ass5; if (ass6 < minAss) minAss = ass6; if (ass7 < minAss) minAss = ass7; if (ass8 < minAss) minAss = ass8; if (ass9 < minAss) minAss = ass9; if (ass10 < minAss) minAss = ass10; if (ass11 < minAss) minAss = ass11; // Calculate the total assignment points assTotal = ass1 + ass2 + ass3 + ass4 + ass5 + ass6 + ass7 + ass8 + ass9 + ass10 + ass11 - minAss; /* Calculate the total points */ totalPoints = assTotal + midterm + final + labexercises; // calculate the percent of total percent = static_cast (100. * totalPoints / MaxPoints + 0.5); // Determine the letter grade switch (percent / 10) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade = 'F'; } // Determine grade + or - plus_minus = percent < 100 ? percent % 10 > 7 ? '+' : (percent % 10 < 2 ? '-' : ' ') : '+'; // Program Output cout << "\nAssignment Grades:" << setw(4) << ass1 << setw(4) << ass2 << setw(4) << ass3 << setw(4) << ass4 << setw(4) << ass5 << setw(4) << ass6 << setw(4) << ass7 << setw(4) << ass8 << setw(4) << ass9 << setw(4) << ass10 << setw(4) << ass11 << endl; cout << "Assignment Points: " << setw(3) << assTotal << endl; cout << "Lab Exercise: " << setw(3) << labexercises << endl; cout << "Midterm: " << setw(3) << midterm << endl; cout << "Final: " << setw(3) << final << endl; cout << "Total Points: " << setw(3) << totalPoints << endl; cout << "Percent of total: " << setw(3) << percent << '%' << endl; cout << "Grade: " << grade << plus_minus << endl; if (grade == 'A') cout << "Excellent work" << endl; else if (grade == 'B' || grade == 'C') cout << "Not bad!" << endl; else cout << "You better try again" << endl; }