示例#1
0
 public double getGPA() {
   double totalProd = 0;
   double totalCredits = 0;
   for (Semester sem : semesterList) {
     totalProd += sem.getTotalProd();
     totalCredits += sem.getTotalCredit();
   }
   return totalProd / totalCredits;
 }
示例#2
0
  /**
   * @param dataFile
   * @throws IOException if there were any error, the student object cannot be created and the there
   *     is no proper way to handle it here, but to signal the caller that it fails.
   */
  public Student(File dataFile) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(dataFile));
    String s = br.readLine(); // should contain name,id
    // separate name and id by comma
    /* :: Method 1 ::
    String temp = "";
    for(int i=0; i<s.length(); i++) {
    	char c = s.charAt(i);
    	if (c == ',') {
    		name = temp;
    		temp = "";
    	} else {
    		temp += c;
    	}
    	System.out.println(c + " ... " +temp);
    }
    id = temp;
    */
    StringTokenizer stk = new StringTokenizer(s, ",");
    name = stk.nextToken();
    id = stk.nextToken();

    Semester semester = null;
    while ((s = br.readLine()) != null) {
      // see what are we reading?
      // semester or subject
      if (s.charAt(0) != '\t') {
        stk = new StringTokenizer(s, "/");
        String tempSem = stk.nextToken();
        String tempYear = stk.nextToken();

        int sem = Integer.parseInt(tempSem);
        int year = Integer.parseInt(tempYear);

        semester = new Semester(sem, year);
        addSemester(semester);
      } else {
        // it's a subject
        stk = new StringTokenizer(s, ",");
        String code = stk.nextToken();
        code = code.substring(1); // grab the string from char 1 onward.
        String name = stk.nextToken();
        String credit = stk.nextToken();
        String grade = stk.nextToken();
        int cre = Integer.parseInt(credit);

        Subject sub = new Subject(code, name, cre, grade);
        semester.addSubject(sub);
      }
    }
  }
