Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—打印对象数组列表中包含的字符串的n倍_Java_String_Object - Fatal编程技术网

Java—打印对象数组列表中包含的字符串的n倍

Java—打印对象数组列表中包含的字符串的n倍,java,string,object,Java,String,Object,我正在做一个练习,要求用户输入一个整数(点),直到用户输入为-1。然后,它希望我显示这些分数的平均值,通过分数的平均值(那些>50),通过百分比,最后是成绩分布,这是我面临的问题 成绩分配部分基本上根据每个输入的分数从0到5进行评分。例如,输入整数(50&&0){ System.out.println(“点平均值(通过):”+points.passingPointsAverage()); }否则{ System.out.println(“点平均值(通过):-”; } System.out.pri

我正在做一个练习,要求用户输入一个整数(点),直到用户输入为-1。然后,它希望我显示这些分数的平均值,通过分数的平均值(那些>50),通过百分比,最后是成绩分布,这是我面临的问题

成绩分配部分基本上根据每个输入的分数从0到5进行评分。例如,输入整数(50&&0){ System.out.println(“点平均值(通过):”+points.passingPointsAverage()); }否则{ System.out.println(“点平均值(通过):-”; } System.out.println(“通过百分比:+points.passPercentage()); System.out.println(“等级分布:”); 对于(int i=points.distribution().size()-1;i>=0;i--){ System.out.println(points.distribution().get(i)); } 打破
}否则,如果(input>=0&&input而不是为等级使用自定义类,则可以简单地使用从等级(整数)到该等级(整数)出现次数的映射。然后,您只能在打印时根据地图中存储的值生成星号字符串。

感谢您的回复!在本课程中,我没有学习过地图,因此他们希望我找到一种不用地图的方法来解决它。还有其他建议吗?再次感谢!
public class Points {

    private int points;
    private int counter;
    private int passingPoints;
    private int passingCounter;
    private ArrayList<Grades> distr;

    public Points() {
        this.points = 0;
        this.counter = 0;
        this.passingPoints = 0;
        this.passingCounter = 0;
        this.distr = new ArrayList();
    }

    public void addPoints(int points) {
   //code
    }

    public double totalPointsAverage() {
        //code
    }

    public int getPassingPoints() {
        //code
    }

    public double passingPointsAverage() {

        //code

    }

    public double passPercentage() {
        //code
    }

    public void createFiveGrades() {
        this.distr.add(new Grades());
        this.distr.get(0).setGrade(0);
        this.distr.add(new Grades());
        this.distr.get(1).setGrade(1);
        this.distr.add(new Grades());
        this.distr.get(2).setGrade(2);
        this.distr.add(new Grades());
        this.distr.get(3).setGrade(3);
        this.distr.add(new Grades());
        this.distr.get(4).setGrade(4);
        this.distr.add(new Grades());
        this.distr.get(5).setGrade(5);
    }

    public void pointsToGrade(int po) {

        if (po < 50) {
            this.distr.get(0).addStars("*");
        } else if (po >= 50 && po < 60) {
            this.distr.get(1).addStars("*");
        } else if (po >= 60 && po < 70) {
            this.distr.get(2).addStars("*");
        } else if (po >= 70 && po < 80) {
            this.distr.get(3).addStars("*");
        } else if (po >= 80 && po < 90) {
            this.distr.get(4).addStars("*");
        } else if (po >= 90 && po <= 100) {
            this.distr.get(5).addStars("*");
        }

    }

    public ArrayList<Grades> distribution() {
        return this.distr;
    }

public class Grades {

    private int grade;
    private String stars;

    public Grades() {
        this.grade = 0;
        this.stars = "";

    }

    public void setGrade(int n) {
        this.grade = n;
    }

    public void addStars(String str) {
        this.stars += str;
    }

    public String toString() {
        return this.grade + ": " + stars;
    }

}
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Points points = new Points();
        points.createFiveGrades();

        System.out.println("Enter points in totals, -1 stops:");
        while (true) {

            int input = Integer.valueOf(scanner.nextLine());
            if (input == -1) {
                System.out.println("Point average (all): " + points.totalPointsAverage());
                if (points.getPassingPoints() > 0) {
                    System.out.println("Point average (passing): " + points.passingPointsAverage());
                } else {
                    System.out.println("Point average (passing): -");
                }
                System.out.println("Pass percentage: " + points.passPercentage());
                System.out.println("Grade distribution: ");
                for (int i=points.distribution().size()-1; i>=0;  i--) {
                    System.out.println(points.distribution().get(i));
                }
                break;
            } else if (input >= 0 && input <= 100) {
                points.addPoints(input);
                points.pointsToGrade(input);

            }