获取循环中输入的值的计数。计算标准差

时间:2013-07-28 18:43:44

标签: java

我正在完成一项学校作业,所以我需要一些指导。我正在尝试编写一个程序,从输入中读取一组浮点数据值。当用户指示输入结束时,我的程序必须返回值的计数,平均值和标准偏差。

我能够构建while循环来获取输入并执行所有其他数学函数。但是,我无法弄清楚的是如何获取用户输入的值的计数。

这是我到目前为止(减去循环)

        /**
    This class is used to calculate the average and standard deviation
    of a data set.
    */

    public class DataSet{

        private double sum;
        private double sumSquare;
        private int n;

        /**Constructs a DataSet ojbect to hold the
         * total number of inputs, sum and square
         */

        public DataSet(){

            sum = 0;
            sumSquare = 0;
            n = 0;
        }

        /**Adds a value to this data set
         * @param x the input value
         */

        public void add(double x){

            sum = sum + x;
            sumSquare = sumSquare + x * x;

        }

        /**Calculate average fo dataset
         * @return average, the average of the set
         */

        public double getAverage(){

            //This I know how to do

            return avg;

        }

        /**Get the total inputs values
         * @return n, the total number of inputs
         */

        public int getCount(){

//I am lost here, I don't know how to get this. 



        }

    }

我不能使用Array,因为我们还没有那么远的类。

2 个答案:

答案 0 :(得分:2)

除非我误解了这个问题,否则你需要做的就是拥有一个计数器。每次调用add()时,都会使用counter ++增加计数器;

编辑:你的int n似乎是预定的反击。我会将其更改为更具描述性的内容(如建议的计数器)。拥有一个单字母的字段是非常糟糕的做法。

然后你需要做的就是在你的getCount方法中返回计数器。

答案 1 :(得分:1)

        public void add(double x){
          sum = sum + x;
          sumSquare = sumSquare + x * x;
          n++;
        }

        public int getCount(){
          return n;
        }