java language (ArrayList)
The Registrar Office at the university has asked you to help them write a Student Information System (SIS). The system can be used to store information about students, courses, and students' transcripts (courses already taken by a student). · Define a class called StudentType that holds information about a student (student ID, first name, last name, major). · Implement each member function (set, get, print, constructor, etc) in the class. · Define a class called CourseType that holds information about a course (course code, course title, number of credits). · Implement each member function (set, get, print, constructor, etc.) in the class. · Define a class called RecordType that holds information about the courses that a student has already taken (student ID, course code, course total mark, course grade, semester taken). · Implement each member function (set, get, print, constructor, etc.) in the class. Write a number of member functions that do the following: - Calculate the student GPA - Search for the highest mark taken in a particular course - Print the ID, first name, and last name of all the students who have already taken a particular course - Print the course code, course title, course mark, course grade of all courses taken by a particular student Write a main program that does the following: - Define an array of objects of each one of the above three classes - Assign data to the objects that you defined. This data should be stored and read from 3 different files - Read a student ID - Print a list of all courses taken by that student - Calculate the GPA of that student - Read a course code - Print the ID, first name, and last name of all the students who have taken that course - Search for the highest mark taken in that course - Print the ID, first name, and last name of the student who scored that highest mark in that course