用户定义的具有多个输入的数组大小

时间:2014-05-09 11:51:16

标签: java

我正在努力完成我的决赛,而我对这部分感到有些困惑。

  1. 我无法弄清楚是否可以在if语句之外调用Admin或Student输入。我需要在菜单中的第3和第4个选项中调用结果,如果没有抛出错误,我就无法完成。

        public class MainEntry {
    
        static Scanner console = new Scanner(System.in);
    
        public static void main(String[] args) {
    
            int printMenu = 0;
    
            while(printMenu != 5){
    
                printMenu();
                printMenu = console.nextInt();
    
                if (printMenu == 1){
    
                    String firstName;
                    String lastName;
                    int year;
                    double[] grades;
                    double studentId;
                    String major;
    
                    int size;
                    System.out.println("How many students do you have? ");
                    size = console.nextInt();
    
                    Student newStudent = new Student();
    
    
                        int[] stud = new int[size];
    
                         for(int i = 0; i < stud.length; i++)
                         {
                             System.out.println("What is the students first name? ");
                             firstName = console.next();
                             newStudent.setFirstName(firstName);
    
                             System.out.println("What is the students last name? ");
                             lastName = console.next();
                             newStudent.setLastName(lastName);
    
                             System.out.println("What year are they in? ");
                             year = console.nextInt();
                             newStudent.setYear(year);
                                                     System.out.println("Enter in their grades: ");
        grades = console.nextDouble();newStudent.setGrades(grades);
    
                             System.out.println("What is their Student ID number? ");
                             studentId = console.nextDouble();
                             newStudent.setStudentID(studentId);
    
                             System.out.println("What is the student's major? ");
                             major = console.next();
                             newStudent.setMajor(major);
    
                         }
    
    
                }
    
                else if (printMenu == 2){
                    Admin newAdmin = new Admin();
    
    
                    System.out.println("How many admins do you have? ");
                     int size = console.nextInt();
                     int[] admins = new int[size];
    
                     for(int i = 0; i < admins.length; i++)
    
                     {                   
                         System.out.println("What is the admin's first name? ");
                         String firstName = console.next();
                         newAdmin.setFirstName(firstName);
    
                         System.out.println("What is the admin's last name? ");
                         String lastName = console.next();
                         newAdmin.setLastName(lastName);
    
                         System.out.println("What is their Admin's ID number? ");
                         double adminId = console.nextDouble();
                         newAdmin.setAdminId(adminId);
    
                         System.out.println("What is the Admin's department? ");
                         String department = console.next();
                         newAdmin.setDepartment(department);
    
                         System.out.println("What is their salary? ");
                         int salary = console.nextInt();
                         newAdmin.setsalary(salary);
    
    
                     }
                }
    
            else if (printMenu == 3){
    
        System.out.println("First name: " + newStudent.getFirstName());
        System.out.println("Last name: " + newStudent.getLastName());
            System.out.println("ID Number: " + newStudent.getStudentID());System.out.println("GPA: " + newStudent.getgrade());System.out.println("Major: "+newStudent.getMajor());                  
    
         }
    
                else if (printMenu == 4){
    
    
    
        System.out.println("First name: " + newAdmin.getFirstName());
        System.out.println("Last name: " + newAdmin.getLastName()); System.out.println("ID Number: " + newAdmin.getAdminId()); System.out.println("GPA: " + newAdmin.getgrade());
                    System.out.println("Major: " + newAdmin.getsalary());
    
                }
    
    
    
                else if(printMenu == 5){
                    System.out.println("Thanks for using my program!");
                }
    
            }
    
    
    
        }
    
        // This method will bring up the beginning menu for the user
                public static void printMenu(){
    
                    //Asking the user which option they are selecting
                            System.out.println("How would you like to input your data?");
                            System.out.println("1. Enter in students. ");
                            System.out.println("2. Enter in admins. ");
                            System.out.println("3. Print the student information. ");
                            System.out.println("4. Print admin information. ");
                            System.out.println("5. Exit the program. ");
    
    
                }
    
    
    
    }
    
  2. 对于学生成绩,我需要使用数组将5个等级平均分开。

    公共班学生{         //存储名字         private String firstName;

        // stores the last name
        private String lastName;
    
        // stores the 
        private int year;
    
        // stores the grades
        private double[] grades;
    
        // stores the ID number
        private double studentID;
    
        private String major;
    
        public static int studentInfo;
    
    
        //here is where it sets the defaults
        public Student(){
            firstName = "Jane";
            lastName = "Doe";
            year = 1;
            grades = new double[]{0,0,0,0,0};
            studentID = 0;
            major = "undeclared";
    
            studentInfo++;
        }
    
    
    
        public static int studentInfo(){
            return (studentInfo);
        }
    
        public String getFirstName() {
            return firstName;
        }
    
    
    
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
    
    
    
        public String getLastName() {
            return lastName;
        }
    
    
    
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    
    
    
        public int getYear() {
            return year;
        }
    
    
    
        public void setYear(int year) {
            this.year = year;
        }
    
    
    
        public double[] getGrades() {
            return grades;
        }
    
    
    
        public void setGrades(double[] grades) {
            this.grades = grades;
        }
    
    
    
        public double getStudentID() {
            return studentID;
        }
    
    
    
        public void setStudentID(double studentID) {
            this.studentID = studentID;
        }
    
    
    
        public String getMajor() {
            return major;
        }
    
    
    
        public void setMajor(String major) {
            this.major = major;
        }
    
    
    
        public static int getStudentInfo() {
            return studentInfo;
        }
    
    
    
        public static void setStudentInfo(int studentInfo) {
            Student.studentInfo = studentInfo;
        }
    
    
    
        public Student(String firstName, String lastName, int year, double[] grades, double studentID){
    
            this.firstName = firstName;
    
            this.lastName = lastName;
    
            this.year = year;
    
            this.grades = grades;
    
            this.studentID = studentID;
    
            studentInfo++;
            }
    
    
    }
    
  3. 我理解如何在课堂上构建它,但我不明白如何在MainEntry中使用它。它一直要求我改变类型,我无法弄清楚还有什么可以解决它。我有阵列的问题,所以我不是最好的......

    感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

1)为此,您需要在if语句之外声明newStudent。

    while(printMenu != 5){

        Student newStudent = null; // ← newStudent is declared here

        printMenu();
        printMenu = console.nextInt();

这意味着您以后不会声明它,只会为其分配新运算符的结果:

            int size;
            System.out.println("How many students do you have? ");
            size = console.nextInt();

            newStudent = new Student(); // ← this is only an assignment, not a declaration

这也意味着当用户想要显示有关学生的信息时必须要小心,因为newStudent可以为null(即尚未输入任何信息)。

2)平均值不是双数组,只是一个双数组。这就是编译器抱怨不兼容类型的原因。平均值不会自动计算,您必须自己计算。基本上,您需要两个步骤。首先,遍历数组并计算元素的总和:

double sum = 0;
for (double g : grades) { // do this for all elements of the array
    sum += g;      // add the element to the sum
}

然后,平均值是总和除以元素数量。

double average = sum / grades.length;