Java二级操作题第14套

基本操作

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

本题的要求是:
该程序的功能是:打印如下图形。
*





public class Java_1 {
    public static void main(String[] args) {
        //*********Found**********
        for (int i=1;___________;i++){
            for(int k=1;k<=5-i;k++)
                //*********Found**********
                ______________________;
            //*********Found**********
            for(___________;j<=2*i-1;j++)
                System.out.print("*");
            //*********Found**********
            ______________________;
        }
    }
}

本题考查的是for循环语句。
因为打印输出的图形是5行,所以第一空填"i<=5"。图形是空格和*组成,所以第二空填"System.out.print(" “)”。内层循环j从1开始,所以第三空填"int j=1"。每行输出后需要换行,所以第四空填"System.out.println()"。
具体程序如下:

public class Java_1 {
    public static void main(String[] args) {
        //*********Found**********
        for (int i=1;i<=5;i++){
            for(int k=1;k<=5-i;k++)
                //*********Found**********
                System.out.print(" ");
            //*********Found**********
            for(int j=1;j<=2*i-1;j++)
                System.out.print("*");
            //*********Found**********
            System.out.println();
        }
    }
}

简单应用

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

本题的要求是:
该程序的功能是:将一个对象写入一个数据文件,再读出该对象并显示出来。
该程序的运行结果是:小王

import java.io.*;
 
public class Java_2 {
    public static void main(String[] args) {
        ObjectOutputStream oos = null;
        ObjectInputStream ois = null;
        try { 
            File f = new File("Person.dat");
            //*********Found**********
            oos = new ObjectOutputStream(new _____________________(f));
            oos.writeObject(new Person("小王"));
            oos.close();
            ois = new ObjectInputStream(new FileInputStream(f));
            //*********Found**********
            Person d = (Person) ois._____________();
            System.out.println(d);
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//*********Found**********
class Person implements __________________ {
    String name = null;
    public Person(String s) {
        name = s;
    }
    //*********Found**********
    public String _____________() {
        return name;
    }
}

本题考查的是对文件读、写对象数据。
需要使用到与对象有关的流ObjectInputStream/ObjectOutputStream。
ObjectOutputStream:对象输出流,使用writeObject(Object obj)方法将一个对象Obj写入输出流;ObjectInputStream:对象输入流,使用readObject()方法读取一个对象所以第一空填"FileOutputStream",第二空填"readObject"。
当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化,序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,所以第三空填"Serializable"。
默认执行Object的toString方法,在该类重写该方法,达到输出姓名效果,所以第四空填"toString"。

具体程序如下:

import java.io.*;
 
public class Java_2 {
    public static void main(String[] args) {
        ObjectOutputStream oos = null;
        ObjectInputStream ois = null;
        try { 
            File f = new File("Person.dat");
            //*********Found**********
            oos = new ObjectOutputStream(new FileOutputStream(f));
            oos.writeObject(new Person("小王"));
            oos.close();
            ois = new ObjectInputStream(new FileInputStream(f));
            //*********Found**********
            Person d = (Person) ois.readObject();
            System.out.println(d);
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//*********Found**********
class Person implements Serializable {
    String name = null;
    public Person(String s) {
        name = s;
    }
    //*********Found**********
    public String toString() {
        return name;
    }
}

综合应用

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

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

import java.awt.*;
import java.awt.event.*;
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().___________(new Change());

        frame.pack();
        //*********Found**********
        frame.setVisible(___________);
    }
}

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);
        add(b1);
        add(b2);
        b1.addActionListener(new BListener1());
        //*********Found**********
        b2.addActionListener(new ___________());
    }

    private class BListener1 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            count++;
            l1.setText("" + count);
        }
    }
    private class BListener2 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            //*********Found**********
            count _________;
            l1.setText("" + count);
        }
    }
}

本题考查的是Swing构件和AWT中的事件处理。
getContentPane()的作用是初始化一个容器,用来在容器上添加一些控件,所以第一空填"add"。
然后需要显示该容器,所以第二空填"true"。
由语句"b1.addActionListener(new BListener1());“可知,第三空填"BListener2”。
定义的b2事件是个减小,所以第四空填"–"。

具体程序如下:

import java.awt.*;
import java.awt.event.*;
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();
        //*********Found**********
        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);
        add(b1);
        add(b2);
        b1.addActionListener(new BListener1());
        //*********Found**********
        b2.addActionListener(new BListener2());
    }

    private class BListener1 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            count++;
            l1.setText("" + count);
        }
    }
    private class BListener2 implements ActionListener {

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