2013-05-05 115 views
2

我想问一个关于我的程序的小问题。如何使用ACM库(ConsoleProgram)编写我的Java程序?

这是我的代码示例:

public static void main(String[] args) { 
    int q; 
    int p; 
    int thelargest; 
    int thesmallest; 

    Scanner input = new Scanner(System.in); 
    System.out.println("Enter the list of number : "); 
    String input2 = input.nextLine(); 

    String[] numbers = input2.split(" "); 

    int[] result = new int[numbers.length]; 
    for (p = 0; p < numbers.length; p++) { 
     result[p] = Integer.parseInt(numbers[p]); 

    } 

    for (q = 0; q < result.length; q++) { 
     System.out.print(""); 
     System.out.println(result[q]); 
    } 

    System.out.println("Largest Number : " + LargestNumber(result)); 
    System.out.println(" Smallest Number : " + SmallestNumber(result)); 
    thelargest = LargestNumber(result); 
    thesmallest = SmallestNumber(result); 
    System.out.println("The Arithmetic Mean : " 
      + AirthmeticMean(result, thesmallest, thelargest)); 

} 

public static int SmallestNumber(int[] series) { 
    int thesmallest = series[0]; 
    for (int i = 1; i < series.length; i++) { 
     if (series[i] < thesmallest) { 

      thesmallest = series[i]; 
     } 
    } 
    return thesmallest; 
} 

public static int LargestNumber(int[] series) { 
    int thelargest = series[0]; 
    for (int i = 1; i < series.length; i++) { 
     if (series[i] > thelargest) { 

      thelargest = series[i]; 
     } 
    } 
    return thelargest; 
} 

public static float AirthmeticMean(int[] result, int thesmallest, 
     int thelargest) { 
    int sum = 0; 
    for (int i = 0; i < result.length; i++) { 
     sum += result[i]; 
    } 

    sum -= thesmallest; 
    sum -= thelargest; 

    return (float) sum/result.length; 
} 

我怎样才能把这段代码转换样本的ConsoleProgram(这是在ACM库)? 我必须更改或添加哪些部分?

我开始:

public class ArithmeticMean extends ConsoleProgram { 

} 

但我不知道下一步该怎么做。

回答

2

在ACM库虽然你需要,而不是使用下面的结构没有主要方法:

public void run() {} 

下面是这个库http://jtf.acm.org/javadoc/student/ 选择acm.program包ConsoleProgram类的API,并找到合适的方法 也见acm.io/class IOConsole

eg System.out.println() - > println() 扫描仪(字符串输入) - > readLine(字符串提示)等

其余部分与您在代码中相同。

好吧,给你你的代码在ACM:(有点难看,但工作得很好:)

import acm.program.ConsoleProgram; 

public class StackOverflow extends ConsoleProgram 
{ 
    private static final long serialVersionUID = 1L; 

    public void run() 
    { 
     int q; 
     int p; 
     int thelargest; 
     int thesmallest; 
     String input2 = ""; 
     String[] numbers = null; 

     println("Enter the list of number : "); 
     while (true) { 
      String input = readLine(); 
      if (input.equals("")) 
       break; 
      input2 += input + " "; 
     } 
     numbers = input2.split(" "); 

     int[] result = new int[numbers.length]; 
     for (p = 0; p < numbers.length; p++) { 
      result[p] = Integer.parseInt(numbers[p]); 

     } 

     for (q = 0; q < result.length; q++) { 
      print(""); 
      println(result[q]); 
     } 

     println("Largest Number : " + LargestNumber(result)); 
     println(" Smallest Number : " + SmallestNumber(result)); 
     thelargest = LargestNumber(result); 
     thesmallest = SmallestNumber(result); 
     println("The Arithmetic Mean : " 
       + AirthmeticMean(result, thesmallest, thelargest)); 

    } 

    public static int SmallestNumber(int[] series) 
    { 
     int thesmallest = series[0]; 
     for (int i = 1; i < series.length; i++) { 
      if (series[i] < thesmallest) { 

       thesmallest = series[i]; 
      } 
     } 
     return thesmallest; 
    } 

    public static int LargestNumber(int[] series) 
    { 
     int thelargest = series[0]; 
     for (int i = 1; i < series.length; i++) { 
      if (series[i] > thelargest) { 

       thelargest = series[i]; 
      } 
     } 
     return thelargest; 
    } 

    public static float AirthmeticMean(int[] result, int thesmallest, 
      int thelargest) 
    { 
     int sum = 0; 
     for (int i = 0; i < result.length; i++) { 
      sum += result[i]; 
     } 

     sum -= thesmallest; 
     sum -= thelargest; 

     return (float) sum/result.length; 
    } 

} 

和运行方式JavaApplet

+0

好了,我应该只擦除的主要方法和更改打印方法将我的程序转换为consoleprogram? – mertha 2013-05-05 19:56:19

+0

AFAIK'扫描仪'也应该改变 – zest 2013-05-05 19:56:54

+0

你可以在我的代码示例中显示它们吗?非常感谢我的朋友。 – mertha 2013-05-05 19:58:58

相关问题