首页 > 解决方案 > 我们可以创建一个数组,其中前两个元素是 int 类型,第三个元素本身就是一个数组吗?

问题描述

我正在尝试解决一个实践问题,即:

假设以下 Student 和 GradeBook 类的基本骨架:

public class GradeBook {
   private String courseName;
   private Student[] students;
// ... other methods .... 
}
public class Student{
   private int id;
   private String name;
   int marks[];   // marks in different tests
}

封装字段并定义所需的构造函数。然后,制作一个 GradeBook 对象并根据用户输入完全初始化它。从用户输入中获取学生人数。由于每个学生的测试数量可能不同,因此您的程序应在每个测试中获取测试数量和分数,也形成用户输入。您还可以生成并使用随机数来快速初始化整个数据,而不是从用户那里获取,而是选择合适的范围,例如最高分 100、最多学生 50 和每个学生可以提供的最大测试数应小于或等于 10。完全初始化 GradeBook 对象,打印以下信息:哪个学生给出了最大的测试次数,打印学生 id 谁获得了最高平均分,打印学生 id。全班平均分 全班每个学生的平均分 每个学生的最低分,打印分数和学生ID 每个学生的最高分数,打印分数和学生ID 学生的平均分数、最低分数和最高分数(从用户那里获取学生) 有些方法应该写在Student类中,有些方法应该写在GradeBook类中,决定最佳位置一种基于其作用的方法。以不同的方法执行所有列出的任务,并从 GradeBook 测试类中的 main 方法调用这些方法。

我的代码(不完整):

主班

import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        Random random = new Random();

        System.out.println("Enter No. of Students: ");

        Student[] students = new Student[sc.nextInt()];

        for (int i = 0; i < students.length; i++) {
            System.out.printf("----- (STUDENT - %d) -----\n", i+1);

            System.out.println("No. of Tests given: ");
            int[] marks = new int[sc.nextInt()];

            System.out.println("Enter ID and Name: ");
            students[i] = new Student(sc.nextInt(), sc.nextLine(), sc.nextLine(), marks);
    }
}

我无法理解如何制作一组学生,其中包含 id、name 和标记数组作为其元素。

标签: javaarraysoopconstructor

解决方案


你不能。相反,您应该定义一个学生数组(或列表),其中每个项目都包含学生数据。


推荐阅读