Unit class: (a) Enrolment type: C for course work enrolment and R for research enrolment. (b)...
Fantastic news! We've Found the answer you've been seeking!
Question:
Transcribed Image Text:
Unit class: (a) Enrolment type: "C" for course work enrolment and "R" for research enrolment. (b) A final grade reporting method for reporting the "NA" for not available. Course work unit (Unit_Course class): (a) Will have the information of the unit ID (of type string; e.g., ICT333), and the level of the unit (of type integer; e.g., 3 for third year) (b) There are two assignments, each marked out of a maximum of 100 marks and equally weighted. The marks for each assignment are recorded separately. (c) There is one final examination that is marked out of a maximum of 100 marks and recorded separately. (d) An overall mark (to be calculated within the class) (e) A final grade, which is a string (avoid code duplication for calculating this) The final grade is to be awarded on the basis of an overall mark, which is a number in the range 0 to 100 and is obtained by calculating the weighted average of the student's performance in the assessment components. The criteria for calculating the weighted average is as defined below: The two assignments together count for a total of 60% (30% each) of the final grade, and the final exam is worth 40% of the final grade. A grade is to be awarded for the students as follows: An overall mark of 80 or higher is an HD, an overall mark of 70 or higher (but less than 80) is a D, an overall mark of 60 or higher (but less than 70) is a C, an overall mark of 50 or higher (but less than 60) is a P, and an overall mark below 50 is an N. Research enrolment (Research class): (a) Enrolment type as "R" (b) There is a proposal, marked out of a maximum of 100 mark. (c) There is a final dissertation, marked out of a maximum of 100 mark. (d) An overall mark (to be calculated within the class) (e) A final grade, which is a string (avoid code duplication for calculating this) The final grade is to be awarded on the basis of an overall mark, which is a number in the range 0 to 100 and is obtained by calculating the weighted average of the student's performance in the assessment components. The criteria for calculating the weighted average is as defined below: The proposal is worth 40% of the final grade, and the final dissertation is worth 60% of the final grade. A grade is to be awarded for the students as follows: An overall mark of 80 or higher is an HD, an overall mark of 70 or higher (but less than 80) is a D, an overall mark of 60 or higher (but less than 70) is a C, an overall mark of 50 or higher (but less than 60) is a P, and an overall mark below 50 is an N. Client class: The client program will allow entry of these data for several different student into an ArrayList and then perform some analysis and queries. Your client class (program) will provide the user with a menu to perform the following operations. You will also need to load the information of the students from a CSV file (student.csv) before displaying the menu. You only need one ArrayList and one menu for this. For the csv file, your first item can be C or R to differentiate whether the entry is creating a Student Course object, or a Student Research object. You can then decide how you want other data to be listed in the csv file. Make sure you provide documentation to explain how your data is listed in the csv file. You should specify clearly in your documentation the data format of the CSV files used in this assignment. 1. Quit (exit the program) 2. Add (to the ArrayList) all the marks information about a course work student or a research student by reading it from another CSV file. Your program will ask for the file name. 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 all details currently held in the ArrayList. 5. Determine and display how many course work 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. Note: You only need to perform this task on course work students only. 6. Given a student number (ID), report the grade information (using reportGrade) of the student with that number. If the student is not found in the ArrayList, an appropriate error message is to be displayed 7. Sort the ArrayList of the student objects into ascending order of the students' numbers (IDs), and output the sorted array - implement bubble sort algorithm for this, and explain how this sorting algorithm is different to the insertion sort algorithm (in external documentation). 8. Output the sorted ArrayList from (7) to a CSV file. If the ArrayList is not sorted, this option cannot be selected. Remember to include the identification of whether the student is course work student (C) or research student (R). Note that the program will loop around until the user selects the first option (Quit). Set up a student ArrayList of N student objects, and test it with N = 10 (at least). You have to store your test data in a file so that your program can read them. You should use 5 course work students and 5 research students in your test. Consider all possible enrolment types in your test. The interaction with the user can be via the command line (i.e., no graphical user interface is expected). Devise suitable test data to test all sections of program code. You will need to provide all the test data used. Your client program should also include a method (e.g., StudentInfo()) to output your student details (name, student number, mode of enrolment, tutor name, tutorial attendance day and time) at the start of program results. Note: The question requires you to use an ArrayList. Also, the sorting algorithm used must be coded within your program and not called from any Java libraries. You should not use any Java libraries for sorting algorithm and output to CSV file (e.g. FileWriter). You are required to use only materials covered in the lecture notes and the textbook to complete this assignment. Required External Documentation: 1. Title: a paragraph clearly stating title, author, date, file names, and one-line statement of purpose. 2. Requirements/Specification: a paragraph giving a brief account of what the program is supposed to do. State any assumptions or conditions on the form of input and expected output. Need to explain clearly how you implement the following in your code: Inheritance Polymorphism. Dynamic binding Sorting algorithm Handling CSV files 3. User Guide: include clear instructions on how to access, compile and run the program. 4. Structure/Design/Algorithm: Outline the design of your program. Give a written description, provide the diagrams (you have to provide the Structure Diagram, the UML Inheritance Class Diagram) and use pseudocode for algorithms. 5. Limitations: Describe program shortfalls (if any), eg the features asked for but not implemented, the situations it cannot handle etc. Assignment 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. A first name (given name) B. A last name (family name/surname) C. Student number (ID) - an integer number (of type long) 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 of Student. (ii) only necessary set and get methods for a valid class design. (iii) a reportGrade method, which you have nothing to report here, you can just print to the screen a message "There is no grade here.". This method will be overridden in the respective child classes. (iv) an equals method which compares two student objects and returns true if they have the same student number (ID), otherwise it returns false. You may add other methods in the Student class as you see appropriate, however you will need to justify why those methods are required. Design, code in Java, test and document (at least) the following classes - a student Course class, a Student Research class (both derived from the Student class) a Unit_Course class, Research class (both derived from the Unit class specified below) and a Client class. Assuming in this program, you allow multiple student objects to be created (i.e., arraylist of student objects). For course work students (Student Course class): (a) Contain enrolment type. (b) Provide a reportGrade method such that it will output "C" (to identify as course work student), the Name (first name and last name), student number, the unit ID, the overall mark, and the final grade of the student. For research students (Student Research class): (a) Contain enrolment type. (b) Provide a reportGrade method such that it will output "R" (to identify as research student), the Name (first name and last name), student number, the overall mark, and the final grade of the student. Unit class: (a) Enrolment type: "C" for course work enrolment and "R" for research enrolment. (b) A final grade reporting method for reporting the "NA" for not available. Course work unit (Unit_Course class): (a) Will have the information of the unit ID (of type string; e.g., ICT333), and the level of the unit (of type integer; e.g., 3 for third year) (b) There are two assignments, each marked out of a maximum of 100 marks and equally weighted. The marks for each assignment are recorded separately. (c) There is one final examination that is marked out of a maximum of 100 marks and recorded separately. (d) An overall mark (to be calculated within the class) (e) A final grade, which is a string (avoid code duplication for calculating this) The final grade is to be awarded on the basis of an overall mark, which is a number in the range 0 to 100 and is obtained by calculating the weighted average of the student's performance in the assessment components. The criteria for calculating the weighted average is as defined below: The two assignments together count for a total of 60% (30% each) of the final grade, and the final exam is worth 40% of the final grade. A grade is to be awarded for the students as follows: An overall mark of 80 or higher is an HD, an overall mark of 70 or higher (but less than 80) is a D, an overall mark of 60 or higher (but less than 70) is a C, an overall mark of 50 or higher (but less than 60) is a P, and an overall mark below 50 is an N. Research enrolment (Research class): (a) Enrolment type as "R" (b) There is a proposal, marked out of a maximum of 100 mark. (c) There is a final dissertation, marked out of a maximum of 100 mark. (d) An overall mark (to be calculated within the class) (e) A final grade, which is a string (avoid code duplication for calculating this) The final grade is to be awarded on the basis of an overall mark, which is a number in the range 0 to 100 and is obtained by calculating the weighted average of the student's performance in the assessment components. The criteria for calculating the weighted average is as defined below: The proposal is worth 40% of the final grade, and the final dissertation is worth 60% of the final grade. A grade is to be awarded for the students as follows: An overall mark of 80 or higher is an HD, an overall mark of 70 or higher (but less than 80) is a D, an overall mark of 60 or higher (but less than 70) is a C, an overall mark of 50 or higher (but less than 60) is a P, and an overall mark below 50 is an N. Client class: The client program will allow entry of these data for several different student into an ArrayList and then perform some analysis and queries. Your client class (program) will provide the user with a menu to perform the following operations. You will also need to load the information of the students from a CSV file (student.csv) before displaying the menu. You only need one ArrayList and one menu for this. For the csv file, your first item can be C or R to differentiate whether the entry is creating a Student Course object, or a Student Research object. You can then decide how you want other data to be listed in the csv file. Make sure you provide documentation to explain how your data is listed in the csv file. You should specify clearly in your documentation the data format of the CSV files used in this assignment. 1. Quit (exit the program) 2. Add (to the ArrayList) all the marks information about a course work student or a research student by reading it from another CSV file. Your program will ask for the file name. 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 all details currently held in the ArrayList. 5. Determine and display how many course work 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. Note: You only need to perform this task on course work students only. 6. Given a student number (ID), report the grade information (using reportGrade) of the student with that number. If the student is not found in the ArrayList, an appropriate error message is to be displayed 7. Sort the ArrayList of the student objects into ascending order of the students' numbers (IDs), and output the sorted array - implement bubble sort algorithm for this, and explain how this sorting algorithm is different to the insertion sort algorithm (in external documentation). 8. Output the sorted ArrayList from (7) to a CSV file. If the ArrayList is not sorted, this option cannot be selected. Remember to include the identification of whether the student is course work student (C) or research student (R). Note that the program will loop around until the user selects the first option (Quit). Set up a student ArrayList of N student objects, and test it with N = 10 (at least). You have to store your test data in a file so that your program can read them. You should use 5 course work students and 5 research students in your test. Consider all possible enrolment types in your test. The interaction with the user can be via the command line (i.e., no graphical user interface is expected). Devise suitable test data to test all sections of program code. You will need to provide all the test data used. Your client program should also include a method (e.g., StudentInfo()) to output your student details (name, student number, mode of enrolment, tutor name, tutorial attendance day and time) at the start of program results. Note: The question requires you to use an ArrayList. Also, the sorting algorithm used must be coded within your program and not called from any Java libraries. You should not use any Java libraries for sorting algorithm and output to CSV file (e.g. FileWriter). You are required to use only materials covered in the lecture notes and the textbook to complete this assignment. Required External Documentation: 1. Title: a paragraph clearly stating title, author, date, file names, and one-line statement of purpose. 2. Requirements/Specification: a paragraph giving a brief account of what the program is supposed to do. State any assumptions or conditions on the form of input and expected output. Need to explain clearly how you implement the following in your code: Inheritance Polymorphism. Dynamic binding Sorting algorithm Handling CSV files 3. User Guide: include clear instructions on how to access, compile and run the program. 4. Structure/Design/Algorithm: Outline the design of your program. Give a written description, provide the diagrams (you have to provide the Structure Diagram, the UML Inheritance Class Diagram) and use pseudocode for algorithms. 5. Limitations: Describe program shortfalls (if any), eg the features asked for but not implemented, the situations it cannot handle etc. Assignment 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. A first name (given name) B. A last name (family name/surname) C. Student number (ID) - an integer number (of type long) 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 of Student. (ii) only necessary set and get methods for a valid class design. (iii) a reportGrade method, which you have nothing to report here, you can just print to the screen a message "There is no grade here.". This method will be overridden in the respective child classes. (iv) an equals method which compares two student objects and returns true if they have the same student number (ID), otherwise it returns false. You may add other methods in the Student class as you see appropriate, however you will need to justify why those methods are required. Design, code in Java, test and document (at least) the following classes - a student Course class, a Student Research class (both derived from the Student class) a Unit_Course class, Research class (both derived from the Unit class specified below) and a Client class. Assuming in this program, you allow multiple student objects to be created (i.e., arraylist of student objects). For course work students (Student Course class): (a) Contain enrolment type. (b) Provide a reportGrade method such that it will output "C" (to identify as course work student), the Name (first name and last name), student number, the unit ID, the overall mark, and the final grade of the student. For research students (Student Research class): (a) Contain enrolment type. (b) Provide a reportGrade method such that it will output "R" (to identify as research student), the Name (first name and last name), student number, the overall mark, and the final grade of the student.
Expert Answer:
Related Book For
Income Tax Fundamentals 2013
ISBN: 9781285586618
31st Edition
Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill
Posted Date:
Students also viewed these programming questions
-
A. A first name (given name) B. A last name (family name/surname) C. Student number (ID) - an integer number (of type long ) The Student class will have at least the following constructors and...
-
Let A, B be sets. Define: (a) the Cartesian product (A B) (b) the set of relations R between A and B (c) the identity relation A on the set A [3 marks] Suppose S, T are relations between A and B, and...
-
__________ is the process that occurs when a job applicant does research on an organization and concludes there is enough of a fit between themselves and a job opening to warrant submitting their...
-
Mark each item in the following list as an asset (A), liability (L), or stockholders' equity (SE) item that would appear on the balance sheet or a revenue (R) or expense (E) item that would appear on...
-
Wildhorse Company has recorded the following items in its financial records. Cash in bank $48,300 Cash in plant expansion fund 106,700 Cash on hand 13,600 Highly liquid investments 36,000 Petty cash...
-
During 2005 , Liberty's days' sales in receivables ratio was a. 39 day's b. 37 day's c. 35 day's d. 30 days
-
Mike Samson is a college football coach making a base salary of $652,800 a year ($54,400 per month). Employers are required to withhold a 6.2% Social Security tax up to a maximum base amount and a...
-
Assume you hold a portfolio. Would you buy the asset under examination if your aim is to make the portfolio you hold risk-neutral? Discuss.
-
Parker, Inc., acquires 70 percent of Sawyer Company for $420,000. The remaining 30 percent of Sawyer's outstanding shares continue to trade at a collective value of $174,000. On the acquisition date,...
-
Read the article from Black's Law Dictionary that defines of "fiduciary duty" and the consequences of breaching these duties, " Three Potential Consequences of Breach of Fiduciary Duty ". With the...
-
how to find a Financial ratio analysis for Kohl's Kohls: https://docs.google.com/spreadsheets/d/e/2PACX-1vRx4OVmi8-8k3p80UzDWqjymuwehiIZJwd6Jc-p1z4MGq1W0WZRnPj9BQSRq_nAjQqHYXcqaU6VkTJi/pubhtml
-
Please answer the following questions in a clear long answer. each question's answer in its own paragraph. the answer has to be long and clear and provides details. 1- identify a real specific...
-
What are the defining characteristics of the agglomerative clustering algorithm? Explain with example
-
1. Gaborone Fried Chicken (GFC), is a Botswana based fast food restaurant chain headquartered in Gaborone and specializes in fried chicken. It is the Southern African region's second-largest...
-
A player who expects to consume a stream of payments (x1, x2,.., XT) over periods i=1,2,..., T and who evaluates per-period payments using the utility function u(x), will evaluate his discounted sum...
-
1. What does MSb mean?
-
The following exercises are not grouped by type. Solve each equation. x610x -9
-
Lisa Sizemore, a taxpayer in the 10-15 percent tax bracket, purchased stock as an investment on July 11, 2011. She sold the stock on July 9, 2012, 2 days before qualifying for the long-term holding...
-
Carl and Jenny adopt a Russian orphan. The adoption takes 2 years and two trips to Russia and is final in 2012. They pay $6,000 in 2011 and $7,500 in 2012 of qualified adoption expenses, and have AGI...
-
In 2012, Gale and Cathy Alexander hosted an exchange student, Axel Muller, for 9 months. Axel was part of International Student Exchange Programs (a qualified organization). Axel attended tenth grade...
-
How does an auditor make a preliminary judgment about materiality during the planning phase?
-
In the Hochfelder case all of the following were factors in the case except a. The Securities Exchange Act of 1934. Data From Exchange Act 1934 When the Securities Act was passed, the Interstate...
-
Refer to the example of an auditors report issued in 1915. List the differences between the report styles in 1915 and today (refer to Chapter 1). Indicate in what ways this report would be deficient...
Study smarter with the SolutionInn App