ch4 Lab 4-2

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Name____________________________________ APCS A (Lab Exercises – 4.

2)

Tracking Grades
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 argument—the name of the student.
 There will be three methods: getName, which will return the student's name; inputGrades, which will prompt for and
read in the student's test grades; and getAverage, which will compute and return the student's 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:
a. Declare the instance data (name, score for test1, and score for test2).
b. Create a Scanner object for reading in the scores.
c. Add the missing method headers.
d. 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 student's test scores, then use the getAverage method to find their average.
Print the average with the student's name, e.g., "The average for Joe is 87." You can use the getName method to
print the student's 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 it—nothing 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 student's name and test scores, e.g.:

Name: Joe Test1: 85 Test2: 91

Note that the toString method does not call System.out.println—it just returns a string.

Recompile your Student class and the Grades program (you shouldn't have to change the Grades program—you don't
have to call toString explicitly). Now see what happens when you print a student object—much 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 and 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

}
}

You might also like