示例#3
0
文件: Courses.java 项目: c44/Grades
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_courses);

    db = new DBHelper(this);
    semester = (Semester) getIntent().getSerializableExtra("semester");
    courses = semester.getCourses();

    coursesListView = (ListView) findViewById(R.id.coursesListView);
    adapter = new CourseAdapter(this, R.layout.semester_row, courses);
    coursesListView.setAdapter(adapter);

    coursesListView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(Courses.this, EditCourse.class);
            intent.putExtra("course", courses.get(position));
            startActivity(intent);
          }
        });

    semesterAverageTextView = (TextView) findViewById(R.id.semesterAverageTextView);
    totalAverageTextView = (TextView) findViewById(R.id.totalAverageTextView);

    calculateAverages();
  }
  @Test
  public void test() throws Exception {
    // Create Course instances and add to ArrayList
    Course c1 = new Course(UUID.randomUUID(), "Chemistry", 4, eMajor.CHEM);
    Course c2 = new Course(UUID.randomUUID(), "Math", 4, eMajor.BUSINESS);
    Course c3 = new Course(UUID.randomUUID(), "Computer Science", 4, eMajor.COMPSI);
    ArrayList<Course> courses = new ArrayList<Course>();
    courses.add(c1);
    courses.add(c2);
    courses.add(c3);

    // Create Semester instances and add to ArrayList
    Semester fall = new Semester(UUID.randomUUID(), new Date(), new Date());
    Semester spring = new Semester(UUID.randomUUID(), new Date(), new Date());
    ArrayList<Semester> semesters = new ArrayList<Semester>();
    semesters.add(fall);
    semesters.add(spring);

    // Create Section instances and add to ArrayList
    UUID secID1 = UUID.randomUUID();
    UUID secID2 = UUID.randomUUID();
    UUID secID3 = UUID.randomUUID();
    UUID secID4 = UUID.randomUUID();
    UUID secID5 = UUID.randomUUID();
    UUID secID6 = UUID.randomUUID();
    Section falls1 = new Section(c1.getCourseID(), fall.getSemesterID(), secID1, 200);
    Section falls2 = new Section(c2.getCourseID(), fall.getSemesterID(), secID2, 200);
    Section falls3 = new Section(c3.getCourseID(), fall.getSemesterID(), secID3, 200);
    Section spring1 = new Section(c1.getCourseID(), spring.getSemesterID(), secID4, 200);
    Section spring2 = new Section(c2.getCourseID(), spring.getSemesterID(), secID5, 200);
    Section spring3 = new Section(c3.getCourseID(), spring.getSemesterID(), secID6, 200);
    ArrayList<Section> sections = new ArrayList<Section>();
    sections.add(falls1);
    sections.add(falls2);
    sections.add(falls3);
    sections.add(spring1);
    sections.add(spring2);
    sections.add(spring3);

    // Create Student instances and add to ArrayList
    Student s1 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s2 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s3 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s4 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s5 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s6 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s7 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s8 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s9 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    Student s10 =
        new Student(
            "Bob",
            "Ex",
            "Example",
            new Date(),
            eMajor.BUSINESS,
            "10 Example Street",
            "(302)-444-5555",
            "*****@*****.**",
            UUID.randomUUID());
    ArrayList<Student> students = new ArrayList<Student>();
    students.add(s1);
    students.add(s2);
    students.add(s3);
    students.add(s4);
    students.add(s5);
    students.add(s6);
    students.add(s7);
    students.add(s8);
    students.add(s9);
    students.add(s10);

    // Create ArrayList for Enrollment instances
    ArrayList<Enrollment> enrollments = new ArrayList<Enrollment>();

    // Create the 60 instances of Enrollment
    for (Student stu : students) {
      for (Section sec : sections) {
        enrollments.add(new Enrollment(stu.getStudentID(), sec.getSectionID()));
      }
    }

    // Set all the grades
    for (Enrollment en : enrollments) {
      en.setGrade(4);
    }

    // Calculate GPAs
    double gpa1 = 0;
    double gpa2 = 0;
    double gpa3 = 0;
    double gpa4 = 0;
    double gpa5 = 0;
    double gpa6 = 0;
    double gpa7 = 0;
    double gpa8 = 0;
    double gpa9 = 0;
    double gpa10 = 0;

    double sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s1.getStudentID()) {
        sum += en.getGrade();
      }
      gpa1 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s2.getStudentID()) {
        sum += en.getGrade();
      }
      gpa2 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s3.getStudentID()) {
        sum += en.getGrade();
      }
      gpa3 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s4.getStudentID()) {
        sum += en.getGrade();
      }
      gpa4 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s5.getStudentID()) {
        sum += en.getGrade();
      }
      gpa5 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s6.getStudentID()) {
        sum += en.getGrade();
      }
      gpa6 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s7.getStudentID()) {
        sum += en.getGrade();
      }
      gpa7 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s8.getStudentID()) {
        sum += en.getGrade();
      }
      gpa8 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s9.getStudentID()) {
        sum += en.getGrade();
      }
      gpa9 = sum / 6;
    }

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getStudentID() == s10.getStudentID()) {
        sum += en.getGrade();
      }
      gpa10 = sum / 6;
    }

    // Test if the GPAs were correctly calculated
    assertTrue(gpa1 == 4);
    assertTrue(gpa2 == 4);
    assertTrue(gpa3 == 4);
    assertTrue(gpa4 == 4);
    assertTrue(gpa5 == 4);
    assertTrue(gpa6 == 4);
    assertTrue(gpa7 == 4);
    assertTrue(gpa8 == 4);
    assertTrue(gpa9 == 4);
    assertTrue(gpa10 == 4);

    // Calculate average course grades
    double ave1 = 0;
    double ave2 = 0;
    double ave3 = 0;

    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getSectionID() == secID1 || en.getStudentID() == secID4) {
        sum += en.getGrade();
      }
      ave1 = sum / 10;
    }
    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getSectionID() == secID2 || en.getStudentID() == secID5) {
        sum += en.getGrade();
      }
      ave2 = sum / 10;
    }
    sum = 0;
    for (Enrollment en : enrollments) {
      if (en.getSectionID() == secID3 || en.getStudentID() == secID6) {
        sum += en.getGrade();
      }
      ave3 = sum / 10;
    }

    // Test if course averages were correctly calculated
    assertTrue(ave1 == 4);
    assertTrue(ave2 == 4);
    assertTrue(ave3 == 4);

    // Attempt to change a student's major
    s1.setMajor(eMajor.CHEM);
    assertTrue(s1.getMajor() == eMajor.CHEM);
  }