(* enter current scores from these three categories here *)
labscores = 86;
examscores=88;
termproject=97;

(* enter anticipated final exam score here *)
finalexam=92;

(* the code *)
weights = {{"Labs", 0.60}, {"Exams", 0.18},{"Term project", 0.12},{"Final exam",0.10}};
gradebreaks = {{"A",94},{"A-",91},{"B+",88},{"B",85},{"B-",82},{"C+",79},{"C",76},{"C-",73},{"D+",70},{"D",67},{"D-",64}};
finalnumerical = labscores*weights[[1,2]] + examscores*weights[[2,2]]+termproject*weights[[3,2]]+finalexam*weights[[4,2]];
finalletter = Which[
finalnumerical>gradebreaks[[1,2]],gradebreaks[[1,1]],
finalnumerical>gradebreaks[[2,2]],gradebreaks[[2,1]],
finalnumerical>gradebreaks[[3,2]],gradebreaks[[3,1]],
finalnumerical>gradebreaks[[4,2]],gradebreaks[[4,1]],
finalnumerical>gradebreaks[[5,2]],gradebreaks[[5,1]],
finalnumerical>gradebreaks[[6,2]],gradebreaks[[6,1]],
finalnumerical>gradebreaks[[7,2]],gradebreaks[[7,1]],
finalnumerical>gradebreaks[[8,2]],gradebreaks[[8,1]],
finalnumerical>gradebreaks[[9,2]],gradebreaks[[9,1]],
finalnumerical>gradebreaks[[10,2]],gradebreaks[[10,1]],
finalnumerical>gradebreaks[[11,2]],gradebreaks[[11,1]],
True, "E"];
Print[];
Print["If you get a " <> ToString[finalexam] <> " on the final, your final numerical grade will be a " <> ToString[finalnumerical] <> " and your final letter grade will be a/an " <> finalletter <> "."];
Print["You might get a higher letter grade than that if Dr. Colton decides to adjust the grade breakpoints from what are listen in the syllabus, but that's all you are guaranteed."]