Write a program Grader that that will be used by a program d
Write a program Grader that that will be used by a program driver to enter in grades that a student has earned and the prints out their final grade. In this particular scenario there are nine (9) grades for a student throughout the course of the semester.
These assignments are
1. HW 01 2. HW 02 3. Lab 01 4. Lab 02 5. Lab 03 6. Lab 04 7. Midterm 01 8. Midterm 02 9. Final Exam
When computing the final numerical grade, use the following weights
• Homework - 10% • Labs - 40% • Midterms - 25% • Final Exam - 25%
Once you have the numerical result for the student, the Alphabetical grade can be computed using
A - total 90
B+ - 90 > total 85
B - 85 > total 80
C+ - 80 > total 75
C - 75 > total 70
D+ - 70 > total 65
D - 65 > total 60
F - 60 > total
You have been supplied with a “Driver class” called TestGrader which creates an instance of a Grader object and runs each method from the Grader class. The methods that you will need to create are
The default constructor Grader() You should create class variables for each assignment, the numerical total, and (for brevity) a scanner object for your grader class. Initialize all of the numerical variables to zero (0), and create your Scanner object for user input.
A private method called checkRange that takes a double as an argument and checks to see if the supplied double is within the acceptable range (0-100). If not, print “Invalid Grade” and exit. CSCE 145 Lab 10 1 of 5
Public “setter” methods (also known as modifiers) for the class variables corresponding to each assignment (Ex. setHW01(), setLab02(), etc)
A method called calculateFinalGrade that calculates the final grade using the weights specified above.
A method called printFinalGrade that prints the final alphabetical grade that corresponds to the numerical total.
A method called printGrades() that prints the assignment data
Solution
Grader class
import java.util.Scanner;
public class Grader {
private double HW01,HW02,Lab01,Lab02,Lab03,Lab04,Midterm01,Midterm02,FinalExam,total;
String finalGrade;
Scanner sc;
public Grader() {
HW01=0.0;HW02=0.0;Lab01=0.0;Lab02=0.0;Lab03=0.0;Lab04=0.0;Midterm01=0.0;Midterm02=0.0;FinalExam=0.0;total=0.0;
finalGrade=\" \";
sc=new Scanner(System.in);
}
private boolean checkRange(double grade)
{
if(!(grade>=0.0&&grade<=100))
{
System.out.println(\"Invalid Grade\");
return false;
}
return true;
}
void setAssignmentmarks()
{
System.out.println(\"Enter marks in HW01 from 50\");
double mark=sc.nextDouble();
setHW01(mark);
System.out.println(\"Enter marks in HW02 from 50\");
mark=sc.nextDouble();
setHW02(mark);
System.out.println(\"Enter marks in Lab01 from 25\");
mark=sc.nextDouble();
setLab01(mark);
System.out.println(\"Enter marks in Lab02 from 25\");
mark=sc.nextDouble();
setLab02(mark);
System.out.println(\"Enter marks in Lab03 from 25\");
mark=sc.nextDouble();
setLab03(mark);
System.out.println(\"Enter marks in Lab04 from 25\");
mark=sc.nextDouble();
setLab04(mark);
System.out.println(\"Enter marks in MidTerm01 from 50\");
mark=sc.nextDouble();
setMidterm01(mark);
System.out.println(\"Enter marks in MidTerm02 from 50\");
mark=sc.nextDouble();
setMidterm02(mark);
System.out.println(\"Enter marks in FinalExam from 100\");
mark=sc.nextDouble();
setFinalExam(mark);
}
double calculateFinalGrade()
{
boolean check=checkRange(total);
if(check)
{total=(HW01+HW02)*0.1+(Lab01+Lab02+Lab03+Lab04)*0.4+(Midterm01+Midterm02)*0.25+FinalExam*0.25;
return total;
}
else
return -0.0;
}
void printFinalGrades()
{
if(total>=90)
{
finalGrade=\"A\";
System.out.println(\"Final Grade is A\");
}
else if(total>=85&&total<90)
{
finalGrade=\"B+\";
System.out.println(\"Final Grade is B+\");
}
else if(total>=80&&total<85)
{
finalGrade=\"B\";
System.out.println(\"Final Grade is B\");
}
else if(total>=75&&total<80)
{
finalGrade=\"C+\";
System.out.println(\"Final Grade is C+\");
}
else if(total>=70&&total<75)
{
finalGrade=\"C\";
System.out.println(\"Final Grade is C\");
}
else if(total>=65&&total<70)
{
finalGrade=\"D+\";
System.out.println(\"Final Grade is D+\");
}
else if(total>=60&&total<65)
{
finalGrade=\"D\";
System.out.println(\"Final Grade is D\");
}
else if(total<60)
{
finalGrade=\"F\";
System.out.println(\"Final Grade is F\");
}
}
void printGrade()
{
System.out.println(\"Assignment marks are:\");
System.out.println(\"HW01:\"+HW01);
System.out.println(\"HW02:\"+HW02);
System.out.println(\"Lab01:\"+Lab01);
System.out.println(\"Lab02:\"+Lab02);
System.out.println(\"Lab03:\"+Lab03);
System.out.println(\"Lab04:\"+Lab04);
System.out.println(\"Midterm01:\"+Midterm01);
System.out.println(\"Midterm02:\"+Midterm02);
System.out.println(\"FinalExam:\"+FinalExam);
System.out.println(\"Final grade is\"+ total +\" \"+ finalGrade);
}
public double getHW01() {
return HW01;
}
public void setHW01(double hW01) {
HW01 = hW01;
}
public double getHW02() {
return HW02;
}
public void setHW02(double hW02) {
HW02 = hW02;
}
public double getLab01() {
return Lab01;
}
public void setLab01(double lab01) {
Lab01 = lab01;
}
public double getLab02() {
return Lab02;
}
public void setLab02(double lab02) {
Lab02 = lab02;
}
public double getLab03() {
return Lab03;
}
public void setLab03(double lab03) {
Lab03 = lab03;
}
public double getLab04() {
return Lab04;
}
public void setLab04(double lab04) {
Lab04 = lab04;
}
public double getMidterm01() {
return Midterm01;
}
public void setMidterm01(double midterm01) {
Midterm01 = midterm01;
}
public double getMidterm02() {
return Midterm02;
}
public void setMidterm02(double midterm02) {
Midterm02 = midterm02;
}
public double getFinalExam() {
return FinalExam;
}
public void setFinalExam(double finalExam) {
FinalExam = finalExam;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
}
TestGrader class
public class TestGrader {
public static void main(String[] args) {
Grader grader=new Grader();
grader.setAssignmentmarks();
if(grader.calculateFinalGrade()<0.0)
{
System.out.println(\"Invalid marks enter\");
}
else
{
grader.printFinalGrades();
grader.printGrade();
}
}
}
Output
Enter marks in HW01 from 50
40
Enter marks in HW02 from 50
40
Enter marks in Lab01 from 25
20
Enter marks in Lab02 from 25
20
Enter marks in Lab03 from 25
20
Enter marks in Lab04 from 25
20
Enter marks in MidTerm01 from 50
40
Enter marks in MidTerm02 from 50
40
Enter marks in FinalExam from 100
80
Final Grade is B
Assignment marks are:
HW01:40.0
HW02:40.0
Lab01:20.0
Lab02:20.0
Lab03:20.0
Lab04:20.0
Midterm01:40.0
Midterm02:40.0
FinalExam:80.0
Final grade is80.0 B




