First, you need to design, code in Java, test, and document a base class, Student. The Student class will have the following information, and all of these should be defined as Private:
A. Title of the student (eg Mr, Miss, Ms, Mrs, etc)
B. A first name (given name)
C. A last name (family name/surname)
D. Student number (ID) – an integer number (of type long)
E. A date of birth (in day/month/year format – three ints) – (Do NOT use the Date class from JAVA)
The student class will have at least the following constructors and methods:
(i) two constructors – one without any parameters (the default constructor), and one with parameters to give initial values to all the instance variables. Principles of Computer Science Homework help
(ii) only necessary set and get methods for a valid class design.
(iii) method to write the output of all the instance variables in the class to the screen (which will be overridden in the respective child classes, as you have more instance variables that required to be output).
(iv) an equals method which compares two student objects and returns true if they have the same student names, and the same date of birth, otherwise it returns false
Your client class (program) will provide the user with a menu to perform the following operations. You will need to think of a way to ask the user whether they are dealing with the coursework student or research student. You will also need to load the information of the students from a text file (student.txt) before displaying the menu. You only need one ArrayList and one menu for this.
2. Add (to the ArrayList) all the marks information about a coursework or research student by reading it from another text file and determine the student’s overall mark and grade.
You will need to consider how to deal with the different assessment components for the coursework and research students. You may use two different text files, one for coursework students and another for research students. The program should read the correct text file for this purpose. Use Exception Handling if the student cannot be found in the ArrayList.
3. Given student number (ID), remove the specified student and relevant information from the ArrayList. It is always good to ask the user to confirm again before removing the record. For confirmation, output the student number (ID) and the name to the user.
4. Output from the ArrayList the details (all information including the overall mark and the grade) of all students currently held in the ArrayList. Principles of Computer Science Homework help
5. Compute and output the overall mark and grade for coursework or research students
6. Determine and display how many coursework or research students obtained an overall mark equal to or above the average overall mark and how many obtained an overall mark below the average overall mark
7. Given a coursework or research student number (ID), view all details of the student with that number. If the student is not found in the ArrayList, an appropriate error message is to be displayed
8. Given a coursework or research student’s name (both surname and given name – ignoring case), view all details of that student. If the student is not found in the ArrayList, an appropriate error message is to be displayed. If more than one student having the same name, display all of them.
9. Sort the ArrayList of the student objects into ascending order of the students’ numbers (IDs), and output the sorted array – implement an appropriate sorting algorithm for this, and explain why such algorithm is selected (in internal and external documentation).
10. Output the sorted ArrayList from (9) to a CSV file. If the ArrayList is not sorted, this option cannot be selected.
Distribution of marks for assessment
An approximate distribution of marks for assessment is given below. The question will be marked out of 100 as follows:
Correct solution design and implementation:
(which includes the design and implementation of classes as specified in the question above; programming style, use of comments, use of methods, parameters, input validation, readability, presentation of output, etc.)
External Documentation (problem specification, pseudocode, program limitations, program testing and test results, program listings, etc.): Principles of Computer Science Homework help