⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentgrades.java

📁 学生成绩评定应用程序,声明并操作二维数组!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Tutorial 17: StudentGrades.java
// This application computes each student's grade average and
// the class average for ten students.
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;
import javax.swing.border.*;

public class StudentGrades extends JFrame 
{
   // JPanel for user inputs
   private JPanel inputGradeJPanel;
   
   // JLabel and JTextField for student name
   private JLabel studentNameJLabel;
   private JTextField studentNameJTextField;
   
   // JLabel and JTextField for test 1 score
   private JLabel test1JLabel;
   private JTextField test1JTextField;

   // JLabel and JTextField for test 2 score
   private JLabel test2JLabel;
   private JTextField test2JTextField;

   // JLabel and JTextField for test 3 score
   private JLabel test3JLabel;
   private JTextField test3JTextField;

   // JButton to calculate student and class average
   private JButton submitGradesJButton;

   // ButtonGroup to control numeric and letter JRadioButtons
   private ButtonGroup displayButtonGroup;

   // JRadioButtons to choose to display numerically or as letters
   private JRadioButton numericJRadioButton;
   private JRadioButton letterJRadioButton;

   // JLabel and JTextArea to display student averages
   private JLabel displayJLabel;
   private JTextArea displayJTextArea;

   // JLabel and JTextField to display the class average
   private JLabel classAverageJLabel;
   private JTextField classAverageJTextField;
   
   // initialize number of students to zero
   private int studentCount = 0;

   // constants 
   private final int NUMBER_OF_TESTS = 3;
   private final int MAXIMUM_STUDENTS = 10;
   private final int FIRST_TEST = 0;
   private final int SECOND_TEST = 1;
   private final int THIRD_TEST = 2;

   // one-dimensional array to store student names
   private String studentNames[] = new String[ MAXIMUM_STUDENTS ];

   // two-dimensional array to store student grades
   private int studentGrades[][] = 
      new int[ MAXIMUM_STUDENTS ][ NUMBER_OF_TESTS ];

   // DecimalFormat for two digits of precision
   private DecimalFormat twoDigits = new DecimalFormat( "0.00" );

   // no-argument constructor
   public StudentGrades()
   {
      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 inputGradeJPanel
      inputGradeJPanel = new JPanel();
      inputGradeJPanel.setBounds( 16, 16, 208, 218 );
      inputGradeJPanel.setBorder(
         new TitledBorder( "Input Grade" ) );
      inputGradeJPanel.setLayout( null );
      contentPane.add( inputGradeJPanel );
      
      // set up studentNameJLabel
      studentNameJLabel = new JLabel();
      studentNameJLabel.setBounds( 8, 32, 90, 23 );
      studentNameJLabel.setText( "Student Name:" );
      inputGradeJPanel.add( studentNameJLabel );

      // set up studentNameJTextField
      studentNameJTextField = new JTextField();
      studentNameJTextField.setBounds( 104, 32, 88, 21 );
      studentNameJTextField.setHorizontalAlignment(
         JTextField.RIGHT );
      inputGradeJPanel.add( studentNameJTextField );
      
      // set up test1JLabel
      test1JLabel = new JLabel();
      test1JLabel.setBounds( 8, 74, 60, 23 );
      test1JLabel.setText( "Test 1:" );
      inputGradeJPanel.add( test1JLabel );

      // set up test1JTextField
      test1JTextField = new JTextField();
      test1JTextField.setBounds( 136, 74, 56, 21 );
      test1JTextField.setHorizontalAlignment( JTextField.RIGHT );
      inputGradeJPanel.add( test1JTextField );

      // set up test2JLabel
      test2JLabel = new JLabel();
      test2JLabel.setBounds( 8, 98, 60, 23 );
      test2JLabel.setText( "Test 2:" );
      inputGradeJPanel.add( test2JLabel );

      // set up test2JTextField
      test2JTextField = new JTextField();
      test2JTextField.setBounds( 136, 98, 56, 21 );
      test2JTextField.setHorizontalAlignment( JTextField.RIGHT );
      inputGradeJPanel.add( test2JTextField );

      // set up test3JLabel
      test3JLabel = new JLabel();
      test3JLabel.setBounds( 8, 122, 60, 23 );
      test3JLabel.setText( "Test 3:" );
      inputGradeJPanel.add( test3JLabel );

      // set up test3JTextField
      test3JTextField = new JTextField();
      test3JTextField.setBounds( 136, 122, 56, 21 );
      test3JTextField.setHorizontalAlignment( JTextField.RIGHT );
      inputGradeJPanel.add( test3JTextField );

      // set up submitGradesJButton
      submitGradesJButton = new JButton();
      submitGradesJButton.setBounds( 72, 182, 120, 24 );
      submitGradesJButton.setText( "Submit Grades" );
      inputGradeJPanel.add( submitGradesJButton );
      submitGradesJButton.addActionListener(

         new ActionListener() // anonymous inner class
         {
            // event handler called when submitGradesJButton 
            // is clicked
            public void actionPerformed( ActionEvent event )
            {
               submitGradesJButtonActionPerformed( event );
            }

         } // end anonymous inner class

      ); // end call to addActionListener

      // set up displayButtonGroup
      displayButtonGroup = new ButtonGroup();
      
      // set up numericJRadioButton
      numericJRadioButton = new JRadioButton(); 
      numericJRadioButton.setBounds( 55, 244, 75, 23 );
      numericJRadioButton.setText( "Numeric" );
      numericJRadioButton.setSelected( true );
      displayButtonGroup.add( numericJRadioButton );
      contentPane.add( numericJRadioButton );
      numericJRadioButton.addActionListener(

         new ActionListener() // anonymous inner class
         {
            // event handler called when numericJRadioButton 
            // is selected
            public void actionPerformed( ActionEvent event )
            {
               numericJRadioButtonActionPerformed( event );
            }

         } // end anonymous inner class

      ); // end call to addActionListener
      
      // set up letterJRadioButton
      letterJRadioButton = new JRadioButton();
      letterJRadioButton.setBounds( 140, 244, 75, 23 );
      letterJRadioButton.setText( "Letter" );
      displayButtonGroup.add( letterJRadioButton );
      contentPane.add( letterJRadioButton );
      letterJRadioButton.addActionListener(

         new ActionListener() // anonymous inner class
         {
            // event handler called when letterJRadioButton 
            // is selected
            public void actionPerformed( ActionEvent event )
            {
               letterJRadioButtonActionPerformed( event );
            }

         } // end anonymous inner class

      ); // end call to addActionListener

      // set up displayJLabel
      displayJLabel = new JLabel();
      displayJLabel.setBounds( 240, 16, 150, 23 );
      displayJLabel.setText( "Average of each student:" );
      contentPane.add( displayJLabel );
      
      // set up displayJTextArea
      displayJTextArea = new JTextArea();
      displayJTextArea.setBounds( 240, 48, 402, 184 );
      displayJTextArea.setEditable( false );
      contentPane.add( displayJTextArea );
      
      // set up classAverageJLabel
      classAverageJLabel = new JLabel();
      classAverageJLabel.setBounds( 490, 244, 96, 23 );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -