【发布时间】:2016-03-01 18:19:20
【问题描述】:
当我尝试运行此代码“线程 'main' java.lang.NoClassDefFoundError: main 中的异常”时,我不断收到此错误。谁能帮我吗?这是我的代码。另外我必须使用缓冲阅读器来让它读取输入,但我不知道如何将它实现到我已经拥有的东西中。任何帮助都会很棒!
导入 java.util.Arrays;
public class StatPackage {
private int i, numScores, place;
private double sum, mean, median, sumOfSquares, variance, stdDev;
private double [] inputs;
private double [] reducedArray;
private int [] histogramArray;
private final int MAX = 500;
//constructor
public StatPackage(){
inputs = new double[MAX]; //creates array
numScores = 0; // count is 0
histogramArray = new int[MAX];
}
public void Histogram(){
//histogramArray = Arrays.copyOf(inputs, MAX);
for (i = 0; i < numScores; i++){
//place = (int)(inputs[i]/10);
if (inputs[i] > 0 && inputs[i] <= 10){ histogramArray[0]+=1;}
if (inputs[i] > 10 && inputs[i] <= 20){ histogramArray[1]+=1;}
if (inputs[i] > 20 && inputs[i] <= 30){ histogramArray[2]+=1;}
if (inputs[i] > 30 && inputs[i] <= 40){ histogramArray[3]+=1;}
if (inputs[i] > 40 && inputs[i] <= 50){ histogramArray[4]+=1;}
if (inputs[i] > 50 && inputs[i] <= 60){ histogramArray[5]+=1;}
if (inputs[i] > 60 && inputs[i] <= 70){ histogramArray[6]+=1;}
if (inputs[i] > 70 && inputs[i] <= 80){ histogramArray[7]+=1;}
if (inputs[i] > 80 && inputs[i] <= 90){ histogramArray[8]+=1;}
if (inputs[i] > 90 && inputs[i] <= 100){ histogramArray[9]+=1;}
}
System.out.print(" 1 - 10 | ");
for (i = 0; i < (histogramArray[0]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("11 - 20 | ");
for (i = 0; i < (histogramArray[1]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("21 - 30 | ");
for (i = 0; i < (histogramArray[2]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("31 - 40 | ");
for (i = 0; i < (histogramArray[3]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("41 - 50 | ");
for (i = 0; i < (histogramArray[4]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("51 - 60 | ");
for (i = 0; i < (histogramArray[5]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("61 - 70 | ");
for (i = 0; i < (histogramArray[6]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("71 - 80 | ");
for (i = 0; i < (histogramArray[7]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("81 - 90 | ");
for (i = 0; i < (histogramArray[8]/5); i++){
System.out.print("*");
}
System.out.println();
System.out.print("91 - 100 | ");
for (i = 0; i < ((histogramArray[9]/5) + (histogramArray[10]/5)); i++){
System.out.print("*");
}
System.out.println();
}
//go through each value of reducedArray, find out what numbers it is between, and increment array value by 1.
// so if the test score is 35, increment reducedArray[3] by 1. then, divide each array index by 5, print that number of stars.
//insert scores into inputs array
public void insert (double val){
if (numScores < MAX){
inputs[numScores] = val;
numScores++;
reducedArray = Arrays.copyOf(inputs, numScores);
}
}
double Mean() {
for (i = 0; i < numScores; i++){
sum += reducedArray[i];
}
mean = (sum/numScores);
return mean;
}
double Median(){
Arrays.sort(reducedArray);
double num1 = reducedArray[(numScores/2)];
double num2 = reducedArray[((numScores/2)-1)];
if (numScores % 2 == 0){
median = ((num1 + num2)/2);
}
if (numScores % 2 != 0){
median = reducedArray[(numScores/2)];
}
return median;
}
double Variance(){
sum = 0;
for (i = 0; i < MAX; i++){
sumOfSquares += (inputs[i]*inputs[i]);
}
for (i = 0; i < MAX; i++){
sum = sum + inputs[i];
}
variance = ((sumOfSquares/numScores) - (sum * sum)/(numScores * numScores));
return variance;
}
double StdDev (double varianceinput){
stdDev = Math.sqrt(varianceinput);
return stdDev;
}
}
【问题讨论】:
-
如何运行代码?
-
你在哪一行得到异常?
-
我通过 [java Lab5] 在 unix 终端中运行代码。它编译没有问题。 @JPMoresmau
-
你的主要方法在哪里?你需要它来运行。
-
你以前用java写过吗?我很困惑你是如何开始写这篇文章而不知道它是如何开始的
标签: java arrays bufferedreader