Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Develop an application. that computes a studen average. It have to be specific.

ID: 3545578 • Letter: D

Question

Develop an application. that computes a studen average. It have to be specific.

Requirements:

1.) Adding Instance variables

At line 26, add two instance variables. The int instance variable quizzesTaken will keep track of the number of quiz scores entered. The double instance variable totalScore will keep track of the sum of all the quiz scores entered. These twp variables will be used to calculate the class average.

2. adding Code to the submitJButtonActionPerformed method.(line 110)

a) obtaining user input - used method Integer.parseInt to convert the user input from the quizJTextField to an int which should then be assigned to a variable of type double

b) add a code that will increment the number of quiz scores entered.

c) Add code that will add the current quiz score to the current total to update the sum of all quiz scores entered.

d) calculating the average score. add a code to divide the sum of all the quiz scores by the number of quiz scores entered to calculate the average score. Notice that the number of quiz scores is an int, but will be implicity converted to a double for the division calculation.

e) display the number of quizzes taken. use method String.valueoF to display the number o quiz scores entered in the numberJTextField.

f) display the average quiz grade in the averageJTextField using decimalFormat with two digits presicion.

// Exercise 14.12: QuizAverage.java
// Application enables a user to enter grades and have the average
// calculated.
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;

public class QuizAverage extends JFrame
{
   // JLabel and JTextField to display quiz score
   private JLabel quizJLabel;
   private JTextField quizJTextField;

   // JButton to enter quiz score
   private JButton submitJButton;

   // JLabel and JTextField to display number of quizzes taken
   private JLabel numberJLabel;
   private JTextField numberJTextField;

   // JLabel and JTextField to display average of all quiz scores
   private JLabel averageJLabel;
   private JTextField averageJTextField;

line 26   


   // no-argument constructor
   public QuizAverage()
   {
      createUserInterface();
   }

   // create and position GUI components; register event handlers
   private void createUserInterface()
   {
      // get content pane for attaching GUI components
      Container contentPane = getContentPane();
      
      // enable explicit positioning of GUI components
      contentPane.setLayout( null );
      
      // set up quizJLabel
      quizJLabel = new JLabel();
      quizJLabel.setBounds( 16, 16, 88, 21 );
      quizJLabel.setText( "Quiz score:" );
      contentPane.add( quizJLabel );
      
      // set up quizJTextField
      quizJTextField = new JTextField();
      quizJTextField.setBounds( 122, 16, 40, 24 );
      quizJTextField.setHorizontalAlignment( JTextField.RIGHT );
      contentPane.add( quizJTextField );
      
      // set up submitJButton
      submitJButton = new JButton();
      submitJButton.setBounds( 183, 16, 116, 24 );
      submitJButton.setText( "Submit Score" );
      contentPane.add( submitJButton );
      submitJButton.addActionListener(
         
         new ActionListener() // anonymous inner class
         {
             // event handler called when submitJButton is clicked
             public void actionPerformed ( ActionEvent event )
             {
                submitJButtonActionPerformed( event );
             }

         } // end anonymous inner class

      ); // end call to addActionListener
            
      // set up numberJLabel
      numberJLabel = new JLabel();
      numberJLabel.setBounds( 16, 56, 88, 21 );
      numberJLabel.setText( "Number taken:" );
      contentPane.add( numberJLabel );
      
      // set up numberJTextField
      numberJTextField = new JTextField();
      numberJTextField.setBounds( 122, 56, 40, 24 );
      numberJTextField.setHorizontalAlignment( JTextField.CENTER );
      numberJTextField.setEditable( false );
      contentPane.add( numberJTextField );
      
      // set up averageJLabel
      averageJLabel = new JLabel();
      averageJLabel.setBounds( 175, 56, 56, 21 );
      averageJLabel.setText( "Average:" );
      contentPane.add( averageJLabel );
      
      // set up averageJTextField
      averageJTextField = new JTextField();
      averageJTextField.setBounds( 259, 56, 40, 24 );
      averageJTextField.setHorizontalAlignment( JTextField.CENTER );
      averageJTextField.setEditable( false );
      contentPane.add( averageJTextField );
      
      // set properties of application's window
      setTitle( "Quiz Average" ); // set title bar string
      setSize( 325, 125 );        // set window size
      setVisible( true );         // display window
      
   } // end method createUserInterface
   
