Назначение - создать программу, которая будет считывать из стандартного ввода (файл, содержащий список целых чисел) в массив, а затем находить среднее, максимальное, минимальное, среднее значение и стандартное отклонение этих целых чисел. обо всем по порядку, вот код:
import java.io.*;
import java.util.*;
public class DescriptiveStats
{
protected List<Integer> scores = new ArrayList<Integer>();
public DescriptiveStats()
{
// default constructor
}
public void main(String[] args) throws IOException
{
try{
Scanner sc = new Scanner(new FileReader("students.txt"));
while(sc.hasNextInt())
{
scores.add(sc.nextInt());
}
sc.close();
}
catch(Exception e)
{
e.printStackTrace();
}
DescriptiveStats stat = new DescriptiveStats();
System.out.println("Min = " + stat.getMin(scores[]));
System.out.println("Max = " + stat.getMax(scores[]));
System.out.println("Median = " + stat.getMedian(scores[]));
System.out.println("Mean = " + stat.getMean(scores[]));
int Mean = stat.getMean(scores[]);
System.out.println("Standard Deviation = " + stat.getStandardDev(scores[], Mean));
}
public int getMin(int []lst)
{
int min = lst[0];
for(int i=0;i<lst.length;i++)
{
if(min>lst[i])
min=lst[i];
}
return min;
}
public int getMax(int []lst)
{
int max = lst[0];
for(int i=0;i<lst.length;i++)
{
if(max<lst[i])
max=lst[i];
}
return max;
}
public int getMedian(int [] lst)
{
Arrays.sort(lst);
int middle = lst.length/2;
if(lst.length%2==1)
{
return lst[middle];
}
return (lst[middle-1] + lst[middle]);
}
public int getMean(int [] lst)
{
Arrays.sort(lst);
int mean = 0;
int sum = 0;
int count = 0;
for(int i=0;i>lst.length;i++)
{
sum = sum + lst[i];
count++;
}
mean = sum/count;
return mean;
}
public int getStandardDev(int [] lst, int m)
{
int mean = m;
int [] array = lst;
int total = 0;
for(int i =0; i < array.length; i++)
{
int result = array[i]-mean;
int [] all = Math.pow(result, 2);
}
total = result/array.length;
int standev = Math.sqrt(total);
return standev;
}
}
Мои конкретные проблемы сводятся к следующему: я не знаю, правильно ли я читаю в файле. Я следовал многим инструкциям от книг до веб-сайта, и это, кажется, правильная формула для сканера, но файл не найден. Я пробовал три разных IDE (BlueJ, Eclipse, Netbeans), но безрезультатно.
Во-вторых, я создал методы для получения массива в качестве входных данных и вызвал их в методе public void main (string [] args). Я почти уверен, что смогу сделать это, но он не скомпилируется, и я не уверен, что мне не хватает.
Наконец, я хочу убедиться, что мой метод стандартного отклонения правильный.
Я не ожидаю, что кто-нибудь решит все эти проблемы, но это те моменты, в которых я застрял, и любая помощь будет оценена. Спасибо!