-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCourseManagement.java
More file actions
62 lines (56 loc) · 1.86 KB
/
Copy pathCourseManagement.java
File metadata and controls
62 lines (56 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.util.ArrayList;
import java.util.HashMap;
/**
* CourseManagement handles all system operations using static methods.
*/
public class CourseManagement {
private static ArrayList<Course> courses = new ArrayList<>();
private static HashMap<Student, HashMap<Course, Double>> overallGrades = new HashMap<>();
/**
* Adds a new course to the system.
*/
public static void addCourse(String courseCode, String name, int maxCapacity) {
Course newCourse = new Course(courseCode, name, maxCapacity);
courses.add(newCourse);
}
/**
* Gets all courses in the system.
*/
public static ArrayList<Course> getCourses() {
return courses;
}
/**
* Enrolls a student in a course.
*/
public static void enrollStudent(Student student, Course course) {
if (course.hasSpace()) {
student.enrollInCourse(course);
System.out.println(student.getName() + " enrolled in " + course.getName());
} else {
System.out.println("Error: " + course.getName() + " is full!");
}
}
/**
* Assigns a grade to a student for a course.
*/
public static void assignGrade(Student student, Course course, double grade) {
student.assignGrade(course, grade);
System.out.println("Grade assigned to " + student.getName() + " for " + course.getName());
}
/**
* Calculates overall grade for a student.
*/
public static double calculateOverallGrade(Student student) {
HashMap<Course, Double> grades = student.getAllGrades();
if (grades.isEmpty()) {
return 0.0;
}
double sum = 0.0;
for (double grade : grades.values()) {
sum += grade;
}
double average = sum / grades.size();
overallGrades.put(student, grades);
return average;
}
}