Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2249af3823 | ||
|
|
19603d4f57 |
@@ -4,6 +4,8 @@ public class Course {
|
||||
private String courseName;
|
||||
private String courseCode;
|
||||
private int capacity;
|
||||
private boolean canDrop = false;
|
||||
|
||||
|
||||
public Course(String courseName, String courseCode, int capacity) {
|
||||
this.courseName = courseName;
|
||||
@@ -23,6 +25,15 @@ public class Course {
|
||||
return capacity;
|
||||
}
|
||||
|
||||
public boolean isDropped() {
|
||||
return canDrop;
|
||||
}
|
||||
|
||||
public void setCanDrop(boolean canDrop) {
|
||||
this.canDrop = canDrop;
|
||||
|
||||
}
|
||||
|
||||
public boolean reduceCapacity() {
|
||||
if (capacity > 0) {
|
||||
capacity--;
|
||||
@@ -34,4 +45,11 @@ public class Course {
|
||||
public void increaseCapacity() {
|
||||
capacity++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return courseName + " (" + courseCode + ") " + "remaining capacity : " + capacity;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package CourseRegistrationStarter;
|
||||
|
||||
import javax.lang.model.element.NestingKind;
|
||||
import java.util.Objects;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
// TODO:
|
||||
@@ -10,5 +14,99 @@ public class Main {
|
||||
// 5. Register the student in some courses
|
||||
// 6. Drop one course
|
||||
// 7. Print the final registered course list
|
||||
|
||||
Course course1 = new Course("Advanced Programming", "AP1404", 2);
|
||||
|
||||
Course course2 = new Course("Data Structures", "DS140401", 3);
|
||||
|
||||
Course course3 = new Course("Database System", "DS140402", 1);
|
||||
|
||||
Course course4 = new Course("Math2", "M1404", 4);
|
||||
|
||||
Student myStudent = new Student("mohammadReza", "Reza404222");
|
||||
|
||||
RegistrationSystem mySystem = new RegistrationSystem();
|
||||
|
||||
mySystem.addCourseToSystem(course1);
|
||||
mySystem.addCourseToSystem(course2);
|
||||
mySystem.addCourseToSystem(course3);
|
||||
mySystem.addCourseToSystem(course4);
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
while (true) {
|
||||
|
||||
System.out.println("==== Course Registration Menu ====");
|
||||
System.out.println("1.Show all courses");
|
||||
System.out.println("2.Register course");
|
||||
System.out.println("3.Drop course");
|
||||
System.out.println("4.Show my courses");
|
||||
System.out.println("5.Exit");
|
||||
System.out.println("choose an option: ");
|
||||
|
||||
int choice = scanner.nextInt();
|
||||
scanner.nextLine();
|
||||
|
||||
if (choice == 1) {
|
||||
|
||||
System.out.println("All courses on System: ");
|
||||
mySystem.showAllCourses();
|
||||
|
||||
} else if (choice == 2) {
|
||||
|
||||
System.out.println("Enter course code to register: ");
|
||||
String inputCode = scanner.nextLine();
|
||||
|
||||
Course selected = mySystem.findCourseByCode(inputCode);
|
||||
|
||||
if (selected == null) {
|
||||
|
||||
System.out.println("this code in invalid");
|
||||
} else if (selected.isDropped()) {
|
||||
|
||||
System.out.println("you previously dropped this course and you can register again");
|
||||
}
|
||||
else if (myStudent.addCourse(selected) && selected.reduceCapacity()) {
|
||||
|
||||
System.out.println("course " + selected.getCourseName() + " registered successfully");
|
||||
|
||||
} else {
|
||||
System.out.println("this course in full");
|
||||
}
|
||||
|
||||
} else if (choice == 3) {
|
||||
|
||||
System.out.println("Enter course code to Drop it: ");
|
||||
String inputCode = scanner.nextLine();
|
||||
|
||||
Course found = mySystem.findCourseByCode(inputCode);
|
||||
|
||||
if (found == null) {
|
||||
System.out.println("this course has not registered yet");
|
||||
} else {
|
||||
if (myStudent.dropCourse(found)) {
|
||||
found.reduceCapacity();
|
||||
found.increaseCapacity();
|
||||
System.out.println("course dropped successfully");
|
||||
} else {
|
||||
System.out.println("you are not registered in this course");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else if (choice == 4) {
|
||||
|
||||
myStudent.showRegisteredCourses();
|
||||
|
||||
} else if (choice == 5) {
|
||||
|
||||
System.out.println("exiting...");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,16 +9,23 @@ public class RegistrationSystem {
|
||||
}
|
||||
|
||||
public void addCourseToSystem(Course c) {
|
||||
// TODO: Add the course to the system
|
||||
courses.add(c);
|
||||
}
|
||||
|
||||
public Course findCourseByCode(String code) {
|
||||
// TODO: Search for a course by course code
|
||||
// Return the matching course if found, otherwise return null
|
||||
|
||||
for (Course c : courses) {
|
||||
if (c.getCourseCode().equals(code))
|
||||
return c;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void showAllCourses() {
|
||||
// TODO: Print all courses in the system
|
||||
|
||||
for (Course c : courses) {
|
||||
System.out.println(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,19 +21,36 @@ public class Student {
|
||||
}
|
||||
|
||||
public boolean addCourse(Course c) {
|
||||
// TODO: Register the student in the course if capacity allows
|
||||
// Return true if registration was successful, otherwise false
|
||||
return false;
|
||||
|
||||
if (c.getCapacity() > 0) {
|
||||
registeredCourses.add(c);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean dropCourse(Course c) {
|
||||
// TODO: Remove the course from the student's list
|
||||
// Restore the course capacity if removal was successful
|
||||
// Return true if the course was dropped, otherwise false
|
||||
for (Course a : registeredCourses) {
|
||||
if(a.getCourseCode().equals(c.getCourseCode())) {
|
||||
registeredCourses.remove(c);
|
||||
c.setCanDrop(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void showRegisteredCourses() {
|
||||
// TODO: Print all registered courses
|
||||
|
||||
if (registeredCourses.isEmpty()) {
|
||||
System.out.println("you have not registered in any courses yet");
|
||||
return;
|
||||
}
|
||||
|
||||
System.out.println("your registered courses: ");
|
||||
for (Course c : registeredCourses) {
|
||||
System.out.println(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user