Java二级操作题第11套

基本操作

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

程序的功能是计算一组学生成绩的等级,运行结果如图所示。 

public class Java_1{
  public static void main(String[] args){
    //*********Found**********
    ________  scores = {90,80,75,67,53}; 
    int best = 0; 
    char grade; 

    // 找出这组成绩中的最高分
    //*********Found**********
    for (int i=0;_________________; i++){
      //*********Found**********
      if (_______________)
        best = scores[i];
    }
 
    //求各分数的等级并显示
    for (int i=0; i<scores.length; i++){
      if (scores[i] >= best - 10)
        grade = 'A';
      //*********Found**********
      __________ (scores[i] >= best - 20)
        grade = 'B';
      else if (scores[i] >= best - 30)
        grade = 'C';
      else if (scores[i] >= best - 40)
        grade = 'D';
      else
        grade = 'F';
      System.out.println("Student " + i + " score is " + scores[i] +
        " and grade is " + grade);
    }
  }
}

本题考查的是数组的定义及操作。
首先,程序定义并初始化一维数组scores,在Java中定义并创建一个数组对象的方式是:type[] arrayName=new type[arraySize];所以第一空填"int[]"。
然后,程序通过一个for循环来找出数组scores中的最大值,因为数组scores的数组元素有5个,元素下标最大值为4(即:scores[0]、scores[1]、scores[2]、scores[3]、scores[4]),所以第二空填"i<=4";由程序可知,变量best用于存放这组成绩中的最高分,所以通过if语句进行比较,第三空填"scores[i]>best"。
第四空所在的for循环的作用是根据分数判断等级,等级A:最高分-10;等级B:最高分-20;等级C:最高分-30;等级D:最高分-40;其余的是等级F。由程序可知,第四空填else
if。
具体程序如下:

public class Java_1{
  public static void main(String[] args){
    //*********Found**********
    int[]  scores = {90,80,75,67,53}; 
    int best = 0; 
    char grade; 

    // 找出这组成绩中的最高分
    //*********Found**********
    for (int i=0;i<scores.length; i++){
      //*********Found**********
      if (best<scores[i])
        best = scores[i];
    }
 
    //求各分数的等级并显示
    for (int i=0; i<scores.length; i++){
      if (scores[i] >= best - 10)
        grade = 'A';
      //*********Found**********
      else if (scores[i] >= best - 20)
        grade = 'B';
      else if (scores[i] >= best - 30)
        grade = 'C';
      else if (scores[i] >= best - 40)
        grade = 'D';
      else
        grade = 'F';
      System.out.println("Student " + i + " score is " + scores[i] +
        " and grade is " + grade);
    }
  }
}

简单应用

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

本题的要求是:
运行程序后,输出结果为(2,3)

public class Java_2 {
    public static void main(String[ ] args) {
        Point pt;
        //*********Found**********
        pt = _____________ Point(2, 3);
        System.out.println(pt);
    }
}

class Point {

    //*********Found**********
    private _____________;
    private int y;

    //*********Found**********
    public _____________ (int a, int b) {
        x = a;
        y = b;
    }

    int getX( ) {
        return x;
    }

    int getY( ) {
        return y;
    }

    void setX(int a) {
        x = a;
    }

    void setY(int b) {
        y = b;
    }

    //*********Found**********
    public String _____________ ( ) {
        return "( " + x + "," + y + " ) ";
    }
}

本题重点考查了方法参数的传递和对象的实例化。
对象实例化的一般格式是先定义一个对象变量,再用关键字new生成一个对象,并对对象中的变量赋初值。如下所示:type objectName=new type([参数]),其中type
objectName声明是定义对象的类型;new关键字的作用是实例化一个对象,给对象分配内存,它调用对象的构造方法,返回该对象的引用,所以第一空填"new"。
private修饰符修饰的类变量在类内可访问,其他类不能进行访问。根据语句"private int y;“可知,第二空填"int x;”。
构造方法用来初始化对象,其方法名必须与类名相同且只能通过new自动调用,第三空所在的方法是Point类的构造方法,所以,第三空填"Point"。
只要是一个类而且继承自object,那么这个类就会继承Object的toString方法,功能是将对象转换为其字符串表现形式,使它适合于显示。第四空重写toString方法以(x,y)的格式返回点的位置,所以填"toString"。
具体程序如下:

public class Java_2 {
    public static void main(String[ ] args) {
        Point pt;
        //*********Found**********
        pt = new Point(2, 3);
        System.out.println(pt);
    }
}

