Gpa Calculator (Java)- Source Code

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();
    }
}

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.

09.08.11

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.

Flayre
09.08.11

I’m getting like 100 errors when I compile this code. O.o

Using JCreator Pro 4.5 btw.

Jimmer
09.08.11

Soooo many errors.

Jeff
09.08.11

Nice program, just what I needed to help my daughter with her homework. No errors or warnings, runs great. Thanks for the source code.

Jeff in Md.

comments powered by Disqus
Loading