下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结

admin2009-01-15  49

问题 下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
   注意:不改动程序的结构,不得增行或删行。
   程序运行结果如下:
   
   import java.awt.*;
   import java.applet.*;
   import java.lang.*;
   public class ex29 3 extends Applet{
      private TextField tf;
      private Button btn;
      public void init(){
         tf = new TextField(25);
         add(tf);
         btn = new Button("统计");
         add(btn);
         resize(250, 200);
    }
    public void paint(Graphics g){
       String str= tf.getText();
       short cnt[]=new short[65536];
       int i;
       int n = 50;
       for(i=0;i<65536;i++)
         cnt=0;
       for(i=0;i<str.length();i++)
         cnt ++;
       for (i=0;i<65536;i++)//对数级Cnt [] 进行初始化
         if (cnt >=0) {
             g.drawStrinq(i+"出现"+cnt+"次",50,n);
             n+=20;
         }
    }
    public boolean action(Event e, Object o){
       if (o == "统计"){
          repaint();
          return true;
       }
       else
         return false;
    }
  }
  ex29_3, html
  <HTML>
  <HEAD>
   <TITLE>ex29_3</TITLE>
  </HEAD>
  <BODY>
  <applet code="ex29_3.class" width=800 height=400 >
  </applet>
  </BODY>
  </HTML>

选项

答案cnt[str.charAt(i)]++ cnt[i]>0 g.drawString((char)i+"出现"+cnt[i]+"次",50,n)

解析 本题主要考查字符串操作和字符操作以及Applet图形用户界面设计。解题关键是会将输入的字符串分成每1个字符,并且会用计数器实现对字符进行统计,会使用Applet图形用户界面的基本方法完成结果的输出。本题中,第1处,要明白 cnt的下标是字符在所有的字符集合中的索引值,根据str对象的charAt()方法返回字符索引值,在对这个索引值进行统计;第2处,判断条件必须大于0否则会输出所有的字符;第3处,i变量是字符表中的索引值,对其进行直接类型转换为char则得到了由i索引的字符表中的字符的值。
转载请注明原文地址:https://kaotiyun.com/show/ghnp777K
0

最新回复(0)