i wrote the following code for a dialog box to enter grades and calculate gpa. is there any way to make it
shorter? like can i use object arrays and initialize it in a for loop? thank you
Code:import javax.swing.*;
public class GPA
{
public static void main(String args[])
{
int Counter=0;
while(Counter!=1)
{
String Name=JOptionPane.showInputDialog("Enter Student Name");
JTextField[] Subj=new JTextField[6];
for(int i=0;i<Subj.length;i++)
{
Subj[i]=new JTextField();
}
double[] Credits={1.0, 1.0, 1.0, 1.0, 1.25, 0.75};
double[] Points=new double[6]; //Letter Grade into Points
double TotalCredits=0.0;
double GPA=0.0;
Object[] Message={
"Enter English Grade: ",Subj[0],
"Enter Math Grade",Subj[1],
"Enter Social Studies Grade",Subj[2],
"Enter Art Grade",Subj[3],
"Enter Science Grade",Subj[4],
"Enter P.E Grade",Subj[5]
};
int Value = JOptionPane.showConfirmDialog(null, Message,
"Enter Letter Grade", JOptionPane.OK_CANCEL_OPTION);
String[] Letter=new String[6];
for(int i=0;i<Subj.length;i++)
{
Letter[i]=Subj[i].getText();
}
for(int i=0;i<Letter.length;i++)
{
switch(Letter[i])
{
case "A":
Points[i]=4.00;
break;
case "A-":
Points[i]=3.67;
break;
case "B+":
Points[i]=3.33;
break;
case "B":
Points[i]=3.00;
break;
case "B-":
Points[i]=2.67;
break;
case "C+":
Points[i]=2.33;
break;
case "C":
Points[i]=2.00;
break;
case "C-":
Points[i]=1.67;
break;
case "D+":
Points[i]=1.33;
break;
case "D":
Points[i]=1.00;
break;
case "D-":
Points[i]=0.67;
break;
case "F":
Points[i]=0.00;
break;
default:
JOptionPane.showMessageDialog(null,"One of the"
+ " Inputted Grades is Not Valid");
System.exit(0);
break;
}
}
//calculate and display GPA
for(int j=0;j<Letter.length;j++)
{
TotalCredits+=Points[j]*Credits[j];
GPA=TotalCredits/6;
}
JOptionPane.showMessageDialog(null,String.format("Student Name: %s"
+ "\nGPA: %.2f",Name,GPA));
int value=JOptionPane.showConfirmDialog(null,"Would You Like To "
+ "Calculate Another GPA?","",JOptionPane.YES_NO_OPTION);
if(value==JOptionPane.NO_OPTION)
{
JOptionPane.showMessageDialog(null,"Thank You For Using This "
+ "GPA Calculator");
Counter++;
}
}
}
}