java实现求各门课的平均成绩-【简单应用】-T5

一道java二级基本应用题

1.在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行“ //********* Found ********** ” 下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容,存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。

下面程序的功能是:给出一些学生的若干门课的成绩,计算所有成绩的中的最高分,及每个同学所有各门课的平均成绩。

代码如下:

import java.awt.*;
import javax.swing.*;

public class Java_2{
    
    
    int grades[][] = {
    
     {
    
     77, 68, 86, 73 },
                        {
    
     96, 87, 89, 81 },
                        {
    
     70, 90, 86, 81 } };
    int students, exams;
    String  output;
    JTextArea outputArea;
    
    public Java_2(){
    
        
        students = grades.length;
        exams = grades[ 0 ].length;
        
        JFrame f = new JFrame();
        f.setSize(300,300);
        f.setVisible(true);//显示
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
        //*********Found**********
        outputArea = new ________________();
        Container c = f.getContentPane();
        //*********Found**********
        c.add( ________________ );
        
        output = "数组是:";
        buildString();
        output += "\n\n最高分: " + maximum() + "\n";
         //*********Found**********
        for ( int i = 0; i < ________________; i++ )
            output += "\n第" + (i+1) + "个学生的平均分是: " +
                    average( grades[ i ] );
         //*********Found**********
        outputArea.________________( output );
    }
    
    
    //找最高分
    public int maximum(){
    
    
        int highGrade = 0;
        for ( int i = 0; i < students; i++ )
            for ( int j = 0; j < exams; j++ )
                if ( grades[ i ][ j ] > highGrade )
                     //*********Found**********
                    highGrade = ________________;
        return highGrade;
    }
    //对各组学生确定平均分
    public int average( int setOfGrades[] ){
    
    
        int total = 0;
        for ( int i = 0; i < setOfGrades.length; i++ )
             //*********Found**********
            total += ________________;
       
        return total /exams;
    }
    //输出格式
    public void buildString(){
    
    
        output += "        ";
        for ( int i = 0; i < exams; i++ )
            output += "[" + i + "]   ";
        for ( int i = 0; i < students; i++ ) {
    
    
            output += "\ngrades[" + i + "]   ";
            for ( int j = 0; j < exams; j++ )
                output += grades[ i ][ j ] + "   ";
        }
    }
    
    public static void main(String[ ]args){
    
    
        new Java_2();
    }
}

程序运行结果如下:
在这里插入图片描述

本题着重考察考生对Java语言数组和文本框绘制的掌握情况。

本题中的第一个空格:由程序运行结果可以看出最终显示为文本区域,因此此处空格填入JTextArea;
在这里插入图片描述

本题中的第二个空格:容器初始化完成后要加入具体展示的内容,此处为创建好的JTextArea对象,因此此处空格填入outputArea;
点击了解JTextArea

本题中的第三个空格:要算出每个学生的平均分,需要以学生人数为最大值进行循环,因此此处空格填入students;

本题中的第四个空格:新建好的JTextArea对象需要设置显示的内容,使用setText方法,因此此处空格填入setText;

本题中的第五个空格:所有的成绩放在二维数组grades中,因此要对每个二维数组的值进行比较后将最大值存入highGrade,当二维数组值大于highGrade时则将该值存入,因此此处空格填入grades[ i ] [ j ];

本题中的第六个空格:计算平均分之前需要算好总分,要将每个学生的所有成绩相加,因此此处空格填入setOfGrades[ i ]
本评析仅作参考。

代码中一些方法等的学习:

setVisible(boolean)方法:
setVisible(boolean)方法是用来显示/隐藏GUI组件的。
需要显示则使用true,需要隐藏则使用false。
setVisible(true)方法的意思是说数据模型已经构造好了,允许JVM可以根据数据模型执行paint方法开始画图并显示到屏幕上了,并不是显示图形,而是可以运行开始画图,要把setVisible()方法放到最后面,代码是按顺序执行的 ,如果把setVisible()放在前边,后边再添加其他组件的时候,有可能不会显示出来。

完整代码如下:

import java.awt.*;
import javax.swing.*;

public class Java_2{
    
    
    int grades[][] = {
    
     {
    
     77, 68, 86, 73 },
                        {
    
     96, 87, 89, 81 },
                        {
    
     70, 90, 86, 81 } };
    int students, exams;
    String output;
    JTextArea outputArea;
    
    public Java_2(){
    
        
        students = grades.length;
        exams = grades[ 0 ].length;
        
        JFrame f = new JFrame();
        f.setSize(300,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //*********Found**********
        outputArea = new JTextArea();
        Container c = f.getContentPane();
        //*********Found**********
        c.add( outputArea );
        
        output = "数组是:";
        buildString();
        output += "\n\n最高分: " + maximum() + "\n";
         //*********Found**********
        for ( int i = 0; i <students ; i++ )
            output += "\n第" + (i+1) + "个学生的平均分是: " +
                    average( grades[ i ] );
         //*********Found**********
        outputArea.setText( output );
    }
    
    
    //找最高分
    public int maximum(){
    
    
        int highGrade = 0;
        for ( int i = 0; i < students; i++ )
            for ( int j = 0; j < exams; j++ )
                if ( grades[ i ][ j ] > highGrade )
                     //*********Found**********
                    highGrade = grades[ i ] [ j ];
        return highGrade;
    }
    //对各组学生确定平均分
    public int average( int setOfGrades[] ){
    
    
        int total = 0;
        for ( int i = 0; i < setOfGrades.length; i++ )
             //*********Found**********
            total += setOfGrades[ i ];
       
        return total /exams;
    }
    //输出格式
    public void buildString(){
    
    
        output += "        ";
        for ( int i = 0; i < exams; i++ )
            output += "[" + i + "]   ";
        for ( int i = 0; i < students; i++ ) {
    
    
            output += "\ngrades[" + i + "]   ";
            for ( int j = 0; j < exams; j++ )
                output += grades[ i ][ j ] + "   ";
        }
    }
    
    public static void main(String[ ]args){
    
    
        new Java_2();
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_49095721/article/details/109215109
今日推荐