我试图获得某个学生的平均值,但它会添加所有的值

时间:2013-12-31 04:55:59

标签: java arraylist

我试图获得某个学生的平均值,但它会添加所有值。这是输出程序


        CMPE 325 Student Record Holder System
       --------------------------------
       1.Add Student
       2.View Records
       3.Update Students
       4.Get Average
       5.Exit
        --------------------------------
      Enter your choice: 1
        How many Students you want to input?: 
        2
        Student[1]Enter
        Id Number: 1
        First Name: Erwin
        Middle Name: asdasdas
        Last Name: sadasdas
        Degree: asdasdas
        Year Level: 1
        Student[2]Enter
        Id Number: 2
        First Name: INK
        Middle Name: asdasd
        Last Name: asdas
        Degree: sadas
        Year Level: 3
        CMPE 325 Student Record Holder System
        --------------------------------
        1.Add Student
        2.View Records
        3.Update Students
        4.Get Average
        5.Exit
        --------------------------------
        Enter your choice: 3
        Enter Id Number: 1
         ----------------Student Info-------------- 
        Id Number: 1
        Name:Erwin asdasdas sadasdas
        Degree and Year: asdasdas-1
        The number of Subjects: 
        3
        Name of Course: Law
        Enter Grade: 3
        Name of Course: Laww2
        Enter Grade: 1
        Name of Course: Law4
        Enter Grade: 2
        Enter another subject and grade? [Y]or[N]n
        CMPE 325 Student Record Holder System
        --------------------------------
        1.Add Student
        2.View Records
        3.Update Students
        4.Get Average
        5.Exit
        -------------------------------
        Enter your choice: 3
        Enter Id Number: 2
         ----------------Student Info-------------- 
        Id Number: 2
        Name:IDK asdasd asdas
        Degree and Year: sadas-3
        The number of Subjects: 
        2
        Name of Course: psych
        Enter Grade: 3
        Name of Course: egg
        Enter Grade: 2
        Enter another subject and grade? [Y]or[N]n
        CMPE 325 Student Record Holder System
        --------------------------------
        1.Add Student
        2.View Records
        3.Update Students
        4.Get Average
        5.Exit
        --------------------------------
        Enter your choice: 4
        ENTER ID NUMBER: 1
        SUM: 11.0
        AVERAGE: 2.2        

这是我的测试员

import java.util.ArrayList;
import java.util.Scanner;

public class RecHolder {

        static ArrayList<Rec> record = new ArrayList<Rec>();
        static ArrayList<Grade> records = new ArrayList<Grade>();


        public RecHolder() {
            menu();
        }

        @SuppressWarnings("resource")
        public static void menu() {
            Scanner in = new Scanner(System.in);
            int choice;

            System.out.println("CMPE 325 Student Record Holder System");
            System.out.println("--------------------------------");
            System.out.println("1.Add Student");
            System.out.println("2.View Records");
            System.out.println("3.Update Students");
            System.out.println("4.Get Average");
            System.out.println("5.Exit");
            System.out.println();
            System.out.println("--------------------------------");
            System.out.print("Enter your choice: ");
            choice = in.nextInt();

            switch (choice) 
            { 
            case 1: record(); break;
            case 2: display(); break;
            case 3: update(); break;
            case 4: average(); break;
            case 5:  break;

            }
        }

        @SuppressWarnings("resource")
        public static void record() {
            Scanner in = new Scanner(System.in);
            int total;


                System.out.println("How many Students you want to input?: ");
                total = in.nextInt();

                Rec[] student = new Rec[total];

                for (int index = 0; index < student.length; index++) {
                    student[index] = new Rec();

                    System.out.printf("Student[%d]", index + 1);
                    System.out.println("Enter");
                    in.nextLine();

                    System.out.print("Id Number: ");
                    student[index].setIdNumber(in.nextLine());

                    System.out.print("First Name: ");
                    student[index].setFirstName(in.nextLine());

                    System.out.print("Middle Name: ");
                    student[index].setMiddleName(in.nextLine());

                    System.out.print("Last Name: ");
                    student[index].setLastName(in.nextLine());

                    System.out.print("Degree: ");
                    student[index].setDegree(in.nextLine());

                    System.out.print("Year Level: ");
                    student[index].setYearLevel(in.nextInt());

                    record.add(student[index]);
                }

                menu();
        }

