在类中创建的对象中查找最高值

时间:2015-05-25 15:55:08

标签: java arrays class

有人可以解释我是如何从我在主类中创建的所有对象中获得最高价值的吗?

在这个例子中,我在我的主要课程中创建了2个学生对象,并添加了一些课程名称和成绩。

我已经制作了2个静态数组来存储来自不同对象的信息,但它不会返回具有最高等级的对象。

如何存储创建的学生对象中的最高成绩?

public class CMate {
    private static String[] studentName = new String[2];
    private static int[][] gradeAssigned = new int[2][3];
    private static int higGrade = 0;
    private String name;
    private int cpr;
    private String[] courseName = new String[3];
    private int[] grade = new int[3];
    private int numberOfCourse;
    private int numberOfGrades;
    private static int counter = 0;

    CMate(String name, int cpr) {
        // building constructor
        System.out.println("Creating object nr " + counter);
        this.name = name;
        this.cpr = cpr;
        // insert name into array   
        studentName[counter] = name;
        for (int i = 0; i < numberOfCourse; i++) {
            gradeAssigned[counter][i] = grade[i];
        }
        counter++;
    }

    public void addcourseName(String nameOfCourse) {
        courseName[numberOfCourse] = nameOfCourse;
        numberOfCourse++;
    }

    public void addGrade(int gradeNr) {
        grade[numberOfGrades] = gradeNr;
        numberOfGrades++;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCpr() {
        return cpr;
    }

    public void setCpr(int cpr) {
        this.cpr = cpr;
    }

    public String[] getCourseName() {
        return courseName;
    }

    public void setCourseName(String[] courseName) {
        this.courseName = courseName;
    }

    public int[] getGrade() {
        return grade;
    }

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

    public String toString() {
        String studentInfo = "";
        System.out.println("------------------------------\n student " + name + " CPR " + cpr);

        for (int i = 0; i < numberOfCourse; i++) {
            studentInfo += " Course " + courseName[i] + "Grade  " + grade[i];
        }
        return studentInfo;
    }

    public double averageGrade() {
        double total = 0;

        for (int i = 0; i < numberOfGrades; i++) {
            total += grade[i];
        }
        return (total / numberOfGrades);
    }

    public void higestGrade() {
        for (int i = 0; i < studentName.length; i++) {
            if (grade[i] > higGrade) {
                higGrade = grade[i];
            }
        }
    }

    public void higestObjectGrade() {
        System.out.println(higGrade);
    }
}

1 个答案:

答案 0 :(得分:0)

我不完全理解您的代码,但这里是一个简化版本,包括静态字段以保留所有学生,以及静态功能返回最高分:

The above code is a "program" . An algorithm is like you said the blueprint and the whole architecture itself.

The algorithm for the above code could be:

STEP 1: START
STEP 2: Print Hello World 5 times. (That's it actually)
STEP 3: END