我正在完成一项学校作业,所以我需要一些指导。我正在尝试编写一个程序,从输入中读取一组浮点数据值。当用户指示输入结束时,我的程序必须返回值的计数,平均值和标准偏差。
我能够构建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,因为我们还没有那么远的类。
答案 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;
}