操作题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
    <source>
      <Java1>
         Java_1.java
      <Java2>
         Java_2.java
      <Java3>
         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++)  //使用for循环来控制递归调用,变量i初值为0,循环条件为i小于字符串数组files的长度,每执行一轮循环,变量i的值加1
         {
            String ss=s+"\\"+files[i];
            //*********Found**********
            traverse(level,ss);     //traverse方法包含两个参数int型的变量level和String型的变量s,递归调用时,需要将参数带入
         }
      }
      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);
        }
    }
}
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值