        @SuppressWarnings("resource")
        public static void displayall() {
            Scanner in = new Scanner(System.in);
            if(record.size() == 0)
            {
                System.out.print("Invalid\n");
                in.nextLine();
                menu();
            }
            else
            {
                if(records.size() == 1){
                    System.out.print("-------------The Record for all Student-----------");

                    for (int i = 0; i < record.size(); i++) {
                        System.out.printf("\nStudent[%d]", i + 1);
                        System.out.print("\nId Number: " + record.get(i).getIdNumber());
                        System.out.print("\nName: "+ record.get(i).getFirstName() + " "+ record.get(i).getMiddleName() + " "+ record.get(i).getLastName());
                        System.out.print("\nDegree and Year: "+ record.get(i).getDegree() + "-"+ record.get(i).getYearLevel()+"\n\n");

                    }
                    in.nextLine();
                    display();
                }

                else{
                    System.out.print("--------------The Record for all Student------------");

                    for (int i = 0; i < record.size(); i++) {
                        System.out.printf("\nStudent[%d]", i + 1);
                        System.out
                                .print("\nId Number: " + record.get(i).getIdNumber());
                        System.out.print("\nName: "+ record.get(i).getFirstName() + " "+ record.get(i).getMiddleName() + " "+ record.get(i).getLastName());
                        System.out.print("\nDegree and Year: "+ record.get(i).getDegree() + "-"+ record.get(i).getYearLevel()+"\n\n");

                    }

                //  for(int loopforSubjct = 0 ; loopforSubjct < records.size(); loopforSubjct++ )
                //  {
                //      System.out.printf("\nSubject: "+ records.get(loopforSubjct).getSubject()+" Grade: "+ records.get(loopforSubjct).getGrade());
                //  }

                    in.nextLine();
                }
            }
        display();
        }

