Hey guys, this is the source code from a GPA Calculator I made recently. Hopefully it can help someone.
Hey guys, I know how difficult programming class can be. This is my most recent project from programming in Java, and I know this is a common project assigned in class, so I thought this might be useful to those who are stuck in the middle of their GPA program and don’t know what to do.
Source Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.text.DecimalFormat;
public class GPACalculator extends JFrame
{
char letterGrade;
double credits,
creditGrade,
GPA,
points = 0.0,
totalCredits = 0.0;
private JButton calcButton,
clearButton;
private JLabel gradeDisplay,
creditsDisplay,
messageDisplay;
private JTextField gradeField,
creditsField;
private JPanel panelTop,
panelMid,
panelLow;
private int WINDOW_WIDTH = 300,
WINDOW_HEIGHT = 200;
boolean result = true,
cResult = true;
String display;
public GPACalculator()
{
super(”GPA Calculator”);
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 1));
gradeDisplay = new JLabel(”Grade”);
gradeField = new JTextField(4);
creditsDisplay = new JLabel(”Credits”);
creditsField = new JTextField(4);
calcButton = new JButton(”Calculate”);
clearButton = new JButton(”Clear”);
calcButton.addActionListener(new ButtonListener());
clearButton.addActionListener(new ButtonListener());
panelTop = new JPanel();
panelTop.add(gradeDisplay);
panelTop.add(gradeField);
panelTop.add(creditsDisplay);
panelTop.add(creditsField);
messageDisplay = new JLabel(display);
panelMid = new JPanel();
panelMid.add(messageDisplay);
panelLow = new JPanel();
panelLow.add(calcButton);
panelLow.add(clearButton);
add(panelTop);
add(panelMid);
add(panelLow);
setVisible(true);
letterGrade = ‘ ‘;
credits = 0;
}
public boolean setLetterGrade(char lG)
{
switch (lG)
{
case ‘a’:
case ‘A’:
letterGrade = ‘A’;
result = true;
break;
case ‘b’:
case ‘B’:
letterGrade = ‘B’;
result = true;
break;
case ‘c’:
case ‘C’:
letterGrade = ‘C’;
result = true;
break;
case ‘d’:
case ‘D’:
letterGrade = ‘D’;
result = true;
break;
case ‘f’:
case ‘F’:
letterGrade = ‘F’;
result = true;
break;
default:
result = false;
break;
}
return result;
}
public boolean setCredits(double cr)
{
boolean result = true;
if (cr < .25 || cr > 6)
cResult = false;
else
cResult = true;
return cResult;
}
public char getLetterGrade()
{
setLetterGrade(letterGrade);
return letterGrade;
}
public double getCredits()
{
setCredits(credits);
return credits;
}
public double getCreditGrade(char letterGrade)
{
if (letterGrade == ‘A’)
creditGrade = 4.0;
else if (letterGrade == ‘B’)
creditGrade = 3.0;
else if (letterGrade == ‘C’)
creditGrade = 2.0;
else if (letterGrade == ‘D’)
creditGrade = 1.0;
else if (letterGrade == ‘F’)
creditGrade = 0.0;
else
result = false;
return creditGrade;
}
public double calcGPA()
{
points += getCreditGrade(letterGrade) * credits;
totalCredits += credits;
GPA = points / totalCredits;
return GPA;
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
String readGrade,
readCredits,
buttonAction = a.getActionCommand();
if (buttonAction == “Calculate”)
{
readGrade = gradeField.getText();
letterGrade = readGrade.charAt(0);
setLetterGrade(letterGrade);
if (result == false)
{
display = “Letter grade must be a, b, c, d, or f.
” +
“Otherwise, place cursor at beginning of field
” +
“and retype the letter.”;
messageDisplay.setText(display);
}
try
{
readCredits = creditsField.getText();
credits = Double.parseDouble(readCredits);
setCredits(credits);
if (cResult == false)
{
display = “Credits must be between .25 and 6 inclusive.”;
messageDisplay.setText(display);
}
}
catch (NumberFormatException nfe)
{
display = “Credits should be a number.”;
messageDisplay.setText(display);
result = false;
}
if (result == true && cResult == true)
{
calcGPA();
messageDisplay.setText(”New GPA is: ” +GPA);
}
}
if (buttonAction == “Clear”)
{
points = 0.0;
totalCredits = 0.0;
gradeField.setText(”");
creditsField.setText(”");
display = “”;
messageDisplay.setText(display);
}
}
}
public static void main (String [] args)
{
new GPACalculator();
}
}










2 Responses
Hmm, I see that your program has a GUI and use decisions to decide GPA. Nicely done More code than I like to run for a simple program. What version of Java are you using? I know a bit in Java 6 Update 2. Course that was back a couple years ago when I was in 6th grade. I didn’t do much with it to know how to make video games or anything, but I did create some mathematical programs that saved time when doing homework.
Java SE 6 I think I used for this one. Yea I’m taking java as part of my college degree requirements, but it’s pretty fun so I can’t complain.