Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 我们可以制作一个数组,其中前两个元素是int类型,第三个元素本身是数组吗?_Java_Arrays_Oop_Constructor - Fatal编程技术网

Java 我们可以制作一个数组,其中前两个元素是int类型,第三个元素本身是数组吗?

Java 我们可以制作一个数组,其中前两个元素是int类型,第三个元素本身是数组吗?,java,arrays,oop,constructor,Java,Arrays,Oop,Constructor,我试图解决一个实践问题,即: 假设学生和成绩册课程的基本框架如下: public class GradeBook { private String courseName; private Student[] students; // ... other methods .... } public class Student{ private int id; private String name; int marks[]; // marks in differ

我试图解决一个实践问题,即:

假设学生和成绩册课程的基本框架如下:

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
}
封装字段并定义所需的构造函数。然后,创建一个成绩册对象,并根据用户输入对其进行完全初始化。从用户输入获取学生人数。由于每个学生给出的测试数量可能不同,因此您的程序应在每个测试中记录测试数量和分数,并形成用户输入。您也可以生成并使用随机数快速初始化整个数据,而不是从用户处获取,但选择适当的范围,例如,最大分数100,最大学生50,每个学生可能给出的最大测试次数应小于或等于10。完全初始化成绩册对象后,打印以下信息: 哪个学生的考试次数最多,请打印学生id 谁的平均分最高,打印学生id。 全班平均分 班上每个学生的平均分数 每个学生的最低分数、打印分数和学生id 每个学生的最高分数、打印分数和学生id 学生的平均分、最低分和最高分(从用户处获取学生) 有些方法应该写在学生课堂上,有些写在成绩册课堂上,根据方法的作用来决定方法的最佳位置。使用不同的方法执行列出的所有任务,并从成绩册测试类的主方法调用这些方法

我的代码(不完整):

主类

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);
    }
}
import java.util.Random;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
随机=新随机();
System.out.println(“输入学生人数:”);
学生[]学生=新学生[sc.nextInt()];
for(int i=0;i

我无法理解如何将id、姓名和标记数组作为学生数组的元素。

不,你不能。你应该定义一个数组(或列表)每个项都保存学生数据的学生数组。

听起来好像你缺少。你不会有一个具有单独值类型的数组。你会有一个由
Student
对象组成的数组,你可以将这些对象添加到数组中。@user15793316我不建议告诉一个新程序员。这会给他们带来坏习惯和/或使他们感到困惑e他们将需要执行施法,以利用他们放入这样一个数组中的任何东西。@user15793316很难说。当然,至少在他们不了解为什么坏的时候,把坏主意放在他们的头上同样糟糕。两者都不理想。我想我倾向于让人们带着他们已经学会的希望发现坏主意当他们没有足够的经验来理解为什么这是一个坏主意,因此可能会忽略警告,因为它完成了他们想要做的事情时,在这一点上,我们不应该承认它是这样,而不是首先给他们坏主意。