需要帮助为编程新手导入数组

时间:2016-04-19 08:04:18

标签: java

我正在为uni做一个任务,为此我必须创建一个类文件(ProcessMarks.class),它将从125个整数数组中计算出最大值,最小值,范围,模式,中位数等。由我们的讲师在一个名为Marks.class的类中提供给我们,它生成一个介于0和100之间的125个'标记'的数组。

到目前为止,我在这个任务中遇到了多个方面,但是我目前遇到的主要问题(我肯定可能是基本的东西,但我似乎仍然无法让它工作),是我正在尝试获取我创建的ProcessMarks.class以导入并使用Marks.class文件中创建的标记,然后保存结果(marks.class)以在用户想要计算Min时使用, Max,Mean等。

我不能让eclipse允许我导入我的ProcessMarks.class使用的类;我只是不断得到一个无法解决的错误。

  • 我是否需要将Marks.java或Marks.class放在特定文件夹中?

  • 我应该只运行Marks.class,然后手动复制,粘贴和初始化结果吗?

  • 有什么明显的我遗漏或者可能是一些基本的java基础知识我不能正确理解吗?

此外,我不是在寻找任何人为我做这项工作,我只需要指出正确的方向。

import java.util.Random;

/**
 * A class that provides a random array of marks,
 * approximately normally distributed.
 * @author Ken Lodge
 */

public class Marks {
    private static final int NMARKS = 125;
    private static final double mean = 65.0;
    private static final double std = 15.0;

    /**
     * Returns an array of NMARKS integer marks approximately normally distributed,
     * with specified mean (mean) and standard deviation (std),
     * and with values outside 0..100 removed.
     * @return the array of marks.
     */
    public static int[] getMarks() {
        Random rand = new Random(1001L);
        int mark;
        int[] theMarks = new int[NMARKS];
        int n = 0;
        while (n < NMARKS) {
            mark = (int) Math.round(std*rand.nextGaussian() + mean);
            if (mark >= 0 && mark <= 100)
                theMarks[n++] = mark;
        }
        return theMarks;
    }

    /**
     * Test code
     * @param args not used
     */
    public static void main(String[] args) {
        int[] testMarks = getMarks();
        for (int n = 0; n < testMarks.length; n++) {
            System.out.print(testMarks[n] + " ");
            if (n % 10 == 9)
                System.out.println();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这应该让你开始,把它放在你的ProcessMarks.java中:

public class ProcessMarks(){
    public static void main(String[] args) {
        int[] marksArray = Marks.getMarks();
        //Do something with the marksArray 
    }
}

您的老师已使用静态变量创建了类,这意味着我们无需使用标准new Marks();格式对其进行初始化。我们可以只调用Marks.getMarks();来获取数据。这将返回由教授的代码生成的125个整数。

确保此ProcessMarks.java和Marks.java位于同一文件夹中。我建议使用IDE来帮助你完成工作,常见的是Eclipse。

祝你好运!

[编辑] 另请阅读here以了解类文件和java文件之间的区别,您似乎有点困惑是什么区别