        @SuppressWarnings("resource")
        public static void specific() {
            Scanner in = new Scanner(System.in);
            if(record.size() == 0)
            {
                System.out.print("Enter Data 1st\n");
                in.nextLine();
                menu();
            }
            else{

                String id = new String();
                System.out.print("Enter Id Number: ");
                id = in.nextLine();
                if(records.size()==1){
                    for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                        if (id.equals(record.get(loopforSpcfc).getIdNumber())) {
                            System.out.printf("\n ----------------Student Exists-------------- ");
                            System.out.print("\nId Number: "+ record.get(loopforSpcfc).getIdNumber());
                            System.out.print("\nName:"+ record.get(loopforSpcfc).getFirstName() + " "+ record.get(loopforSpcfc).getMiddleName() + " "+ record.get(loopforSpcfc).getLastName());
                            System.out.print("\nDegree and Year: "+ record.get(loopforSpcfc).getDegree() + "-"+ record.get(loopforSpcfc).getYearLevel() + "\n\n");in.nextLine();

                        }
                     else
                        {   in.nextLine();
                            System.out.print("Student Number Invalid!\n");

                            menu();

                        }

                    }
                }

                else{
                for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                        if (id.equals(record.get(loopforSpcfc).getIdNumber())) {
                            System.out.printf("\nStudent Exists");
                            System.out.print("\nId Number: "+ record.get(loopforSpcfc).getIdNumber());
                            System.out.print("\nName: "+ record.get(loopforSpcfc).getFirstName() + " "+ record.get(loopforSpcfc).getMiddleName() + " "+ record.get(loopforSpcfc).getLastName());
                            System.out.print("\nDegree and Year: "+ record.get(loopforSpcfc).getDegree() + "-"+ record.get(loopforSpcfc).getYearLevel() +"\n\n");
                            System.out.println();

                        }

                }
                for(int loopforSubjct = 0 ; loopforSubjct < records.size(); loopforSubjct++ )
                    {
                        System.out.printf("\nSubject: "+ records.get(loopforSubjct).getSubject()+" Grade: "+ records.get(loopforSubjct).getGrade());
                    }

                    in.nextLine();
                }

            }
            display();
        }

        public static void update(){
            @SuppressWarnings("resource")
            Scanner in = new Scanner(System.in);
            if(record.size() == 0)
            {
                System.out.print("Enter Data 1st\n");
                in.nextLine();
                menu();
            }
            else{
            String idnum = new String();
            char answer;
            in.nextLine();
            System.out.print("Enter Id Number: ");
            idnum = in.nextLine();
            int total;


                for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                    if (idnum.equals(record.get(loopforSpcfc).getIdNumber())) {
                        System.out.printf("\n ----------------Student Info-------------- ");
                        System.out.print("\nId Number: "+ record.get(loopforSpcfc).getIdNumber());
                        System.out.print("\nName:"+ record.get(loopforSpcfc).getFirstName() + " "+ record.get(loopforSpcfc).getMiddleName() + " "+ record.get(loopforSpcfc).getLastName());
                        System.out.print("\nDegree and Year: "+ record.get(loopforSpcfc).getDegree() + "-"+ record.get(loopforSpcfc).getYearLevel() + "\n\n");in.nextLine();
                    }
                }

            for(int loop=0;loop<record.size();loop++){{
                    if(idnum.equals(record.get(loop).getIdNumber())){
                        System.out.println("The number of Sujects: ");
                        total = in.nextInt();
                        do{
                            Grade[] update = new Grade[total];
                        for(int indexupdater = 0;indexupdater<update.length;indexupdater++){
                            update[indexupdater] = new Grade();

                            in.nextLine();
                            System.out.print("Name of Course: ");
                            update[indexupdater].setSubject(in.nextLine());

                            System.out.print("Enter Grade: ");
                            update[indexupdater].setGrade(in.nextDouble());

                            records.add(update[indexupdater]);
                            }

                            System.out.print("Enter another subject and grade? [Y]or[N]");
                            String ans = in.next();
                            answer = ans.charAt(0);

                    }while(answer == 'y');

                }

            }
            }
            }
            menu();
        }




        public static void average()
        {

                Scanner in = new Scanner(System.in);

                if(record.size() == 0)
                {
                    System.out.print("Enter Data 1st\n");
                    in.nextLine();
                    menu();
                }
                else{

                    double sum=0;
                    double average=0;
                    String ID = new String();

                    System.out.print("Enter An Valid Id Number: ");

                    for(int xx=0;xx<record.size();xx++){
                        if(ID.equals(record.get(xx).getIdNumber()))
                        {
                            for(int ind=0;ind<records.size();ind++)
                            {
                                    sum += records.get(ind).getGrade();
                            }
                            average=sum/records.size();
                            System.out.println(average);


                        System.out.print("SUM: "+sum);
                        System.out.print("\nAVERAGE: "+average);
        }
    }
                }
        }
        public static void display(){
            Scanner input = new Scanner(System.in);

            int choice;


                System.out.println("--------------------------------");
                System.out.println("1.View List");
                System.out.println("2.View Specific Record");
                System.out.println("3.Exit");
                System.out.println();
                System.out.println("--------------------------------");
                System.out.print("Enter your choice: ");
                choice = input.nextInt();

                switch (choice) {

                case 1:
                    displayall();
                    break;
                case 2:
                    specific();
                    break;
                case 3:
                    menu();
                    break;

                }

        }
        public static void main(String[] args) {
               new RecHolder();
            }
    }

    这是我的成绩     公共等级{

            private String IDNumber;
            private String subject;
            private double grade;
            private double average;

            public Grade()
            {
                String IDNum;
                String sub;
                double grad;
                double ave;

            }

            public Grade(String IDNum,String sub,double grad,double ave)
            {
                this.IDNumber=IDNum;
                this.subject=sub;
                this.grade=grad;
                this.average=ave;

            }

            public void setSubject(String subject)
            {
                this.subject=subject;
            }
            public String getSubject()
            {
                return subject;
            }

            public void setGrade(double grade)
            {
                this.grade=grade;
            }
            public double getGrade()
            {
                return grade;
            }

            public String getIDNumber()
            {
                return IDNumber;
            }


}

