Java二级操作题第10套

基本操作

在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:从键盘输入5个正整数,输出其中的最大值。
例如:从键盘输入
10
30
50
20
40
则屏幕显示
输入的最大值是 50

import java.io.*;
public class Java_1 {
    public static void main(String[ ] args) throws IOException {
        InputStreamReader ir;
        BufferedReader in;
        int max, x;
        String data;

        max = 0;
        ir = new InputStreamReader(System.in);
        in = new BufferedReader(ir);
        System.out.println("请输入5个正整数:");
        //*********Found**********
        for (int i = 1; ___________; i++) {
            data = in.readLine();
            //*********Found**********
            x = Integer.___________(data);
            if ( max < x )
                //*********Found**********
                ___________;
        }
        System.out.println("输入的最大值是 "+ max);
    }
}

本题考查的是流程控制。
当从键盘输入5个数之后,需要通过循环语句将其读入,并转换成int类型依次赋值给变量x,所以第一空填"i<=5"。
Integer类的静态方法parseInt()的作用是将其它数据类型转换成整型,所以第二空填"parseInt"。
通过语句"if ( max < x )“可知,第三空是将if语句对比出的较大的整数赋值给变量max,所以第三空为"max=x”。
具体程序如下:

import java.io.*;
public class Java_1 {
    public static void main(String[ ] args) throws IOException {
        InputStreamReader ir;
        BufferedReader in;
        int max, x;
        String data;

        max = 0;
        ir = new InputStreamReader(System.in);
        in = new BufferedReader(ir);
        System.out.println("请输入5个正整数:");
        //*********Found**********
        for (int i = 1; i<=5; i++) {
            data = in.readLine();
            //*********Found**********
            x = Integer.parseInt(data);
            if ( max < x )
                //*********Found**********
                max=x;
        }
        System.out.println("输入的最大值是 "+ max);
    }
}

简单应用

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

本题的要求是:
程序列出当前目录下所有文件和文件夹的名称。如果当前目录含有子文件夹,则也递归地列出子文件夹的内容,用缩进地方式反映层次关系,文件夹的名称用尖括号括起来。某次运行结果如下:
当前的工作目录是:Z:\test
Java_2.class


Java_1.java

Java_2.java

Java_3.java

import java.io.File;

public class Java_2
{
   public static void main(String s[])
   {
      //Getting the Current Working Directory
      String curDir = System.getProperty("user.dir");
      System.out.println("当前的工作目录是:"+curDir);
		
      //*********Found**********
      File ff=new File(____________________);
      String[] files=ff.list();
      for(int i=0; i<files.length; i++)
      {
         String ss=curDir+"\\"+files[i];
         traverse(0,ss);	
      }
   }
	
   /**
   * 递归地遍历目录树
   * @param  level 目录的层次
   * @param  s     当前目录路径名
   */
   public static void traverse(int level,String s)
   {
      File f=new File(s);
      for(int i=0; i<level; i++) System.out.print("   ");
      if(f.isFile()) 
      {
         System.out.println(f.getName());
      }
      else if(f.isDirectory())
      {
         //*********Found**********
         System.out.println("<"+f._____________________+">");
         String[] files=f.list();
         level++;
         //*********Found**********
         for(int i=0; i<files.length;________________________)
         {
            String ss=s+"\\"+files[i];
            //*********Found**********
            traverse(_____________________,ss);
         }
      }
      else
      {
         System.out.println("ERROR!");
      }
   }
}

本题主要考查的是文件和递归调用。
文件类File以一种系统无关的方式表示一个文件对象的属性。而目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息,也可以生成新文件、目录、修改文件和目录、查询文件属性,重命名文件或者删除文件。File类中封装了对文件系统进行操作的功能。
递归就是用自身的结构来描述自身。一个使用递归技术的方法将直接或间接地调用自身的方法。
具体的程序如下:

import java.io.File;

public class Java_2
{
   public static void main(String s[])
   {
      //Getting the Current Working Directory
      String curDir = System.getProperty("user.dir");
      System.out.println("当前的工作目录是:"+curDir);
		
      //*********Found**********
      File ff=new File(curDir);
      String[] files=ff.list();
      for(int i=0; i<files.length; i++)
      {
         String ss=curDir+"\\"+files[i];
         traverse(0,ss);	
      }
   }
	
