1、二级 JAVA 机试-202 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.本题程序的功能是将输入的字符串转换为实数,并打印输出。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。import java.io.*;public class basicpublic static void main(String args)InputStreamReader ir;BufferedReader in;Ir = new InputStreamReader_;in = new BufferedReader(ir);double
2、 d = 0.0;System.out .print (“请输入一个实数:“);_String s = in.readLine();_catch(Exception e)System.out.println ( “你输入的实数是:“+d);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.本题程序的功能是主窗口里有一个文本框和两个按钮“开始”和“关闭”。单击“开始”按钮后该按钮处于按下状态,文本框中的数开始从 0 计数到 49,每间隔 50ms 增加 1,计数完毕后“开始”按钮变为可使用状态,单击“关闭”按钮则退出程序。请将下述程序补充完整(注意:不得改动程序的结构,不
3、得增行或删行)。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class simplepublic static void main (String args)JFrame frame = new CounterFrame();frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE);frame.show();class CounterFrame extends JFramepublic static final int WIDTH = 250;publ
4、ic static final int HEIGHT = 150;private TextField textField = new TextField(20);public CounterFrame()setSize(WIDTH,HEIGHT);setTitle(“simple“);Container contentPane = getContentPane();JPanel textPanel = new JPanel();textPanel.add(textField);JPanel buttonPanel = new JPanel();addButton(buttonPanel,“开始
5、“,new ActionListener() public void actionPerformed(ActionEvent evt)addCounter(););addButton(buttonPanel,“关闭“,new ActionListener() public void actionPerformed(ActionEvent evt)_;);contentPane.add(textPanel,BorderLayout.NORTH);contentPane.add(buttonPanel,BorderLayout.SOUTH);public void addButton(Contai
6、ner c,String title,ActionListener listener)JButton button = new JButton(title);c.add(button);button.addActionListener(listener);public void addCeunter()for (int i = 0; i50; i+)trytextField.setText(Integer.toString(i);_;catch (InterruptedException e)(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.本题程序的功能是用表格的形式
7、列出当前目录所有的文件属性,包括是否是文件夹、文件名称、是否可读、是否可写、文件大小以及最后修改时间。程序中存在若干错误,请找出并改正(注意:不得改动程序的结构,不得增行或删行)。import java.awt.*;import javax.swing.*;import java.util.Date;import java.io.File;import javax.swing.table.*;public class advance extends Jframepublic advance()super(“advance“);setSize(500,400);setDefaultCloseOp
8、eration(EXIT_ON_CLOSE);FileModel fm = new FileModel();JTable jt = new JTable(fm);jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jt.setColumnSelectionAllowed(true);jt.setDefaultRenderer(Number.class,new BigRenderer(1000);JScrollPane jsp = new JScrollPane(jt);getContentPane().add(jsp,BorderLayout.CENTER
9、);public static void main (String args)advance ft : new advance();ft.setVisible(true);class BigRenderer extends DefaultTableCellRendererdouble threshold;public BigRenderer(double t)threshold = t;setHorizontalAlignment(JLabel.RIGHT);setHorizontalTextPosition(SwingConstants.RIGHT);public Component get
10、TableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int col)return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,col);class FileModel extends AbstractTableModelString titles = new String“目录“,“文件名“,“可读?“,“可写?“,“大小“,“最后修改时间“;Class
11、types = new ClassBoolean.class,String.class,Boolean.class,Boolean.class,Number.class,Date.class;Object data;public FileModel()this(“.“);public FileModel(String dir)File pwd = new File(dir);setFileStats (pwd);public int getRowCount()return data.length;public int getColumnCount()return titles.length;p
12、ublic String getColumnName(int c)return titles c;public Class getColumnClass(int c)return typesc;public void getValueAt(int r,int c)return datar c;public void setFileStats(File dir)String files = dir.list;Data = new Objectfiles.length titles.length;for (int i = 0; ifiles.length; i+)File tmp = new Fi
13、le(filesi);datai 0 = new Boolean(tmp.isDirectory();datai 1 = tmp.getName();datai 2 = new Boo lean(tmp.canRead();datai 3 = new Boolean(tmp.canWrite();datai 4 = new Long(tmp.length();datai 5 = new Date(tmp.lastModified();fireTableDataChanged ();(分数:30.00)_二级 JAVA 机试-202 答案解析(总分:100.00,做题时间:90 分钟)一、1基本
14、操作题(总题数:1,分数:30.00)1.本题程序的功能是将输入的字符串转换为实数,并打印输出。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。import java.io.*;public class basicpublic static void main(String args)InputStreamReader ir;BufferedReader in;Ir = new InputStreamReader_;in = new BufferedReader(ir);double d = 0.0;System.out .print (“请输入一个实数:“);_String
15、 s = in.readLine();_catch(Exception e)System.out.println ( “你输入的实数是:“+d);(分数:30.00)_正确答案:(System.in。try。d=Double.parseDouble(s)。)解析:二、2简单应用题(总题数:1,分数:40.00)2.本题程序的功能是主窗口里有一个文本框和两个按钮“开始”和“关闭”。单击“开始”按钮后该按钮处于按下状态,文本框中的数开始从 0 计数到 49,每间隔 50ms 增加 1,计数完毕后“开始”按钮变为可使用状态,单击“关闭”按钮则退出程序。请将下述程序补充完整(注意:不得改动程序的结构,
16、不得增行或删行)。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class simplepublic static void main (String args)JFrame frame = new CounterFrame();frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE);frame.show();class CounterFrame extends JFramepublic static final int WIDTH = 250;pub
17、lic static final int HEIGHT = 150;private TextField textField = new TextField(20);public CounterFrame()setSize(WIDTH,HEIGHT);setTitle(“simple“);Container contentPane = getContentPane();JPanel textPanel = new JPanel();textPanel.add(textField);JPanel buttonPanel = new JPanel();addButton(buttonPanel,“开
18、始“,new ActionListener() public void actionPerformed(ActionEvent evt)addCounter(););addButton(buttonPanel,“关闭“,new ActionListener() public void actionPerformed(ActionEvent evt)_;);contentPane.add(textPanel,BorderLayout.NORTH);contentPane.add(buttonPanel,BorderLayout.SOUTH);public void addButton(Conta
19、iner c,String title,ActionListener listener)JButton button = new JButton(title);c.add(button);button.addActionListener(listener);public void addCeunter()for (int i = 0; i50; i+)trytextField.setText(Integer.toString(i);_;catch (InterruptedException e)(分数:40.00)_正确答案:(System.exit(0)。Thread.sleep(50)。)
20、解析:三、3综合应用题(总题数:1,分数:30.00)3.本题程序的功能是用表格的形式列出当前目录所有的文件属性,包括是否是文件夹、文件名称、是否可读、是否可写、文件大小以及最后修改时间。程序中存在若干错误,请找出并改正(注意:不得改动程序的结构,不得增行或删行)。import java.awt.*;import javax.swing.*;import java.util.Date;import java.io.File;import javax.swing.table.*;public class advance extends Jframepublic advance()super(“a
21、dvance“);setSize(500,400);setDefaultCloseOperation(EXIT_ON_CLOSE);FileModel fm = new FileModel();JTable jt = new JTable(fm);jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jt.setColumnSelectionAllowed(true);jt.setDefaultRenderer(Number.class,new BigRenderer(1000);JScrollPane jsp = new JScrollPane(jt);g
22、etContentPane().add(jsp,BorderLayout.CENTER);public static void main (String args)advance ft : new advance();ft.setVisible(true);class BigRenderer extends DefaultTableCellRendererdouble threshold;public BigRenderer(double t)threshold = t;setHorizontalAlignment(JLabel.RIGHT);setHorizontalTextPosition
23、(SwingConstants.RIGHT);public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int col)return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,col);class FileModel extends AbstractTableModelString titles = new String
24、“目录“,“文件名“,“可读?“,“可写?“,“大小“,“最后修改时间“;Class types = new ClassBoolean.class,String.class,Boolean.class,Boolean.class,Number.class,Date.class;Object data;public FileModel()this(“.“);public FileModel(String dir)File pwd = new File(dir);setFileStats (pwd);public int getRowCount()return data.length;public
25、 int getColumnCount()return titles.length;public String getColumnName(int c)return titles c;public Class getColumnClass(int c)return typesc;public void getValueAt(int r,int c)return datar c;public void setFileStats(File dir)String files = dir.list;Data = new Objectfiles.length titles.length;for (int
26、 i = 0; ifiles.length; i+)File tmp = new File(filesi);datai 0 = new Boolean(tmp.isDirectory();datai 1 = tmp.getName();datai 2 = new Boo lean(tmp.canRead();datai 3 = new Boolean(tmp.canWrite();datai 4 = new Long(tmp.length();datai 5 = new Date(tmp.lastModified();fireTableDataChanged ();(分数:30.00)_正确答案:(第 48 行的“Class types=new Class“改为“Class types=new Class“。第 79 行的“public void getValueAt(int r,int c)“改为“public Object getValueAt(int r,int c)“。第 85 行的“String files=dir.list“改为“String files=dir.list()“。)解析: