2 回答
TA贡献1795条经验 获得超7个赞
就目前而言,您的代码对于所扮演的角色感到困惑。它似乎代表了一个老师和他们的学生的课堂。但是,它还具有解析传入学生所需的代码。这将是一个糟糕的设计选择。Faculty
最好的OOP方法是有一个类。这基本上代表了将学生与老师放在一起的学校实体。它将解析将学生放入课堂的文件。Registrar
Faculty
该类应该有一个方法(),该方法将用于确定新学生是否需要新学生,因为前一个已满。然后,注册官将创建一个新的学院并重复该过程。Faculty
isClassFull
students.size >= 30
Registrar
Faculty
Faculty
最终结果将是一个列表,其列表最多为 30 。Registrar
Faculty
Student
由于这似乎是一个学生练习,我将把实现留给你,但希望这能弄清楚如何在代码中表示这个概念。
TA贡献1851条经验 获得超3个赞
学生:
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;
}
能力:
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);
// Here's the key bit - we now pass in the group id based on the list size
list.add(new Student(firstName,lastName,age,CNP,grade,leader,len(list)/30));
}
fileIn.close();
}
添加回答
举报