This is an assignment that deals with loops and arrays. It uses two array one for Grades and one for Credits. The purpose of the program is to calculate a GPA. The arrays are created in one method and then passed to another where they are filled in a for loop. Then they are passed to a third method where the arrays are multiplied together and summed to get the GPA.
Two other loops are added. One, a while loop in main, lets the user repeat the program as often as they wish. They enter 0 to exit. The other, a do loop, is used in the FillArrays method to make sure the grade is between 0 and 4. It will not allow the user to continue until they have entered a grade in the valid range. The grade is not written to the array until it is valid.
Here is the Java code
import java.util.Scanner; public class GPACalculator { /** * This program calculates a GPA * to do so it uses parallel arrays * one for grades and one for credits * it checks to make sure grades are * between 0 and 4 * this program is the java equivalent * of ITC110 assignment 4 * Steve Conger !0/20/2011 */ //declare the scanner globally Scanner reader = new Scanner(System.in); public static void main(String[] args) { GPACalculator calc=new GPACalculator(); int choice=1; while(choice !=0) { calc.CreateArrays(); System.out.println("Do you want to enter more grades: 0 to exit"); choice=calc.reader.nextInt(); } } private void CreateArrays() { System.out.println("How many grades do you want to enter?"); int number=reader.nextInt(); //declare the arrays double[] grades = new double[number]; double[] credits=new double[number]; //call the FillArrays method FillArrays(grades, credits); } private void FillArrays(double[] grades, double[]credits) { //loop through and fill the arrays) for(int i=0;i<grades.length; i ++) { //the do loop makes sure the grade is in //the proper range double grade=0; do { System.out.println("Enter the grade"); grade=reader.nextDouble(); if(grade<0 || grade>4) { System.out.println("Grades must be between 0 and 4"); } }while (grade<0 || grade>4); grades[i]=grade; System.out.println("Enter the credits"); credits[i]=reader.nextDouble(); } //call the CalculateGPA method CalculateGPA(grades, credits); } private void CalculateGPA(double[] grades, double[]credits) { double weight=0; double totalCredits=0; for(int i=0;i<grades.length; i ++) { weight += grades[i] * credits[i]; totalCredits += credits[i]; } double gpa = weight / totalCredits; System.out.println("Your GPA is " + gpa); } }
No comments:
Post a Comment