Write a class named TestScores. The class constructor should accept an array of
ID: 3796579 • Letter: W
Question
Write a class named TestScores. The class constructor should accept an array
of test scores as its argument . The class should have a method that returns
the average of the test scores. If any test score in the array is negative
or greater than 100, the class should throw an IllegalArgumentException.
Demonstrate the class in a program (create a Driver class in the same file).
The program should ask the user to input the number of test scores to be counted,
and then each individual test score. It should then make an array of those scores,
create a TestScore object , and print the average of the scores.
If an IllegalArgumentException is thrown, the main method should catch it, print "Test scores must have a value less than 100 and greater than 0." and terminate the program .
SAMPLE RUN #1: java Driver
Standard Input
5
70
65
94
55
90
Standard Output
Explanation / Answer
import java.util.ArrayList;
import java.util.Scanner;
class TestScores {
private ArrayList<Integer> testScoresArr = new ArrayList<Integer>();
public TestScores(ArrayList<Integer> testScrsArr){
this.testScoresArr = testScrsArr;
}
public float averageTestScores() throws IllegalArgumentException
{
float sum = 0;
for(int iCount=0;iCount<testScoresArr.size();iCount++){
if(testScoresArr.get(iCount) < 0 || testScoresArr.get(iCount) > 100)
{
throw new IllegalArgumentException("Test scores must have a value less than 100 and greater than 0.");
}else{
sum += testScoresArr.get(iCount);
}
}
if(testScoresArr.size() > 0)
return sum / testScoresArr.size();
return 0;
}
}
public class Driver {
public static void main(String[] args){
ArrayList<Integer> values = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
int totalScores = input.nextInt();
for(int i=0;i<totalScores;i++){
values.add(input.nextInt());
}
System.out.println("Enter number of test scores:" + totalScores);
for(int i=0;i<totalScores;i++){
int iCount = i+1;
System.out.println("Enter test score "+iCount+":"+values.get(i));
}
// Creating an object of TestScores class
TestScores testscores = new TestScores(values);
try{
float averageScore = testscores.averageTestScores();
System.out.println("The average of scores : " + averageScore);
}catch(IllegalArgumentException e){
//e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.