java - 我们可以创建一个数组,其中前两个元素是 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 和标记数组作为其元素。
解决方案
你不能。相反,您应该定义一个学生数组(或列表),其中每个项目都包含学生数据。
推荐阅读
- python - 当我只在 tkinter 中更改一个时,为什么两个输入都会更改?
- c# - 指定的演员表无效 - Xamarin Forms
- node.js - npx 创建下一个应用程序
不管用 - rust - 依赖于不可变成员的惯用可变竞技场遍历
- reactjs - 在反应中使用子组件中的生命周期
- google-apps-script - 将数组公式设置到 Google 表格中的最后一列
- swift - 如何测量 DispatchQueue 背压
- javascript - 我不断收到错误 Uncaught ReferenceError: nothingButton is not defined
- python - 我如何知道用户输入是否包含python中的所有字符或数字
- javascript - 使用PHP而不是JS获取带有国家代码的“intl-tel-input”手机号码