   // calculate and display average score
   public void submitJButtonActionPerformed( ActionEvent event )
   {
line 110    
         
   } // end method submitJButtonActionPerformed

   // main method
   public static void main( String[] args )
   {
      QuizAverage application = new QuizAverage();
      application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

   } // end method main

} // end class QuizAverage

Explanation / Answer

// Exercise 14.12: QuizAverage.java

// Application enables a user to enter grades and have the average

// calculated.

import java.awt.*;

import java.awt.event.*;

import java.text.*;

import javax.swing.*;


public class QuizAverage extends JFrame

{


// JLabel and JTextField to display quiz score

private JLabel quizJLabel;

private JTextField quizJTextField;

// JButton to enter quiz score

private JButton submitJButton;

// JLabel and JTextField to display number of quizzes taken

private JLabel numberJLabel;

private JTextField numberJTextField;

// JLabel and JTextField to display average of all quiz scores

private JLabel averageJLabel;

private JTextField averageJTextField;


private int quizzesTaken;

private double totalScore;

// no-argument constructor

public QuizAverage()

{

createUserInterface();

}

// create and position GUI components; register event handlers

private void createUserInterface()

{

// get content pane for attaching GUI components

Container contentPane = getContentPane();

  

// enable explicit positioning of GUI components

contentPane.setLayout( null );

  

// set up quizJLabel

quizJLabel = new JLabel();

quizJLabel.setBounds( 16, 16, 88, 21 );

quizJLabel.setText( "Quiz score:" );

contentPane.add( quizJLabel );

  

// set up quizJTextField

quizJTextField = new JTextField();

quizJTextField.setBounds( 122, 16, 40, 24 );

quizJTextField.setHorizontalAlignment( JTextField.RIGHT );

contentPane.add( quizJTextField );

  

// set up submitJButton

submitJButton = new JButton();

submitJButton.setBounds( 183, 16, 116, 24 );

submitJButton.setText( "Submit Score" );

contentPane.add( submitJButton );

submitJButton.addActionListener(

new ActionListener() // anonymous inner class

{

// event handler called when submitJButton is clicked

public void actionPerformed ( ActionEvent event )

{

submitJButtonActionPerformed( event );

}

} // end anonymous inner class

); // end call to addActionListener

  

// set up numberJLabel

numberJLabel = new JLabel();

numberJLabel.setBounds( 16, 56, 88, 21 );

numberJLabel.setText( "Number taken:" );

contentPane.add( numberJLabel );

  

// set up numberJTextField

numberJTextField = new JTextField();

numberJTextField.setBounds( 122, 56, 40, 24 );

numberJTextField.setHorizontalAlignment( JTextField.CENTER );

numberJTextField.setEditable( false );

contentPane.add( numberJTextField );

  

// set up averageJLabel

averageJLabel = new JLabel();

averageJLabel.setBounds( 175, 56, 56, 21 );

averageJLabel.setText( "Average:" );

contentPane.add( averageJLabel );

  

// set up averageJTextField

averageJTextField = new JTextField();

averageJTextField.setBounds( 259, 56, 40, 24 );

averageJTextField.setHorizontalAlignment( JTextField.CENTER );

averageJTextField.setEditable( false );

contentPane.add( averageJTextField );

  

// set properties of application's window

setTitle( "Quiz Average" ); // set title bar string

setSize( 325, 125 ); // set window size

setVisible( true ); // display window

  

} // end method createUserInterface


// calculate and display average score

public void submitJButtonActionPerformed( ActionEvent event )

{

//line 110

double score = Integer.parseInt(quizJTextField.getText());

quizzesTaken += 1;

totalScore += score;

double average = totalScore / quizzesTaken;

numberJTextField.setText(String.valueOf(quizzesTaken));

  

DecimalFormat decimalFormat = new DecimalFormat("0.00");

averageJTextField.setText(decimalFormat.format(average));

  

} // end method submitJButtonActionPerformed

// main method

public static void main( String[] args )

{

QuizAverage application = new QuizAverage();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

} // end method main

} // end class QuizAverage// Exercise 14.12: QuizAverage.java