正如标题所述,我必须创建一个管理学生的应用程序。学生分组组织。必须从一个文本文件中写出学生,每个人要成组分组。如果我每组限制30名学生,那么对于60名学生,我将分为2组。作为Java的新手,我真的不知道在达到30个学生之后如何增加组ID,或者,我不知道一种方法。我在考虑Map或类似的东西。这是我到目前为止所做的。有什么建议么?
学生班:
public class Student {
private String firstName;
private String lastName;
private int age;
private String CNP;
private int grade;
private boolean leader;
public Student(String firstName, String lastName, int age, String CNP, int grade, boolean leader) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.CNP = CNP;
this.grade = grade;
this.leader = leader;
}
}
教师班:
public class Faculty {
private int groupIterator;
private List<Student> list;
public Faculty() throws Exception {
list = new ArrayList<Student>();
Scanner fileIn = new Scanner(new File("---"));
String line;
String firstName;
String lastName;
int age;
String CNP;
int grade;
boolean leader;
while(fileIn.hasNextLine()) {
line = fileIn.nextLine();
firstName = line;
line = fileIn.nextLine();
lastName = line;
line = fileIn.nextLine();
age = Integer.parseInt(line);
line = fileIn.nextLine();
CNP = line;
line = fileIn.nextLine();
grade = Integer.parseInt(line);
line = fileIn.nextLine();
leader = Boolean.parseBoolean(line);
list.add(new Student(firstName,lastName,age,CNP,grade,leader));
}
fileIn.close();
}
答案 0 :(得分:0)
就目前而言,您的代码对于Faculty
所扮演的角色感到困惑。看来它代表一位老师和他们的学生参加一堂课。但是,它也具有解析入学学生所需的代码。这将是一个糟糕的设计选择。
执行此操作的最佳OOP方法是拥有一个Registrar
类。这基本上代表了将学生与老师联系在一起的学校实体。它将解析您的文件,使学生进入Faculty
类。
Faculty
类应具有isClassFull
用来确定新学生是否需要新students.size >= 30
的方法Registrar
(Faculty
)。先前的Faculty
已满。然后,注册服务商将创建一个新的学院并重复该过程。
最终结果将是带有列表Registrar
的{{1}},列表最多包含30 Faculty
。
由于这似乎是学生的练习,因此我将把实现留给您,但希望可以弄清楚如何用代码表示此概念。
答案 1 :(得分:0)
学生:
@BeanMapping(ignoreUnmappedSourceProperties = { "fieldToIgnore" })
教师:
public class Student {
private String firstName;
private String lastName;
private int age;
private String CNP;
private int grade;
private boolean leader;
private int group;
public Student(String firstName, String lastName, int age, String CNP, int grade, boolean leader, int group) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.CNP = CNP;
this.grade = grade;
this.leader = leader;
this.group = group;
}