Java二级操作题第17套

基本操作

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

本题的要求是:
统计某单位员工伯年龄分布情况。年龄分为4个年龄段:
六十岁以上(>=61),五十到六十(51-60),四十到五十(41-50),以及四十岁以下(<=40)。需要统计每个年龄段的人数以及职工的平均年龄,运行结果如下所示。
<=40:4 41-50:3 51-60:2 >=61:1

public class Java_1{
 
    public static void main(String[] args){

        //*********Found********
        __________ ages = {35,43,28,39,62,57,48,29,54,46}; 
        int sum = 0, avg = 0; 
        int tt = 0,fot = 0,fit = 0,st = 0; 

        for (int i=0; i<ages.length; i++){
            if (ages[i] <=40 )
                tt++;
            else if (ages[i] >40 && ages[i]<=50)
                fot++;
            else if (ages[i] >50 && ages[i]<=60)
                //*********Found********
                __________;
            else 
                st++;
        }
   
        //*********Found********
        for (__________; i<ages.length; i++)
            //*********Found********
            sum += __________;
        avg = sum/ages.length;

        System.out.println("<=40: "+tt+"     41-50: " +fot+"     51-60: " 
                            + fit +"     >=61: " + st);
    }
}

本题考查的是for循环语句。
初始化ages值为整型,所以第一空填"int[]",int tt = 0,fot = 0,fit = 0,st = 0; 定义了四个变量,用于存放不同年龄段的人数,所以第二空填"fit++",数组下标从0开始,所以第三空填"int
i=0",最后要计算平均值,先求和,所以第四空填"ages[i]"。

具体程序如下:

public class Java_1{
 
    public static void main(String[] args){

        //*********Found********
        int[] ages = {35,43,28,39,62,57,48,29,54,46}; 
        int sum = 0, avg = 0; 
        int tt = 0,fot = 0,fit = 0,st = 0; 

        for (int i=0; i<ages.length; i++){
            if (ages[i] <=40 )
                tt++;
            else if (ages[i] >40 && ages[i]<=50)
                fot++;
            else if (ages[i] >50 && ages[i]<=60)
                //*********Found********
                fit++;
            else 
                st++;
        }
   
        //*********Found********
        for (int i=0; i<ages.length; i++)
            //*********Found********
            sum += ages[i];
        avg = sum/ages.length;

        System.out.println("<=40: "+tt+"     41-50: " +fot+"     51-60: " 
                            + fit +"     >=61: " + st);
    }
}

简单应用

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

本题的要求是:
程序运行后显示下图所示界面。可在窗口的空白处输入字符,按“保存”按钮后,程序将把所输入的字符保存到当前目录下的out.txt文件中。

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

//*********Found********
public class Java_2 ____________________{ 
   
    JTextArea ta;
    JFrame f ;
    JLabel label;
    JButton bt;

    public static void main(String args[ ]){
        Java_2 t = new Java_2();
        t.go();
    }

    void go(){
        f = new JFrame("Save data");
        label = new JLabel("请输入需要保存的文本:");
        ta = new JTextArea(3,20);
        bt = new JButton("保存");
        //*********Found********
        f.add(label,____________________);
        f.add(ta,BorderLayout.CENTER);
        f.add(bt,BorderLayout.SOUTH);
        //*********Found********
        bt.____________________(this);
        f.setSize(400,400);
        f.pack( );
        f.setVisible(true) ;
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
    }
	
    public void actionPerformed(ActionEvent event){
        try{
            FileWriter  out = new FileWriter("out.txt");
            String str = ta.getText();
            //*********Found********
            _________________(str);  
            out.close();
        } catch( Exception e){
       	}
    }    
}

本题考查的是图形用户界面。
具体程序如下:

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

//*********Found********
public class Java_2 implements ActionListener{ 
   
    JTextArea ta;
    JFrame f ;
    JLabel label;
    JButton bt;

    public static void main(String args[ ]){
        Java_2 t = new Java_2();
        t.go();
    }

    void go(){
        f = new JFrame("Save data");
        label = new JLabel("请输入需要保存的文本:");
        ta = new JTextArea(3,20);
        bt = new JButton("保存");
        //*********Found********
        f.add(label,BorderLayout.NORTH);
        f.add(ta,BorderLayout.CENTER);
        f.add(bt,BorderLayout.SOUTH);
        //*********Found********
        bt.addActionListener(this);
        f.setSize(400,400);
        f.pack( );
        f.setVisible(true) ;
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
    }
	
    public void actionPerformed(ActionEvent event){
        try{
            FileWriter  out = new FileWriter("out.txt");
            String str = ta.getText();
            //*********Found********
            out.write(str);  
            out.close();
        } catch( Exception e){
       	}
    }    
}

综合应用

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

本题的要求是:
实现某培训机构三个报名点在某培训班招生中的联网报名功能。该培训班最多招收学生10人,某次运行结果如下。
Thread-0 Registered one student,and total 1 students registered
Thread-2 Registered one student,and total 2 students registered
Thread-1 Registered one student,and total 3 students registered
Thread-1 Registered one student,and total 4 students registered
Thread-2 Registered one student,and total 5 students registered
Thread-0 Registered one student,and total 6 students registered
Thread-2 Registered one student,and total 7 students registered
Thread-0 Registered one student,and total 8 students registered
Thread-1 Registered one student,and total 9 students registered
Thread-1 Registered one student,and total 10 students registered

//*********Found********
public class Java_3 ____________________{
    static RegistrationAgent agent;
    static boolean timetoquit=false;

    public static void main(String[] args){
        agent = new RegistrationAgent();
        Thread[] t= new Thread[3];
        for (int i=0; i<3; i++){
            t[i] = new Java_3();
            //*********Found********
            ____________________;
        }
    }

    public void run( ){   
        //*********Found********
        while (________________){
            boolean r = agent.reg();  
            if (!r) 
                timetoquit = true;
            try{
                Thread.sleep(2);
            }catch(Exception e){}
        }
    }
}

class RegistrationAgent {
    private int quota = 0;
    public boolean reg(){
        synchronized(this){
            if( quota < 10){
                //*********Found********
                _________________;
                System.out.print(Thread.currentThread().getName());
                System.out.println( " Registered one student, and total " + quota 
                                   +" students registered.");
                return true;
            }
            else
                //*********Found********
                ______________;
        }
    } 
}

本题考查的是线程的调度与线程控制。
具体程序如下:

//*********Found********
public class Java_3 extends Thread{
    static RegistrationAgent agent;
    static boolean timetoquit=false;

    public static void main(String[] args){
        agent = new RegistrationAgent();
        Thread[] t= new Thread[3];
        for (int i=0; i<3; i++){
            t[i] = new Java_3();
            //*********Found********
            t[i].start();
        }
    }

    public void run( ){   
        //*********Found********
        while (timetoquit == false){
            boolean r = agent.reg();  
            if (!r) 
                timetoquit = true;
            try{
                Thread.sleep(2);
            }catch(Exception e){}
        }
    }
}

class RegistrationAgent {
    private int quota = 0;
    public boolean reg(){
        synchronized(this){
            if( quota < 10){
                //*********Found********
                quota++;
                System.out.print(Thread.currentThread().getName());
                System.out.println( " Registered one student, and total " + quota 
                                   +" students registered.");
                return true;
            }
            else
                //*********Found********
                return false;
        }
    } 
}
posted @   槑孒  阅读(350)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示