   /**
   * 递归地遍历目录树
   * @param  level 目录的层次
   * @param  s     当前目录路径名
   */
   public static void traverse(int level,String s)
   {
      File f=new File(s);
      for(int i=0; i<level; i++) System.out.print("   ");
      if(f.isFile()) 
      {
         System.out.println(f.getName());
      }
      else if(f.isDirectory())
      {
         //*********Found**********
         System.out.println("<"+f.getName()+">");
         String[] files=f.list();
         level++;
         //*********Found**********
         for(int i=0; i<files.length;i++)
         {
            String ss=s+"\\"+files[i];
            //*********Found**********
            traverse(level,ss);
         }
      }
      else
      {
         System.out.println("ERROR!");
      }
   }
}

综合应用

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

本题的要求是:
程序运行后出现如图所示界面,点击增大按钮则左边的数字增大,点击减小按钮则左边的数字减小。

import java.awt.*;
import java.awt.event.*;
//*********Found**********
import javax._____________.*;

public class Java_3 {

    public static void main(String[ ] args) {
        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //*********Found**********
        frame.___________________().add(new Change());

        frame.pack();
        frame.setVisible(true);
    }
}

class Change extends JPanel {

    int count = 200;
    JLabel l1;
    JButton b1, b2;

    public Change( ) {
        setPreferredSize(new Dimension(280, 60));
        l1 = new JLabel("200");
        b1 = new JButton("增大");
        b2 = new JButton("减小");
        add(l1);
        //*********Found**********
        add_____________;
        //*********Found**********
        add_____________;
        b1.addActionListener( new BListener( ) );
        b2.addActionListener( new BListener( ) );
    }

    //*********Found**********
    private class  _____________ implements ActionListener {

        //*********Found**********
        public void  _____________(ActionEvent e) {
            if (e.getSource( ) == b1) {
                count++;
            } else {
                count--;
            }
            l1.setText("" + count);
        }
    }
}

本题考查的是Swing构件和AWT中的事件处理。
Swing中的大多数构件都是AWT构件名前面加了一个"J",JPanel是它的中间容器之一,根据"class Change extends JPanel"可知,第一空填"swing"。
getContentPane()的作用是初始化一个容器,用来在容器上添加一些控件,所以第二空填"getContentPane"。
根据程序中语句"b1 = new JButton(“增大”);“可知,程序已经定义了增大按钮,那么接下来需要将该按钮添加到界面中去,所以,第三空填”(b1)",同理,第四空填"(b2)"。
由语句"b1.addActionListener(new BListener());“和"b2.addActionListener(new
BListener());“可知,第五空填"BListener”。
事件发生后,Java运行时系统会自动调用对象的actionPerformed()方法进行处理,而且事件ActionEvent对象将被作为参数传递给actionPerformed()方法,在actionPerformed()方法可以通过读取ActionEvent对象的相关信息来得到事件发生时候的情况,所以第六空填"actionPerformed”。

具体程序如下:

import java.awt.*;
import java.awt.event.*;
//*********Found**********
import javax.swing.*;

public class Java_3 {

    public static void main(String[ ] args) {
        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //*********Found**********
        frame.getContentPane().add(new Change());

        frame.pack();
        frame.setVisible(true);
    }
}

class Change extends JPanel {

    int count = 200;
    JLabel l1;
    JButton b1, b2;

    public Change( ) {
        setPreferredSize(new Dimension(280, 60));
        l1 = new JLabel("200");
        b1 = new JButton("增大");
        b2 = new JButton("减小");
        add(l1);
        //*********Found**********
        add(b1);
        //*********Found**********
        add(b2);
        b1.addActionListener( new BListener( ) );
        b2.addActionListener( new BListener( ) );
    }

    //*********Found**********
    private class  BListener implements ActionListener {

        //*********Found**********
        public void  actionPerformed(ActionEvent e) {
            if (e.getSource( ) == b1) {
                count++;
            } else {
                count--;
            }
            l1.setText("" + count);
        }
    }
}
posted @   槑孒  阅读(434)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示