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

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

Output has to read like this (Standard Output):

Enternumberoftestscores:Entertestscore1:Entertestscore2:Entertestscore3:Entertestscore4:Entertestscore5:74.8 

Problems Detected: The contents of your standard output is incorrect.

Given the following was entered from the keyboard: 5 70 65 94 55 90 you displayed: Enter number of test scores:5Enter test score 1:70Enter test score 2:65Enter test score 3:94Enter test score 4:55Enter test score 5:90The average of scores : 74.8 instead of: Enter number of test scores:Enter test score 1:Enter test score 2:Enter test score 3:Enter test score 4:Enter test score 5:74.8

What is wrong with my code:

import java.util.ArrayList;

import java.util.Scanner;

class TestScores { private ArrayList testScoresArr = new ArrayList();

public TestScores(ArrayList testScrsArr){ this.testScoresArr = testScrsArr; } public float averageTestScores() throws IllegalArgumentException { float sum = 0; for(int iCount=0;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 values = new ArrayList(); Scanner input = new Scanner(System.in);

int totalScores = input.nextInt();

for(int i=0;i

for(int i=0;i

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!