首页 > 解决方案 > 使用 ArrayLists 了解应用程序的结构

问题描述

我需要帮助理解我的“小型学生管理应用程序”的结构。我需要:

  1. 创建主题。
  2. 主题有一个名称和类别数量,这些类别是等级的类型,例如。Java, 2, 家庭作业, 项目
  3. 每种等级都有权重,例如家庭作业,10
  4. 将其保存在文件中

  5. 为选定科目的学生输入成绩

  6. 对于选择了 SUBJECT 的每个类别,学生都有 ID、姓名和成绩。
  7. 保存到文件
  8. 使用来自 SUBJECT 的权重和插入的学生成绩进行一些计算。

我写了两种方法:

private void createSubject(String name, 
                           int numberOfCat, 
                           List<String> category, 
                           List<Integer> weight);

private void insertGrade(int id, String name, List<Integer> grade);

这些方法将输入到subjects.txt 和students.txt 保存为我的数据库表。我还有用于 editGrade 和 deleteSubject 以及 viewGrades 和 viewSubjects 的方法

现在我可以像这样添加到我的文件中,例如:

subject.txt -> (Java, Homework, 10, Project, 40, Final,50,)

student.txt -> (001, 约翰)

我的问题从这里开始。我现在无法想象我该怎么做:

  1. 从subjects.txt中选择一个主题

  2. 为学生插入成绩。成绩数必须与所选主题中的类别数相匹配。(这就是为什么在 insertGrade 中我只保存了 ID 和名称)

  3. 检索权重,以便我可以使用用户插入的成绩进行计算。

如果有人可以帮助我了解我该怎么做。我不需要代码,但我很想了解如何查看它。谢谢你,我已经准备好交谈和学习了;)

标签: javaarraylist

解决方案


您是否正在尝试将SubjectStudent抽象为类?

public class Execute {

    public static void main(String[] args){
        //1.Creating some instance of Grade
        Grade grade1 = new Grade("Homework", 10);
        Grade grade2 = new Grade("Project,", 40);
        Grade grade3 = new Grade("Final,", 50);

        //2.Putting all these grades in an ArrayList
        List<Grade> grades = new ArrayList<Grade>();
        grades.add(grade1);
        grades.add(grade2);
        grades.add(grade3);

        //3.Creating an instance of Subject
        Subject Java = new Subject("Java", grades);

        //4.Putting the subject in an ArrayList
        List<Subject> subjects = new ArrayList<Subject>();
        subjects.add(Java);

        //5.Creating an instance of Student
        Student student = new Student("001", "John", subjects);

        /**
         * Now you have a student called John, choosing a subject called Java.
         * There are 3 parts of this course: Homework, Project, and Final exam.
         */
    }
}

public class Student {
    private String id;
    private String name;
    private List<Subject> subjects;

    public Student(String id, String name, List<Subject> subjects) {
        this.id = id;
        this.name = name;
        this.subjects = subjects;
    }
}

public class Grade {
    private String name;
    private Integer weight;

    public Grade(String name, Integer weight) {
        this.name = name;
        this.weight = weight;
    }
}

public class Subject {

    private String name;
    private List<Grade> grades;

    public Subject(String name, List<Grade> grades) {
        this.name = name;
        this.grades = grades;
    }
}


推荐阅读