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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.