为StudntRecord     公共课Rec     {         private String IDNumber;         private String firstName;         private String middleName;         private String lastName;         私人弦度;         private int yearLevel;

    @Override
    public String toString() 
    {
        return ("ID Number: "+this.getIdNumber()+
                    "\nName: "+ this.getFirstName()+
                    " "+ this.getMiddleName()+
                    " "+ this.getLastName()+
                    "\nDegree and YearLevel: "+ this.getDegree() +
                    " - " + this.getYearLevel());
    }

    public Rec()
    {
        String IDNum;
        String fName;
        String mName;
        String lName;
        String deg;
        int level;  
    }

    public Rec(String IDNum, String fName, String mName, String lName, String deg,int level )
    {
        this.IDNumber=IDNum;
        this.firstName=fName;
        this.middleName=mName;
        this.lastName=lName;
        this.degree=deg;
        this.yearLevel=level;
    }

    public void setIdNumber(String IDNumber)
    {
        this.IDNumber = IDNumber;
    }

    public void setFirstName(String firstName)
    {
        this.firstName=firstName;
    }

    public void setMiddleName(String middleName)
    {
        this.middleName=middleName;
    }


    public void setLastName(String lastName)
    {
        this.lastName=lastName;
    }


    public void setDegree(String degree)
    {
        this.degree=degree;
    }


    public void setYearLevel(int yearLevel)
    {
        this.yearLevel=yearLevel;
    }

    public String getIdNumber()
    {
        return IDNumber;
    }

    public String getFirstName()
    {
        return firstName;
    }


    public String getMiddleName()
    {
        return middleName;
    }

    public String getLastName()
    {
        return lastName;
    }

    public String getDegree()
    {
        return degree;
    }

    public int getYearLevel()
    {
        return yearLevel;
    }



}

4 个答案:

答案 0 :(得分:1)

你不应该计算一下加入总和的平均值吗? 你应该计算for循环之外的平均值。

答案 1 :(得分:1)

for(int ind=0;ind<records.size();ind++)
{
   sum += records.get(ind).getGrade();

}
average=sum/records.size();
System.out.println(average);

在整个for循环之后需要计算平均值,正如Prasad之前所说的那样。

答案 2 :(得分:1)

代码是基于完成假设编写的,因为原始海报@ user3145523在我发布此帖时尚未发布完整的源代码

    String ID = "fillit";

// fetch grade list
for(ArrayList gradeList2 : records.get(ID).grade) 
{
    double sum = 0.0;
    double average = 0.0;

    // cal values for all grades
    for(int gradeValue : gradeList2)
    {
        sum = sum + gradeValue;
    }

    // cal average of sum
        average = sum / gradeList2.count();
}

System.out.print("SUM: "+sum);
System.out.print("\nAVERAGE: "+average);

  