class Point {

    //*********Found**********
    private int x;
    private int y;

    //*********Found**********
    public Point (int a, int b) {
        x = a;
        y = b;
    }

    int getX( ) {
        return x;
    }

    int getY( ) {
        return y;
    }

    void setX(int a) {
        x = a;
    }

    void setY(int b) {
        y = b;
    }

    //*********Found**********
    public String toString ( ) {
        return "( " + x + "," + y + " ) ";
    }
}

综合应用

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

本题的要求是:
程序中用Swing编写了一个窗体,窗体内含有两个按钮"New"和"Close all"。
当"New"按钮被按下后,就生成一个新的窗体。当"Close all"按钮被按下后,就关闭所有现在已经打开的窗体。程序运行如下图所示。 

import java.awt.*;
import java.awt.event.*;    
//*********Found**********
import ________________.swing.*;
   
//*********Found**********
public class Java_3 ___________ JPanel{     
   
  private int counter = 0;    
   
  private JButton closeAllButton;    
   
  public Java_3() {    
    JButton newButton = new JButton("New");    
    //*********Found**********
    add(______________);
    newButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        CloseFrame f = new CloseFrame();    
        counter++;    
        f.setTitle("窗体 " + counter);    
        f.setSize(200, 150);    
        f.setLocation(30 * counter, 30 * counter);    
        //*********Found**********
        ____________.setVisible(true);    
        closeAllButton.addActionListener(f); 
      }  
    });
        
    closeAllButton = new JButton("Close all");    
    add(closeAllButton);    
  }      
   
  public static void main(String[ ] args) {    
    JFrame frame = new JFrame();    
    frame.setTitle("多窗体测试");    
    frame.setSize(300, 200);    
    frame.addWindowListener(new WindowAdapter() {    
      public void windowClosing(WindowEvent e) {    
        System.exit(0);    
      }    
    });    
   
    Container contentPane = frame.getContentPane();    
    contentPane.add(new Java_3());   
  
    frame.setVisible(true) ;    
  } 
} 
   
//*********Found**********
class CloseFrame extends JFrame implements ________________ {    
  public void actionPerformed(ActionEvent evt) {     
    setVisible(false);    
  }    
}

本题考查的是Swing构件和AWT中的事件处理。
下面语句导入Swing包:import javax.swing.*;所以第一空填"javax"。
extends关键字代表了所谓的继承关系,新类Java_3开始于JPanel类的现有成员(数据和方法)。Java_3继承的类,即JPanel,显示在关键字extends右边。这种继承关系下,JPanel称为超类,Java_3称为子类。所以第二空填"extends"。
增加一个新的按钮控件,所以第三空填"newButton"。
setVisible()方法的作用是使可视化组件f(如窗口、面板等)可见,根据语句"CloseFrame f = new CloseFrame(); “可知,第四空填"f”。
第五空的作用是定义事件响应接口,根据语句"public void actionPerformed(ActionEvent evt)“可知,所以第五空填"ActionListener”。
具体程序如下:

import java.awt.*;
import java.awt.event.*;    
//*********Found**********
import javax.swing.*;
   
//*********Found**********
public class Java_3 extends JPanel{     
   
  private int counter = 0;    
   
  private JButton closeAllButton;    
   
  public Java_3() {    
    JButton newButton = new JButton("New");    
    //*********Found**********
    add(newButton);
    newButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        CloseFrame f = new CloseFrame();    
        counter++;    
        f.setTitle("窗体 " + counter);    
        f.setSize(200, 150);    
        f.setLocation(30 * counter, 30 * counter);    
        //*********Found**********
        f.setVisible(true);    
        closeAllButton.addActionListener(f); 
      }  
    });
        
    closeAllButton = new JButton("Close all");    
    add(closeAllButton);    
  }      
   
  public static void main(String[ ] args) {    
    JFrame frame = new JFrame();    
    frame.setTitle("多窗体测试");    
    frame.setSize(300, 200);    
    frame.addWindowListener(new WindowAdapter() {    
      public void windowClosing(WindowEvent e) {    
        System.exit(0);    
      }    
    });    
   
    Container contentPane = frame.getContentPane();    
    contentPane.add(new Java_3());   
  
    frame.setVisible(true) ;    
  } 
} 
   
//*********Found**********
class CloseFrame extends JFrame implements ActionListener {    
  public void actionPerformed(ActionEvent evt) {     
    setVisible(false);    
  }    
}
posted @   槑孒  阅读(426)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示