今天(11.3)立信长沙笔试题
在以txt文件中纪录了如下信息
学号 姓名 成绩
1 ss 80
2 pp 95
…. ………. ……..
写一个你认为最高效的程序求出学生平均成绩(上面的信息存放在表格里的)

解决方案 »

  1.   

    你用JAVA流读入每行的数据,然后再用字符串分割符分离出成绩来,一个一个加,知道文件末就行了。然后再平均就可以了,我这个方法挺常规的,期待达人出现。
      

  2.   

    在数据库中用avg函数求出来 这样最快吧
      

  3.   

    是存在txt文件中,而不是存在数据库中。怎么用sql?
      

  4.   

    把txt文件导入到数据中 用sql直接查询,这个应该最快了吧
      

  5.   

    import java.io.*;public class GetAvr{
    static int num = 0;
    static int sum = 0;

    public static void main(String args[]){
    File file = new File("C:\\JavaCode\\Score.txt");

    try{
       BufferedReader read = new BufferedReader(new FileReader(file));    String text = read.readLine();

       while(text != null){
       text = text.trim();

       if (text.matches("[0-9]+.*")){ //判断这一行有学号
       num ++;
       sum += Integer.parseInt(text.replaceAll("\\d+\\D+", ""));//把学好和姓名空格都替换掉,只留成绩
       }

       text = read.readLine();
       }

       System.out.print((double)sum/num);
      }
      catch(FileNotFoundException e){
      e.printStackTrace();
      }
      catch(IOException e){
      e.printStackTrace();
      }
    }
    }
    学号 姓名 成绩 
     1    ss   80 
     2    pp   95 
     3    p2   75
     4    p3   84
     5    pr   91
     6    1p   85
     7    ep   66答案是:82.28571...
      

  6.   

    我是读取一行后用split()按空格将其存在字符串数组里的。然后将数组的最后一个元素相加。
      

  7.   

    用trim()会很耗时吧。里面是双循环