Now you have got the basic idea of declaring and invoking me

Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. First thing you can consider to use is to put those TEN error-checking do-while loops to ONE method, and each time you just need to invoke that method. It should be a lot easier to organize your program in this way.

You can re-visit the grade calculator below:

import javax.swing.*;
import java.util.*;
public class CalculatingGrades
{
public static void main(String [] args)
{
   // initialize grades, place holders for grade inputs, arraylist used for multiple grades
int [] labGrades = new int[10];
int [] hwGrades = new int[3];
int [] quizGrades = new int[5];
int midtermGrade1;
int midtermGrade2;
double finalGrade;
  
// takes input for name
String name = JOptionPane.showInputDialog(\"Please Enter Student Name: 0\");
  
// dialogs for each input, loops for multiple grade per section
int j = 1;
for (int i = 0; i < 10; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Lab \" + j + \":\");
int answer = Integer.parseInt(question);
labGrades[i] = answer;
j++;
}
int k = 1;
for (int i = 0; i < 3; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Homework \" + k + \":\");
int answer = Integer.parseInt(question);
hwGrades[i] = answer;
k++;
}
int l = 1;
for (int i = 0; i < 5; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Quiz \" + l + \":\");
int answer = Integer.parseInt(question);
quizGrades[i] = answer;
l++;
}
  
// take inputs for single grades
String question1 = JOptionPane.showInputDialog(\"Please input grades for Midterm 1\");
int answer1 = Integer.parseInt(question1);
midtermGrade1 = answer1;
  
String question2 = JOptionPane.showInputDialog(\"Please input grades for Midterm 2\");
int answer2 = Integer.parseInt(question2);
midtermGrade2 = answer2;
  

String question = JOptionPane.showInputDialog(\"Please input grades for Final Exam:\");
int answer = Integer.parseInt(question);
finalGrade = answer;
  
// calculates the average for the array of grades
double avgLab = getAvg(labGrades);
double avgHw = getAvg(hwGrades);
double avgQuiz = getAvg(quizGrades);
  
// calculates the grade percentage
double lab = avgLab * .2;
double hw = avgHw * .15;
double quiz = avgQuiz * .15;
double midterm = midtermGrade1 * .15;
double midterm2 = midtermGrade2 * .15;
finalGrade = finalGrade * .20;
  
// calculates final, total grade
double finalClassGrade = lab + hw + quiz + midterm + midterm2 + finalGrade;
String letterGrade = \"\";
  
// displays which letter grade based on average
if (finalClassGrade >= 90){
   JOptionPane.showMessageDialog(null, \"Congrats, you got an A. Your average was \" + finalClassGrade);
   letterGrade = \"A\";
}
if (finalClassGrade >= 80 && finalClassGrade < 90){
   JOptionPane.showMessageDialog(null, \"Congrats, you got an B. Your average was \" + finalClassGrade);  
   letterGrade = \"B\";
}
if (finalClassGrade >= 70 && finalClassGrade < 80){
   JOptionPane.showMessageDialog(null, \"Congrats, you got an C. Your average was \" + finalClassGrade);
   letterGrade = \"C\";
}
if (finalClassGrade >= 60 && finalClassGrade < 70){
   JOptionPane.showMessageDialog(null, \"Congrats, you got an D.Your average was \" + finalClassGrade);
   letterGrade = \"D\";
}
if (finalClassGrade < 60){
   JOptionPane.showMessageDialog(null, \"Congrats, you got an F. Your average was \" + finalClassGrade);
   letterGrade = \"F\";
}
  
// Extra Credit: prints out the report in system.out.println
System.out.println(\"Name: \" + name);
for (int i = 0; i < 10; i++){
   System.out.println(\"Lab \" + (i+1) + \": \" + labGrades[i]);
}
for(int i = 0; i < 3; i++){
   System.out.println(\"Homework \" + (i+1) + \": \" + hwGrades[i]);
}
for(int i = 0; i < 5; i++){
   System.out.println(\"Quiz \" + (i+1) + \": \" + quizGrades[i]);
}
System.out.println(\"Midtem 1: \" + midtermGrade1 + \"\ Midterm 2: \"
                   + midtermGrade2 + \"\ Final: \" + finalGrade
                   + \"\ Total Grade: \" + finalClassGrade
                   + \"\ Letter Grade: \" + letterGrade);
  
  
}
  
// method to loop through the arraylist of grades and get an average for catagory grade
public static int getAvg(int [] n){
int avg = 0;
for (int i = 0; i < n.length; i++){
avg = avg + n[i];
}
avg = avg/n.length;
return avg;
}

}

Solution

Used following methods

getLabGrades(labGrades);
getQuizGrades(quizGrades);
getHwGrades(hwGrades);     
midtermGrade1 = getMidTermGrade1();   
midtermGrade2 = getMidTermGrade2();   
finalGrade = getFinalGrade();\\

Here is complete code

import javax.swing.*;
import java.util.*;
public class CalculatingGrades
{
public static void getLabGrades(int grades[])
{
for (int i = 0; i < 10; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Lab \" + (i+1) + \":\");
int answer = Integer.parseInt(question);
grades[i] = answer;

}

}
public static void getQuizGrades(int grades[])
{
  
for (int i = 0; i < 5; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Quiz \" + (i+1) + \":\");
int answer = Integer.parseInt(question);
grades[i] = answer;
  
}
}
public static void getHwGrades(int grades[])
{
for (int i = 0; i < 3; i++){
String question = JOptionPane.showInputDialog(\"Please input grades for Homework \" + (i+1) + \":\");
int answer = Integer.parseInt(question);
grades[i] = answer;
//k++;
}
  
}
public static int getMidTermGrade1()
{
String question1 = JOptionPane.showInputDialog(\"Please input grades for Midterm 1\");
return Integer.parseInt(question1);

}
public static int getMidTermGrade2()
{
String question2 = JOptionPane.showInputDialog(\"Please input grades for Midterm 2\");
return Integer.parseInt(question2);

}
public static int getFinalGrade()
{
String question = JOptionPane.showInputDialog(\"Please input grades for Final Exam:\");
return Integer.parseInt(question);


}

public static void main(String [] args)
{
// initialize grades, place holders for grade inputs, arraylist used for multiple grades
int [] labGrades = new int[10];
int [] hwGrades = new int[3];
int [] quizGrades = new int[5];
int midtermGrade1;
int midtermGrade2;
double finalGrade;
  
// takes input for name
String name = JOptionPane.showInputDialog(\"Please Enter Student Name: 0\");
  
// dialogs for each input, loops for multiple grade per section
  
  
getLabGrades(labGrades);
getQuizGrades(quizGrades);
getHwGrades(hwGrades);
  
  
// take inputs for single grades
midtermGrade1 = getMidTermGrade1();
  
midtermGrade2 = getMidTermGrade2();
  
finalGrade = getFinalGrade();
  
// calculates the average for the array of grades
double avgLab = getAvg(labGrades);
double avgHw = getAvg(hwGrades);
double avgQuiz = getAvg(quizGrades);
  
// calculates the grade percentage
double lab = avgLab * .2;
double hw = avgHw * .15;
double quiz = avgQuiz * .15;
double midterm = midtermGrade1 * .15;
double midterm2 = midtermGrade2 * .15;
finalGrade = finalGrade * .20;
  
// calculates final, total grade
double finalClassGrade = lab + hw + quiz + midterm + midterm2 + finalGrade;
String letterGrade = \"\";
  
// displays which letter grade based on average
if (finalClassGrade >= 90){
JOptionPane.showMessageDialog(null, \"Congrats, you got an A. Your average was \" + finalClassGrade);
letterGrade = \"A\";
}
if (finalClassGrade >= 80 && finalClassGrade < 90){
JOptionPane.showMessageDialog(null, \"Congrats, you got an B. Your average was \" + finalClassGrade);
letterGrade = \"B\";
}
if (finalClassGrade >= 70 && finalClassGrade < 80){
JOptionPane.showMessageDialog(null, \"Congrats, you got an C. Your average was \" + finalClassGrade);
letterGrade = \"C\";
}
if (finalClassGrade >= 60 && finalClassGrade < 70){
JOptionPane.showMessageDialog(null, \"Congrats, you got an D.Your average was \" + finalClassGrade);
letterGrade = \"D\";
}
if (finalClassGrade < 60){
JOptionPane.showMessageDialog(null, \"Congrats, you got an F. Your average was \" + finalClassGrade);
letterGrade = \"F\";
}
  
// Extra Credit: prints out the report in system.out.println
System.out.println(\"Name: \" + name);
for (int i = 0; i < 10; i++){
System.out.println(\"Lab \" + (i+1) + \": \" + labGrades[i]);
}
for(int i = 0; i < 3; i++){
System.out.println(\"Homework \" + (i+1) + \": \" + hwGrades[i]);
}
for(int i = 0; i < 5; i++){
System.out.println(\"Quiz \" + (i+1) + \": \" + quizGrades[i]);
}
System.out.println(\"Midtem 1: \" + midtermGrade1 + \"\ Midterm 2: \"
+ midtermGrade2 + \"\ Final: \" + finalGrade
+ \"\ Total Grade: \" + finalClassGrade
+ \"\ Letter Grade: \" + letterGrade);
  
  
}
  
// method to loop through the arraylist of grades and get an average for catagory grade
public static int getAvg(int [] n){
int avg = 0;
for (int i = 0; i < n.length; i++){
avg = avg + n[i];
}
avg = avg/n.length;
return avg;
}
}

Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. Firs
Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. Firs
Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. Firs
Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. Firs
Now you have got the basic idea of declaring and invoking method(s). Then try to re-visit your grade calculator and put each functional module to a method. Firs

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site