下面是一个Applet程序,其功能是打印一个任意进制的乘法表。要求输入乘法表的进制,点击ok则打印出该乘法表。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下:

admin2009-01-15  33

问题 下面是一个Applet程序,其功能是打印一个任意进制的乘法表。要求输入乘法表的进制,点击ok则打印出该乘法表。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
   注意:不改动程序的结构,不得增行或删行。
   程序运行结果如下:
   
   import java.awt.*;
   import java.applet.*;
   import java.lang.*;
   public class ex30 3 extends Applet{
      private TextField tf;
      private Button btn;
      public void init(){
         tf = new TextField(25);
         add(tf);
         btn = new Button("OK");
         add(btn);
         resize(250, 200);
      }
      public void paint(Graphics g){
      try{
          int n = tf.getText();
          int i,j,x=20,y=60;
          for(i=0;i<n;i++){
            for (j=1; j<=n; j++) {
                 g.drawString(Integer.toString(i)+"*"
                         +Integer.toString(j)+"="
                         +Integer.toString(i*j),
                         i*x,j*y);
            }
          }
       }
       catch(NumberFormatException nfe){
           g.drawString("error number!",20,50);
       }
    }
    public boolean action(Event e, Object o){
       if (o == "OK"){
           repaint();
           return true;
       }
       else
           return false;
    }
  }
  ex30_3.html
  <HTML>
  <HEAD>
   <TITLE>ex30_3</TITLE>
  </HEAD>
  <BODY>
  <applet code="ex30_3.class" width=800 height=400 >
  </applet>
  </BODY>
  </HTML>

选项

答案 Integer.parseInt(tf.getText()) i=1;i<=n;i++ i*50+x,j*20+y

解析  本题主要考查Applet窗口设计,for循环语句。解题关键是掌握Applet窗口的基本事件机制,会基本的窗口布局,会使用for循环进行程序设计。本题中,第1处,tf对象调用getText()方法返回的是String类的对象,所以需要做类型转换;第2处,注意循环变量的上下界应该分别是1和n如果为0乘法表中会出现0项;第3处,坐标计算公式,只要能使结果正常分布在窗口中即可。
转载请注明原文地址:https://kaotiyun.com/show/bmnp777K
0

最新回复(0)