TEXT   35

Untitled

Guest on 12th January 2022 07:22:36 AM

  1. Course.java:
  2.  
  3. import java.util.ArrayList;
  4.  
  5. public class Course {
  6.    private String id;
  7.    private String name;
  8.    private Instructor instructor;
  9.    private ArrayList<Student> students;
  10.  
  11.    public Course(String id, String name) {
  12.        this.id = id;
  13.        this.name = name;
  14.        students = new ArrayList<Student>();
  15.  
  16.    }
  17.  
  18.    public void addStudent(Student a) {
  19.        students.add(a);
  20.    }
  21.  
  22.    public void removeStudent(Student b) {
  23.        students.remove(b);
  24.    }
  25.  
  26.    public String getId() {
  27.        return id;
  28.    }
  29.  
  30.    public String getName() {
  31.        return name;
  32.    }
  33.  
  34.    public Instructor getInstructor() {
  35.        return instructor;
  36.    }
  37.  
  38.    public ArrayList<Student> getStudents() {
  39.        return students;
  40.    }
  41.  
  42.    public void setInstructor(Instructor instructor) {
  43.        this.instructor = instructor;
  44.  
  45.    }
  46.  
  47.    public void listStudents() {
  48.        System.out.println("Students registered in " + this.getName());
  49.        for (int i = 0; i < students.size(); i++) {
  50.            System.out.println("" + students.get(i).getName());
  51.        }
  52.    }
  53.  
  54.    public String toString() {
  55.        return "This course's id is " + this.getId() + ". The name is " + this.getName();
  56.    }
  57.  
  58. }
  59.  
  60. Department.java:
  61.  
  62. import java.util.ArrayList;
  63.  
  64. public class Department {
  65.  
  66.    private String name;
  67.    private ArrayList<Course> courses;
  68.    private ArrayList<Instructor> instructors;
  69.    private ArrayList<Student> students;
  70.  
  71.    public Department(String name) {
  72.        this.name = name;
  73.        courses = new ArrayList<Course>();
  74.        instructors = new ArrayList<Instructor>();
  75.        students = new ArrayList<Student>();
  76.  
  77.    }
  78.  
  79.    public void addInstructor(String a) {
  80.        Instructor ins = new Instructor(a);
  81.        instructors.add(ins);
  82.    }
  83.  
  84.    public void addStudent(String a) {
  85.        Student ýnd = new Student(a);
  86.        students.add(ýnd);
  87.    }
  88.  
  89.    public void assignInstructorToCourse(String instructorName, String courseId) {
  90.        int x1 = 0;
  91.        int x2 = 0;
  92.        int y1 = 0;
  93.        int y2 = 0;
  94.  
  95.        for (int i = 0; i < instructors.size(); i++) {
  96.  
  97.            if (instructors.get(i).getName().equals(instructorName)) {
  98.                x1 = 1;
  99.                x2 = i;
  100.            }
  101.        }
  102.  
  103.        if (x1 == 0) {
  104.            System.out.println("Instructor Not Found: " + instructorName);
  105.        }
  106.  
  107.        for (int i = 0; i < courses.size(); i++) {
  108.  
  109.            if (courses.get(i).getId().equals(courseId)) {
  110.                y1 = 1;
  111.                y2 = i;
  112.            }
  113.        }
  114.  
  115.        if (y1 == 0) {
  116.            System.out.println("Course not found: " + courseId);
  117.        }
  118.  
  119.        if (x1 == 1 && y1 == 1) {
  120.            instructors.get(x2).addCourse(courses.get(y2));
  121.            courses.get(y2).setInstructor(instructors.get(x2));
  122.  
  123.        }
  124.    }
  125.  
  126.    public void createCourse(String courseId, String courseName) {
  127.        Course c = new Course(courseId, courseName);
  128.        courses.add(c);
  129.    }
  130.  
  131.    public Course getCourse(String st) {
  132.        int x = 0;
  133.        for (int i = 0; i < courses.size(); i++) {
  134.            if (courses.get(i).getId().equals(st) || courses.get(i).getName().equals(st)) {
  135.                x = i;
  136.            }
  137.        }
  138.        return courses.get(x);
  139.  
  140.    }
  141.  
  142.    public ArrayList<Student> getStudents() {
  143.        return students;
  144.    }
  145.  
  146.    public Instructor getInstructorByName(String st) {
  147.        int x = -1;
  148.        for (int i = 0; i < instructors.size(); i++) {
  149.            if (instructors.get(i).getName().equals(st)) {
  150.                x = i;
  151.            }
  152.        }
  153.        if (x == -1) {
  154.            return null;
  155.        }
  156.        return instructors.get(x);
  157.    }
  158.  
  159.    public void listInstructors() {
  160.        System.out.println("Instructors registered in this department are: ");
  161.        for (int i = 0; i < instructors.size(); i++) {
  162.            System.out.println("" + instructors.get(i).getId() + ", " + instructors.get(i).getName() + ", "
  163.                    + instructors.get(i).getEmail());
  164.  
  165.        }
  166.    }
  167.  
  168.    public void listCourses() {
  169.        System.out.println("Courses given by this department are: ");
  170.        int x = 0;
  171.        for (int i = 0; i < courses.size(); i++) {
  172.            if (instructors.get(x).getCourses().size() != 0) {
  173.                if (courses.get(i).getName().equals(instructors.get(x).getCourses().get(0).getName())) {
  174.                    System.out.println("" + courses.get(i).getId() + " " + courses.get(i).getName() + " by "
  175.                            + instructors.get(x).getName());
  176.                    x++;
  177.                } else {
  178.                    System.out.println("" + courses.get(i).getId() + " " + courses.get(i).getName());
  179.  
  180.                }
  181.            }
  182.  
  183.            else {
  184.                System.out.println("" + courses.get(i).getId() + " " + courses.get(i).getName());
  185.            }
  186.        }
  187.    }
  188.  
  189.    public void listStudents() {
  190.        System.out.println("Students registered in this department are: ");
  191.        for (int i = 0; i < students.size(); i++) {
  192.            System.out.println("" + students.get(i).getId() + ", " + students.get(i).getEmail() + ", "
  193.                    + students.get(i).getName());
  194.        }
  195.  
  196.    }
  197.  
  198.    public ArrayList<Instructor> getInstructors() {
  199.        return instructors;
  200.    }
  201.  
  202. }
  203.  
  204. GradeItem.java:
  205.  
  206. public class GradeItem {
  207.    private String courseId;
  208.    private String examId;
  209.    private int grade;
  210.  
  211.    public GradeItem(String courseId, String examId, int grade) {
  212.        this.courseId = courseId;
  213.        this.examId = examId;
  214.        this.grade = grade;
  215.    }
  216.  
  217.    public String getCourseId() {
  218.        return courseId;
  219.    }
  220.  
  221.    public String getExamId() {
  222.        return examId;
  223.    }
  224.  
  225.    public int getGrade() {
  226.        return grade;
  227.    }
  228.  
  229.    public String toString() {
  230.        return "This GradeItems's courseID is " + this.getCourseId() + " and examID is" + this.getExamId()
  231.                + " and grade is " + this.getGrade();
  232.    }
  233.  
  234. }
  235.  
  236. Instructor.java:
  237.  
  238. import java.util.ArrayList;
  239. import java.util.Random;
  240.  
  241. public class Instructor extends Person {
  242.  
  243.    private ArrayList<Course> courses;
  244.  
  245.    public Instructor(String name) {
  246.        super(name);
  247.        courses = new ArrayList<Course>();
  248.        initEmail();
  249.  
  250.    }
  251.  
  252.    public void addCourse(Course a) {
  253.        courses.add(a);
  254.  
  255.    }
  256.  
  257.    public ArrayList<Course> getCourses() {
  258.        return courses;
  259.    }
  260.  
  261.    public void initEmail() {
  262.        String[] xd = this.getName().toLowerCase().split(" ");
  263.  
  264.        String ak = "";
  265.        for (int i = 0; i < xd.length; i++) {
  266.  
  267.            if (i == 0) {
  268.                ak = ak + "" + xd[i];
  269.                ak = ak + ".";
  270.            }
  271.            if (i == 1) {
  272.                ak = ak + "" + xd[i];
  273.                ak = ak + "@ozyegin.edu.tr";
  274.            }
  275.        }
  276.  
  277.        this.setEmail(ak);
  278.    }
  279.  
  280.    public void registerExamGrades(String courseId, String examId) {
  281.        Random rgn = new Random();
  282.  
  283.        int y = 0;
  284.        int ds = 0;
  285.        for (int i = 0; i < courses.size(); i++) {
  286.            if (courseId.equals(courses.get(i).getId())) {
  287.                y = 1;
  288.                ds = i;
  289.                break;
  290.            }
  291.        }
  292.        if (y == 0) {
  293.            System.out.println("Instructor " + this.getName() + " cannot grade the " + courseId + ".");
  294.        }
  295.        if (y == 1) {
  296.            for (int i = 0; i < courses.get(ds).getStudents().size(); i++) {
  297.                int x = rgn.nextInt(100);
  298.                GradeItem dýdýn = new GradeItem(courseId, examId, x);
  299.                courses.get(ds).getStudents().get(i).getGrades().add(dýdýn);
  300.            }
  301.        }
  302.    }
  303.  
  304.    public void listGradesForExam(String courseId, String examId) {
  305.        System.out.println("" + courseId + " " + examId + " grades are: ");
  306.        int xyz = 0;
  307.        int x = 0;
  308.        for (int i = 0; i < courses.size(); i++) {
  309.            if (courseId.equals(courses.get(i).getId())) {
  310.                xyz = 1;
  311.                x = i;
  312.                break;
  313.            }
  314.        }
  315.        if (xyz == 1) {
  316.            for (int a = 0; a < courses.get(x).getStudents().size(); a++) {
  317.                System.out.println("" + courses.get(x).getStudents().get(a).getName() + ": ["
  318.                        + courses.get(x).getStudents().get(a).getGradeItem(courseId, examId).getExamId() + ": "
  319.                        + courses.get(x).getStudents().get(a).getGradeItem(courseId, examId).getGrade() + "]");
  320.            }
  321.  
  322.        }
  323.  
  324.    }
  325.  
  326.    public void printAverageGradeForExam(String courseId, String examId) {
  327.        System.out.print("" + courseId + " " + examId + " average grade is:");
  328.        int xyz = 0;
  329.        int x = 0;
  330.        double gradetoplam = 0;
  331.        int sayac = 0;
  332.        for (int i = 0; i < courses.size(); i++) {
  333.            if (courseId.equals(courses.get(i).getId())) {
  334.                xyz = 1;
  335.                x = i;
  336.                break;
  337.            }
  338.        }
  339.        if (xyz == 1) {
  340.            for (int a = 0; a < courses.get(x).getStudents().size(); a++) {
  341.  
  342.                gradetoplam = gradetoplam
  343.                        + courses.get(x).getStudents().get(a).getGradeItem(courseId, examId).getGrade();
  344.                sayac++;
  345.            }
  346.  
  347.        }
  348.        System.out.println("" + gradetoplam / sayac);
  349.  
  350.    }
  351.  
  352. }
  353.  
  354. Person.java:
  355.  
  356. public abstract class Person {
  357.  
  358.    private String id;
  359.    private String name;
  360.    private String email;
  361.    public static int x = 0;
  362.  
  363.    public Person(String name) {
  364.        this.name = name;
  365.        idCreator();
  366.    }
  367.  
  368.    public abstract void initEmail();
  369.  
  370.    public String getId() {
  371.        return id;
  372.    }
  373.  
  374.    public String getName() {
  375.        return name;
  376.    }
  377.  
  378.    public String getEmail() {
  379.        return email;
  380.    }
  381.  
  382.    public void setEmail(String email) {
  383.        this.email = email;
  384.    }
  385.  
  386.    public void idCreator() {
  387.        x++;
  388.        String[] xd = this.getName().toLowerCase().split(" ");
  389.  
  390.        if (x < 10) {
  391.            id = xd[0].charAt(0) + "" + xd[1].charAt(0) + "000" + x;
  392.        }
  393.        if (x >= 10) {
  394.            id = xd[0].charAt(0) + "" + xd[1].charAt(0) + "00" + x;
  395.        }
  396.    }
  397.  
  398.    public String toString() {
  399.        return "My id is " + this.getId() + ". My name is " + this.getName() + ". My email is " + this.getEmail();
  400.    }
  401. }
  402.  
  403. Student.java:
  404.  
  405. import java.util.ArrayList;
  406.  
  407. public class Student extends Person {
  408.  
  409.    private ArrayList<Course> enrolledCourses;
  410.    private ArrayList<GradeItem> grades;
  411.  
  412.    public Student(String name) {
  413.        super(name);
  414.        enrolledCourses = new ArrayList<Course>();
  415.        grades = new ArrayList<GradeItem>();
  416.        initEmail();
  417.    }
  418.  
  419.    public void initEmail() {
  420.        String[] xd = this.getName().toLowerCase().split(" ");
  421.        String ak = "";
  422.        for (int i = 0; i < xd.length; i++) {
  423.  
  424.            if (i == 0) {
  425.                ak = ak + "" + xd[i];
  426.                ak = ak + ".";
  427.            }
  428.            if (i == 1) {
  429.                ak = ak + "" + xd[i];
  430.                ak = ak + "@ozyegin.edu.tr";
  431.            }
  432.        }
  433.        this.setEmail(ak);
  434.    }
  435.  
  436.    public void registerToCourse(Course course) {
  437.  
  438.        enrolledCourses.add(course);
  439.        course.addStudent(this);
  440.  
  441.        if (course.getInstructor() == null) {
  442.            System.out.println("Course not available");
  443.        }
  444.    }
  445.  
  446.    public void dropCourse(Course course) {
  447.        enrolledCourses.remove(course);
  448.        course.removeStudent(this);
  449.    }
  450.  
  451.    public GradeItem getGradeItem(String courseId, String examId) {
  452.        int x = -1;
  453.        for (int i = 0; i < grades.size(); i++) {
  454.            if (grades.get(i).getCourseId().equals(courseId) && grades.get(i).getExamId().equals(examId)) {
  455.                x = i;
  456.            }
  457.        }
  458.        if (x == -1) {
  459.            return null;
  460.        }
  461.  
  462.        return grades.get(x);
  463.  
  464.    }
  465.  
  466.    public void listGrades() {
  467.        for (int i = 0; i < grades.size(); i++) {
  468.            if (i != 0) {
  469.                if (grades.get(i - 1).getCourseId().equals(grades.get(i).getCourseId())) {
  470.                    System.out.println(" [" + grades.get(i).getExamId() + ": " + grades.get(i).getGrade() + "]");
  471.                } else {
  472.                    System.out.println("" + grades.get(i).getCourseId() + " grades of " + this.getName() + " ["
  473.                            + grades.get(i).getExamId() + ": " + grades.get(i).getGrade() + "]");
  474.                }
  475.            } else {
  476.                System.out.println("" + grades.get(i).getCourseId() + " grades of " + this.getName() + " ["
  477.                        + grades.get(i).getExamId() + ": " + grades.get(i).getGrade() + "]");
  478.            }
  479.        }
  480.  
  481.    }
  482.  
  483.    public ArrayList<GradeItem> getGrades() {
  484.        return grades;
  485.    }
  486.  
  487. }
  488.  
  489. SampleMain.java:
  490.  
  491. import java.util.Random;
  492.  
  493. public class SampleMain {
  494.  
  495.    public static void main(String[] args) {
  496.  
  497.        System.out.println("-----------------1-------------------");
  498.        Department department = new Department("Computer Science");
  499.  
  500.        department.addInstructor("Reyyan Yeniterzi");
  501.        department.addInstructor("Reyhan Aydogan");
  502.        department.addInstructor("Murat Sensoy");
  503.        department.listInstructors();
  504.  
  505.        System.out.println("-----------------2-------------------");
  506.  
  507.        department.createCourse("CS102", "Object Oriented Programming");
  508.        department.createCourse("CS201", "Data Structures");
  509.        department.createCourse("CS101", "Introduction to CS");
  510.        department.createCourse("CS404", "Digital Image Processing");
  511.  
  512.        department.listCourses();
  513.  
  514.        System.out.println("----------------3--------------------");
  515.  
  516.        department.assignInstructorToCourse("Reyyan Yeniterzi", "CS102");
  517.        department.assignInstructorToCourse("Reyhan Aydogan", "CS101");
  518.        department.assignInstructorToCourse("Reyyan Aydogan", "CS102");
  519.        department.assignInstructorToCourse("Murat Sensoy", "CS333");
  520.  
  521.        department.listCourses();
  522.  
  523.        System.out.println("------------------4------------------");
  524.  
  525.        for (int i = 0; i < 10; i++)
  526.            department.addStudent(createRandomName());
  527.  
  528.        department.listStudents();
  529.  
  530.        System.out.println("------------------5------------------");
  531.  
  532.        Course oop = department.getCourse("CS102");
  533.        for (int i = 0; i < 5; i++) {
  534.            Student student = department.getStudents().get(i);
  535.            student.registerToCourse(oop);
  536.  
  537.        }
  538.  
  539.        oop.listStudents();
  540.  
  541.        System.out.println("-----------------6-------------------");
  542.  
  543.        Course intro = department.getCourse("Introduction to CS");
  544.        for (int i = 0; i < 3; i++) {
  545.            Student student = department.getStudents().get(i);
  546.            student.registerToCourse(intro);
  547.        }
  548.  
  549.        intro.listStudents();
  550.  
  551.        System.out.println("------------------7------------------");
  552.  
  553.        Student student = department.getStudents().get(2);
  554.        student.dropCourse(oop);
  555.        oop.listStudents();
  556.  
  557.        System.out.println("------------------8------------------");
  558.  
  559.        Course image = department.getCourse("CS404");
  560.        student.registerToCourse(image); // no instructor is assigned to course,
  561.                                            // print error message
  562.  
  563.        System.out.println("-----------------9-------------------");
  564.  
  565.        Instructor reyyan = department.getInstructorByName("Reyyan Yeniterzi");
  566.        reyyan.registerExamGrades("CS102", "Midterm-1");
  567.        reyyan.registerExamGrades("CS102", "Midterm-2");
  568.  
  569.        Instructor murat = department.getInstructorByName("Murat Sensoy");
  570.        murat.registerExamGrades("CS102", "Midterm-3"); // instructor murat does
  571.                                                        // not have the course,
  572.                                                        // print error
  573.        Instructor reyhan = department.getInstructorByName("Reyhan Aydogan");
  574.        reyhan.registerExamGrades("CS101", "Midterm-1");
  575.  
  576.        System.out.println("---------------------10---------------");
  577.  
  578.        Student student0 = department.getStudents().get(0);
  579.        student0.listGrades();
  580.  
  581.        System.out.println("-------------------11-----------------");
  582.  
  583.        reyyan.listGradesForExam("CS102", "Midterm-1");
  584.  
  585.        System.out.println("------------------12------------------");
  586.  
  587.        reyyan.printAverageGradeForExam("CS102", "Midterm-1");
  588.  
  589.    }
  590.  
  591.    /*
  592.    * creates a random name
  593.    */
  594.    private static String createRandomName() {
  595.        String[] firstNames = { "Ali", "Ayse", "Ahmet", "Mehmet", "Mustafa", "Gizem", "Sibel", "Burak", "Bahar" };
  596.        String[] lastNames = { "Yilmaz", "Caliskan", "Korkmaz", "Kaya", "Akar", "Sonmez", "Celikoglu" };
  597.  
  598.        Random random = new Random();
  599.  
  600.        String firstName = firstNames[random.nextInt(firstNames.length)];
  601.        String lastName = lastNames[random.nextInt(lastNames.length)];
  602.        String name = firstName + " " + lastName;
  603.  
  604.        return name;
  605.  
  606.  

Raw Paste


Login or Register to edit or fork this paste. It's free.