负责管理学院中学生的应用程序

时间:2019-03-16 19:25:42

标签: java

正如标题所述,我必须创建一个管理学生的应用程序。学生分组组织。必须从一个文本文件中写出学生,每个人要成组分组。如果我每组限制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();
}

2 个答案:

答案 0 :(得分:0)

就目前而言,您的代码对于Faculty所扮演的角色感到困惑。看来它代表一位老师和他们的学生参加一堂课。但是,它也具有解析入学学生所需的代码。这将是一个糟糕的设计选择。

执行此操作的最佳OOP方法是拥有一个Registrar类。这基本上代表了将学生与老师联系在一起的学校实体。它将解析您的文件,使学生进入Faculty类。

Faculty类应具有isClassFull用来确定新学生是否需要新students.size >= 30的方法RegistrarFaculty)。先前的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;
}