【计算机类职业资格】二级JAVA机试-37及答案解析.doc
《【计算机类职业资格】二级JAVA机试-37及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级JAVA机试-37及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、二级 JAVA 机试-37 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题利用递归方法求前 n 个自然数的和(n=10)。public class java1public static void main(Stringargs)int sum=add(10);System.out.println(“1+2+.+9+10=“+sum);public static int add(_)if(n=1)_;else_;(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题中定义了一个简单的计算器,可以进行基本的四则运算
2、。程序中包含 16 个按钮用来表示09、+、-、*、/、=运算符和小数点,程序顶部的文本框用来显示操作数以及结果。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class java2public static void main(Stringargs)tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)JFrame frame=new CalculatorFrame();fram
3、e.show();class CalculatorPanel extends JPanel implements ActionListenerprivate JTextField display;private JButton btn;private double arg=0;private String op=“=“;private boolean start=true;public CalculatorPanel()setLayout(new BorderLayout();display=new JTextField(“0“);display.setEditable(false);add(
4、display,“North“);JPanel p=new JPanel();p.setLayout(new GridLayout(4,4);String buttons=“789/456*123-0.=+“;for(int i=0;ibuttons.length();i+)btn=new JButton(buttons.substring(i,i+1);p.add(btn);_;add(p,“Center“);public void actionPerformed(ActionEvent evt)String s=evt.getActionCommand();if(0=s.charAt(0)
5、else display.setText(display.getText()+s);start=false;elseif(start)if(s.equals(“-“)display.setText(s);start=false;else op=s;elsedouble x=_;calculate(x);op=s;start=true;public void calculate(double n)if(op.equals(“+“)arg+=n;else if(op.equals(“-“)arg-n;else if(op.equals(“*“)arg*=n;else if(op.equals(“/
6、“)arg/=n;else if(op.equals(“=“)arg=n;display.setText(“+arg);class CalculatorFrame extends JFramepublic CalculatorFrame()setTitle(“java2“);setSize(220,180);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););Container contentPane=getContentPane();contentPane.
7、add(new CalculatorPanel();(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是用文本框来设定表盘中指针的位置。窗口中有一个画板和两个文本框,画板中绘制了一个表盘和时针、分针,通过文本框分别设定“时”和“分”,表盘中的时针和分针就会指到对应的位置上。import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.*;import javax.swing.event.*;public class java3public static vo
8、id main(Stringargs)TextTestFrame frame=new TextTestFrame();frame.setDefauhCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class TextTestFrame extends JFramepublic TextTestFrame()setTitle(“java3“);setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);Container contentPane=getContentPane();DocumentListener listener
9、=new DocurnentListener();JPanel panel=new JPanel();hourField=new JTextField(“12“,3);panel.add(hourField);hourField.getDocument().addDocumentListener(this);minuteField=new JTextField(“00“,3);panel.add(minuteField);minuteField.getDocument().addDocumentListener(listener);contentPane.add(panel,BorderLay
10、out.SOUTH);clock=new ClockPanel();contentPane.add(clock,BorderLayout.CENTER);public void setClock()tryint hours=Integer.parseInt(hourField,getText().trim();int minutes=Integer.parseInt(minuteField.getText().trim();clock.setTime(hours,minutes);catch(NumberFormatException e)public static final int DEF
11、AULT_WIDTH=300;public static final int DEFAULT_HEIGHT=300;private JTextField hourField;private JTextField minuteField;private ClockPanel clock;private class clockFieldListener extends DocumentListenerpublic void insertUpdate(DocumentEvent e)setClock();public void removeUpdate(DocumentEvent e)setCloc
12、k();public void changedUpdate(DocumentEvent e)class ClockPanel extends JPanelpublic void paintComponent(Graphics g)super.paintComponent(g);Graphics2D g2=(Graphics2D)g;Ellipse2D circle=new Ellipse2D.Double(0,0,2*RADIUS,2*RADIUS);g2.draw(circle);double hourAngle=Math.toRadians(90-360*minutes/(12*60);d
13、rawHand(g2.hourAngle,HOUR_HAND_LENGTH);double minuteAngle=Math.toRadians(90-360*minutes/60);drawHand(g2,minuteAngle,MINUTE_HAND_LENGTH);public void drawHand(Graphics2D g2,double angle,double handLength)Point2D end=new Poim2D.Double(RADIUS+handLength*Math.cos(angle),RADIUS-handLength*Math.sin(angle);
14、Point2D center=new Point2D.Double(RADIUS,RADIUS);g2.draw(new Line2D.Double(center,end);public void setTime(int h,int m)minutesh*60+m:repaint();private double minutes=0;private double RADIUS=100;private double MINUTE_HAND_LENGTH=0.8*RADIUS;private double HOUR_HAND_LENGTH=0.6*RADIUS;(分数:30.00)_二级 JAVA
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 JAVA 机试 37 答案 解析 DOC
