import [Link].
ArrayList;
import [Link];
public class SchoolManagementSystem {
// Classes to represent students, teachers, and courses
static class Student {
String name;
int rollNo;
ArrayList<Course> enrolledCourses;
public Student(String name, int rollNo) {
[Link] = name;
[Link] = rollNo;
[Link] = new ArrayList<>();
}
}
static class Teacher {
String name;
String subject;
ArrayList<Course> assignedCourses;
public Teacher(String name, String subject) {
[Link] = name;
[Link] = subject;
[Link] = new ArrayList<>();
}
}
static class Course {
String name;
Teacher teacher;
public Course(String name, Teacher teacher) {
[Link] = name;
[Link] = teacher;
}
}
// Main program
public static void main(String[] args) {
Scanner scanner = new Scanner([Link]);
ArrayList<Student> students = new ArrayList<>();
ArrayList<Teacher> teachers = new ArrayList<>();
ArrayList<Course> courses = new ArrayList<>();
// Main menu
while (true) {
[Link]("\nSchool Management System");
[Link]("1. Add Student");
[Link]("2. Add Teacher");
[Link]("3. Add Course");
[Link]("4. Enroll Student in Course");
[Link]("5. Assign Teacher to Course");
[Link]("6. View Student Details");
[Link]("7. View Teacher Details");
[Link]("8. View Course Details");
[Link]("9. Exit");
[Link]("Enter your choice: ");
int choice = [Link]();
[Link](); // Consume the newline character
switch (choice) {
case 1:
// Add student
[Link]("Enter student name: ");
String studentName = [Link]();
[Link]("Enter student roll number: ");
int rollNo = [Link]();
[Link](); // Consume the newline character
Student student = new Student(studentName, rollNo);
[Link](student);
[Link]("Student added successfully.");
break;
case 2:
// Add teacher
[Link]("Enter teacher name: ");
String teacherName = [Link]();
[Link]("Enter teacher subject: ");
String subject = [Link]();
Teacher teacher = new Teacher(teacherName, subject);
[Link](teacher);
[Link]("Teacher added successfully.");
break;
case 3:
// Add course
[Link]("Enter course name: ");
String courseName = [Link]();
[Link]("Enter teacher's name for this course: ");
String teacherNameForCourse = [Link]();
Teacher teacherForCourse = null;
for (Teacher t : teachers) {
if ([Link](teacherNameForCourse)) {
teacherForCourse = t;
break;
}
}
if (teacherForCourse != null) {
Course course = new Course(courseName, teacherForCourse);
[Link](course);
[Link](course);
[Link]("Course added successfully.");
} else {
[Link]("Teacher not found.");
}
break;
case 4:
// Enroll student in course
[Link]("Enter student's roll number: ");
int studentRollNo = [Link]();
[Link](); // Consume the newline character
[Link]("Enter course name: ");
String courseNameToEnroll = [Link]();
Student studentToEnroll = null;
Course courseToEnroll = null;
for (Student s : students) {
if ([Link] == studentRollNo) {
studentToEnroll = s;
break;
}
}
for (Course c : courses) {
if ([Link](courseNameToEnroll)) {
courseToEnroll = c;
break;
}
}
if (studentToEnroll != null && courseToEnroll != null) {
[Link](courseToEnroll);
[Link]("Student enrolled in course
successfully.");
} else {
[Link]("Student or course not found.");
}
break;
case 5:
// Assign teacher to course
[Link]("Enter teacher's name: ");
String teacherNameToAssign = [Link]();
[Link]("Enter course name: ");
String courseNameToAssign = [Link]();
Teacher teacherToAssign = null;
Course courseToAssign = null;
for (Teacher t : teachers) {
if ([Link](teacherNameToAssign)) {
teacherToAssign = t;
break;
}
}
for (Course c : courses) {
if ([Link](courseNameToAssign)) {
courseToAssign = c;
break;
}
}
if (teacherToAssign != null && courseToAssign != null) {
[Link] = teacherToAssign;
[Link](courseToAssign);
[Link]("Teacher assigned to course
successfully.");
} else {
[Link]("Teacher or course not found.");
}
break;
case 6:
// View student details
[Link]("Enter student's roll number: ");
int rollNoToView = [Link]();
[Link](); // Consume the newline character
Student studentToView = null;
for (Student s : students) {
if ([Link] == rollNoToView) {
studentToView = s;
break;
}
}
if (studentToView != null) {
[Link]("\nStudent Details:");
[Link]("Name: " + [Link]);
[Link]("Roll Number: " + [Link]);
[Link]("Enrolled Courses:");
for (Course c : [Link]) {
[Link]("- " + [Link] + " (Taught by " +
[Link] + ")");
}
} else {
[Link]("Student not found.");
}
break;
case 7:
// View teacher details
[Link]("Enter teacher's name: ");
String teacherNameToView = [Link]();
Teacher teacherToView = null;
for (Teacher t : teachers) {
if ([Link](teacherNameToView)) {
teacherToView = t;
break;
}
}
if (teacherToView != null) {
[Link]("\nTeacher Details:");
[Link]("Name: " + [Link]);
[Link]("Subject: " + [Link]);
[Link]("Assigned Courses:");
for (Course c : [Link]) {
[Link]("- " + [Link]);
}
} else {
[Link]("Teacher not found.");
}
break;
case 8:
// View course details
[Link]("Enter course name: ");
String courseNameToView = [Link]();
Course courseToView = null;
for (Course c : courses) {
if ([Link](courseNameToView)) {
courseToView = c;
break;
}
}
if (courseToView != null) {
[Link]("\nCourse Details:");
[Link]("Name: " + [Link]);
[Link]("Teacher: " +
[Link]);
} else {
[Link]("Course not found.");
}
break;
case 9:
// Exit
[Link]("Exiting program...");
[Link]();
[Link](0);
default:
[Link]("Invalid choice. Please try again.");
}
}
}
}