假设

  1. 记录被假定为主ArrayList(问题是TAGGED arraylist)
  2. 假设记录包含另一个名为grade的ArrayList(在第一篇文章中,用户似乎有一种动态的方式来分配等级数,而一个简单的数组似乎不太可能)
  3. 假设ArrayList成绩假定包含integer-int元素
  4. 主要假设计算一名学生的成绩平均值。原因 - &gt;原始海报说
  5.   

    我希望该方法仅计算某个数字。查看上面的输出。它计算了我的所有输入并得到它的平均值我需要帮助




    询问用户是否在帖子中没有问题(没有其他联系方式)

    这样好吗? ? ?

    输出粘贴 - &gt;

      

    CMPE 325学生记录持有人系统

         

    1.添加学生   2.查看记录   3.更新学生   4.获取平均值   5.Exit

         

    --------------------------------输入您的选择:1您想输入多少学生?:2学生[1]输入身份证号码:1首先   姓名:a中间名:b姓:c学位:1年级:1   学生[2]输入身份证号码:2名字:d中间名:e姓氏:f

         

    学位:1年级:1个CMPE 325学生记录持有人系统

         

    1.添加学生   2.查看记录   3.更新学生   4.获取平均值   5.Exit

         

    --------------------------------输入您的选择:3

         

    输入身份证号码:1

         

    ----------------学生信息--------------身份证号码:1姓名:a b c   学位和年份:1-1

         

    项目数量:2课程名称:aa输入成绩:2名称   课程:bb输入成绩:6输入其他科目和成绩? [Y]或[N] n的

         

    CMPE 325学生记录持有人系统

         

    1.添加学生   2.查看记录   3.更新学生   4.获取平均值   5.Exit

         

    --------------------------------输入您的选择:3

         

    输入身份证号码:2

         

    ----------------学生信息--------------身份证号码:2姓名:d e f   学位和年份:1-1

         

    项目数:2课程名称:cc输入年级:5名称   课程:dd输入成绩:7输入另一个科目和成绩? [Y]或[N] n的

         

    CMPE 325学生记录持有人系统

         

    1.添加学生   2.查看记录   3.更新学生   4.获取平均值   5.Exit

         

    --------------------------------输入您的选择:4输入有效身份证号码:1 SUM:8.0平均:2.0


    代码 - &gt;包括最初发布的代码(添加用户...请求)

        import java.util.ArrayList;
    import java.util.Scanner;
    
    public class RecHolder {
    
        static ArrayList<Rec> record = new ArrayList<Rec>();
        static ArrayList<Grade> records = new ArrayList<Grade>();
    
        public RecHolder() {
            menu();
        }
    
        @SuppressWarnings("resource")
        public static void menu() {
            Scanner in = new Scanner(System.in);
            int choice;
    
            System.out.println("CMPE 325 Student Record Holder System");
            System.out.println("--------------------------------");
            System.out.println("1.Add Student");
            System.out.println("2.View Records");
            System.out.println("3.Update Students");
            System.out.println("4.Get Average");
            System.out.println("5.Exit");
            System.out.println();
            System.out.println("--------------------------------");
            System.out.print("Enter your choice: ");
            choice = in.nextInt();
    
            switch (choice) {
            case 1:
                record();
                break;
            case 2:
                display();
                break;
            case 3:
                update();
                break;
            case 4:
                average();
                break;
            case 5:
                break;
    
            }
        }
    
        public static void record() {
            Scanner in = new Scanner(System.in);
            int total;
    
            System.out.println("How many Students you want to input?: ");
            total = in.nextInt();
    
            Rec[] student = new Rec[total];
    
            for (int index = 0; index < student.length; index++) {
                student[index] = new Rec();
    
                System.out.printf("Student[%d]", index + 1);
                System.out.println("Enter");
                in.nextLine();
    
                System.out.print("Id Number: ");
                student[index].setIdNumber(in.nextLine());
    
                System.out.print("First Name: ");
                student[index].setFirstName(in.nextLine());
    
                System.out.print("Middle Name: ");
                student[index].setMiddleName(in.nextLine());
    
                System.out.print("Last Name: ");
                student[index].setLastName(in.nextLine());
    
                System.out.print("Degree: ");
                student[index].setDegree(in.nextLine());
    
                System.out.print("Year Level: ");
                student[index].setYearLevel(in.nextInt());
    
                record.add(student[index]);
            }
    
            menu();
        }
    
        public static void displayall() {
            Scanner in = new Scanner(System.in);
            if (record.size() == 0) {
                System.out.print("Invalid\n");
                in.nextLine();
                menu();
            } else {
                if (records.size() == 1) {
                    System.out
                            .print("-------------The Record for all Student-----------");
    
                    for (int i = 0; i < record.size(); i++) {
                        System.out.printf("\nStudent[%d]", i + 1);
                        System.out.print("\nId Number: "
                                + record.get(i).getIdNumber());
                        System.out.print("\nName: " + record.get(i).getFirstName()
                                + " " + record.get(i).getMiddleName() + " "
                                + record.get(i).getLastName());
                        System.out.print("\nDegree and Year: "
                                + record.get(i).getDegree() + "-"
                                + record.get(i).getYearLevel() + "\n\n");
    
                    }
                    in.nextLine();
                    display();
                }
    
                else {
                    System.out
                            .print("--------------The Record for all Student------------");
    
                    for (int i = 0; i < record.size(); i++) {
                        System.out.printf("\nStudent[%d]", i + 1);
                        System.out.print("\nId Number: "
                                + record.get(i).getIdNumber());
                        System.out.print("\nName: " + record.get(i).getFirstName()
                                + " " + record.get(i).getMiddleName() + " "
                                + record.get(i).getLastName());
                        System.out.print("\nDegree and Year: "
                                + record.get(i).getDegree() + "-"
                                + record.get(i).getYearLevel() + "\n\n");
    
                    }
    
                    // for(int loopforSubjct = 0 ; loopforSubjct < records.size();
                    // loopforSubjct++ )
                    // {
                    // System.out.printf("\nSubject: "+
                    // records.get(loopforSubjct).getSubject()+" Grade: "+
                    // records.get(loopforSubjct).getGrade());
                    // }
    
                    in.nextLine();
                }
            }
            display();
        }
    
        public static void specific() {
            Scanner in = new Scanner(System.in);
            if (record.size() == 0) {
                System.out.print("Enter Data 1st\n");
                in.nextLine();
                menu();
            } else {
    
                String id = new String();
                System.out.print("Enter Id Number: ");
                id = in.nextLine();
                if (records.size() == 1) {
                    for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                        if (id.equals(record.get(loopforSpcfc).getIdNumber())) {
                            System.out
                                    .printf("\n ----------------Student Exists-------------- ");
                            System.out.print("\nId Number: "
                                    + record.get(loopforSpcfc).getIdNumber());
                            System.out.print("\nName:"
                                    + record.get(loopforSpcfc).getFirstName() + " "
                                    + record.get(loopforSpcfc).getMiddleName()
                                    + " " + record.get(loopforSpcfc).getLastName());
                            System.out.print("\nDegree and Year: "
                                    + record.get(loopforSpcfc).getDegree() + "-"
                                    + record.get(loopforSpcfc).getYearLevel()
                                    + "\n\n");
                            in.nextLine();
    
                        } else {
                            in.nextLine();
                            System.out.print("Student Number Invalid!\n");
    
                            menu();
    
                        }
    
                    }
                }
    
                else {
                    for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                        if (id.equals(record.get(loopforSpcfc).getIdNumber())) {
                            System.out.printf("\nStudent Exists");
                            System.out.print("\nId Number: "
                                    + record.get(loopforSpcfc).getIdNumber());
                            System.out.print("\nName: "
                                    + record.get(loopforSpcfc).getFirstName() + " "
                                    + record.get(loopforSpcfc).getMiddleName()
                                    + " " + record.get(loopforSpcfc).getLastName());
                            System.out.print("\nDegree and Year: "
                                    + record.get(loopforSpcfc).getDegree() + "-"
                                    + record.get(loopforSpcfc).getYearLevel()
                                    + "\n\n");
                            System.out.println();
    
                        }
    
                    }
                    for (int loopforSubjct = 0; loopforSubjct < records.size(); loopforSubjct++) {
                        System.out.printf("\nSubject: "
                                + records.get(loopforSubjct).getSubject()
                                + " Grade: "
                                + records.get(loopforSubjct).getGrade());
                    }
    
                    in.nextLine();
                }
    
            }
            display();
        }
    
        public static void update() {
            Scanner in = new Scanner(System.in);
            if (record.size() == 0) {
                System.out.print("Enter Data 1st\n");
                in.nextLine();
                menu();
            } else {
                String idnum = new String();
                char answer;
                in.nextLine();
                System.out.print("Enter Id Number: ");
                idnum = in.nextLine();
                int total;
    
                for (int loopforSpcfc = 0; loopforSpcfc < record.size(); loopforSpcfc++) {
                    if (idnum.equals(record.get(loopforSpcfc).getIdNumber())) {
                        System.out
                                .printf("\n ----------------Student Info-------------- ");
                        System.out.print("\nId Number: "
                                + record.get(loopforSpcfc).getIdNumber());
                        System.out.print("\nName:"
                                + record.get(loopforSpcfc).getFirstName() + " "
                                + record.get(loopforSpcfc).getMiddleName() + " "
                                + record.get(loopforSpcfc).getLastName());
                        System.out.print("\nDegree and Year: "
                                + record.get(loopforSpcfc).getDegree() + "-"
                                + record.get(loopforSpcfc).getYearLevel() + "\n\n");
                        in.nextLine();
                    }
                }
    
                for (int loop = 0; loop < record.size(); loop++) {
                    {
                        if (idnum.equals(record.get(loop).getIdNumber())) {
                            System.out.println("The number of Sujects: ");
                            total = in.nextInt();
                            do {
                                Grade[] update = new Grade[total];
                                for (int indexupdater = 0; indexupdater < update.length; indexupdater++) {
                                    update[indexupdater] = new Grade();
    
                                    // set ID... String
                                    update[indexupdater].setIDNumber(idnum);
    
                                    in.nextLine();
                                    System.out.print("Name of Course: ");
                                    update[indexupdater].setSubject(in.nextLine());
    
                                    System.out.print("Enter Grade: ");
                                    update[indexupdater].setGrade(in.nextDouble());
    
                                    records.add(update[indexupdater]);
                                }
    
                                System.out
                                        .print("Enter another subject and grade? [Y]or[N]");
                                String ans = in.next();
                                answer = ans.charAt(0);
    
                            } while (answer == 'y');
    
                        }
    
                    }
                }
            }
            menu();
        }
    
        public static void average() {
    
            Scanner in = new Scanner(System.in);
    
            if (record.size() == 0) {
                System.out.print("Enter Data 1st\n");
                in.nextLine();
                menu();
            } else {
    
                double sum = 0;
                double average = 0;
                String ID = new String();
    
                System.out.print("Enter An Valid Id Number: ");
                ID = in.nextLine();
    
                for (Rec rec : record) {
                    if (rec.getIdNumber().equals(ID)) {
    
                        for (Grade grade : records) {
                            if (grade.getIDNumber().equals(ID)) {
                                // System.out.println(grade.getIDNumber());
                                sum = sum + grade.getGrade();
                            }
                        } // end loop-grade
    
                        average = sum / records.size();
    
                    } // end if
                } // end loop-rec
    
                System.out.print("SUM: " + sum);
                System.out.print("\nAVERAGE: " + average);
            }
        }
    
        public static void display() {
            Scanner input = new Scanner(System.in);
    
            int choice;
    
            System.out.println("--------------------------------");
            System.out.println("1.View List");
            System.out.println("2.View Specific Record");
            System.out.println("3.Exit");
            System.out.println();
            System.out.println("--------------------------------");
            System.out.print("Enter your choice: ");
            choice = input.nextInt();
    
            switch (choice) {
    
            case 1:
                displayall();
                break;
            case 2:
                specific();
                break;
            case 3:
                menu();
                break;
    
            }
    
        }
    
        public static void main(String[] args) {
            new RecHolder();
        }
    }
    

        class Grade {
    
        private String IDNumber;
        private String subject;
        private double grade;
        private double average;
    
        public Grade() {
            String IDNum;
            String sub;
            double grad;
            double ave;
    
        }
    
        public Grade(String IDNum, String sub, double grad, double ave) {
            this.IDNumber = IDNum;
            this.subject = sub;
            this.grade = grad;
            this.average = ave;
    
        }
    
        public void setSubject(String subject) {
            this.subject = subject;
        }
    
        public String getSubject() {
            return subject;
        }
    
        public void setGrade(double grade) {
            this.grade = grade;
        }
    
        public double getGrade() {
            return grade;
        }
    
        public String getIDNumber() {
            return IDNumber;
        }
    
        public void setIDNumber(String ID) {
            this.IDNumber = ID;
        }
    
    }
    

    public class Rec {
        private String IDNumber;
        private String firstName;
        private String middleName;
        private String lastName;
        private String degree;
        private int yearLevel;
    
        @Override
        public String toString() {
            return ("ID Number: " + this.getIdNumber() + "\nName: "
                    + this.getFirstName() + " " + this.getMiddleName() + " "
                    + this.getLastName() + "\nDegree and YearLevel: "
                    + this.getDegree() + " - " + this.getYearLevel());
        }
    
        public Rec() {
            String IDNum;
            String fName;
            String mName;
            String lName;
            String deg;
            int level;
        }
    
        public Rec(String IDNum, String fName, String mName, String lName,
                String deg, int level) {
            this.IDNumber = IDNum;
            this.firstName = fName;
            this.middleName = mName;
            this.lastName = lName;
            this.degree = deg;
            this.yearLevel = level;
        }
    
        public void setIdNumber(String IDNumber) {
            this.IDNumber = IDNumber;
        }
    
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
    
        public void setMiddleName(String middleName) {
            this.middleName = middleName;
        }
    
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    
        public void setDegree(String degree) {
            this.degree = degree;
        }
    
        public void setYearLevel(int yearLevel) {
            this.yearLevel = yearLevel;
        }
    
        public String getIdNumber() {
            return IDNumber;
        }
    
        public String getFirstName() {
            return firstName;
        }
    
        public String getMiddleName() {
            return middleName;
        }
    
        public String getLastName() {
            return lastName;
        }
    
        public String getDegree() {
            return degree;
        }
    
        public int getYearLevel() {
            return yearLevel;
        }
    
    }
    

答案 3 :(得分:0)

也许你可以试试这个:

ID = in.nextLine();
for (int ind = 0; ind < records.size(); ind++) {
if (ID.equals(record.get(ind).getIdNumber())) {
 sum += records.get(ind).getGrade();
}
  }
System.out.print("SUM: " + sum);
 average = sum / records.size();
 System.out.print("\nAVERAGE: " + average);