Question: Tracking Grades Java issues (fix the code for questions 1, 2, and 3) A teacher wants a program to keep track of grades for students
Tracking Grades Java issues (fix the code for questions 1, 2, and 3)
A teacher wants a program to keep track of grades for students and decides to create a student class for his program as follows:
Each student will be described by three pieces of data: his/her name, his/her score on test #1, and his/her score on test#2.
There will be one constructor, which will have one argumentthe name of the student.
There will be three methods: getName, which will return the students name; inputGrades, which will prompt for and read in the students test grades; and getAverage, which will compute and return the students average.
1. File Student.java contains an incomplete definition for the Student class. Save it to your directory and complete the class definition as follows:
Declare the instance data (name, score for test1, and score for test2).
Create a Scanner object for reading in the scores.
Add the missing method headers.
Add the missing method bodies.
2. File Grades.java contains a shell program that declares two Student objects. Save it to your directory and use the inputGrades method to read in each students test scores, then use the getAverage method to find their average. Print the average with the students name, e.g., The average for Joe is 87. You can use the getName method to print the students name.
3. Add statements to your Grades program that print the values of your Student variables directly, e.g.:
System.out.println("Student 1: " + student1);
This should compile, but notice what it does when you run itnothing very useful! When an object is printed, Java looks for a toString method for that object. This method must have no parameters and must return a String. If such a method has been defined for this object, it is called and the string it returns is printed. Otherwise the default toString method, which is inherited from the Object class, is called; it simply returns a unique hexadecimal identifier for the object such as the ones you saw above.
Add a toString method to your Student class that returns a string containing the students name and test scores, e.g.:
Name: Joe Test1: 85 Test2: 91
Note that the toString method does not call System.out.printlnit just returns a string.
Recompile your Student class and the Grades program (you shouldnt have to change the Grades programyou dont have to call toString explicitly). Now see what happens when you print a student objectmuch nicer!
// ************************************************************
// Student.java
//
// Define a student class that stores name, score on test 1, and
// score on test 2. Methods prompt for and read in grades,
// compute the average, and return a string containing student's info.
// ************************************************************
import java.util.Scanner;
public class Student
{
//declare instance data
// ---------------------------------------------
//constructor
// ---------------------------------------------
public Student(String studentName)
{
//add body of constructor
}
// ---------------------------------------------
//inputGrades: prompt for and read in student's grades for test1 & test2.
//Use name in prompts, e.g., "Enter's Joe's score for test1".
// ---------------------------------------------
public void inputGrades()
{
//add body of inputGrades
}
// ---------------------------------------------
//getAverage: compute and return the student's test average
// ---------------------------------------------
//add header for getAverage
{
//add body of getAverage
}
// ---------------------------------------------
//getName: print the student's name
// ---------------------------------------------
//add header for printName
{
//add body of printName
}
}
// ************************************************************
// Grades.java
//
// Use Student class to get test grades for two students
// and compute averages
//
// ************************************************************
public class Grades
{
public static void main(String[] args)
{
Student student1 = new Student("Mary");
//create student2, "Mike"
//input grades for Mary
//print average for Mary
System.out.println();
//input grades for Mike
//print average for Mike
}
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
