ISOM3028 - Advanced Computer Programming

157 阅读4分钟

ISOM3028 - Advanced Computer Programming
2023/2024
Section 001
Assignment 1 Due Date: 9 April 2024 (IN CLASS)


Note: Submit both hardcopy (printed format) and softcopy.

  1. For hardcopy, you are required to submit sample inputs and outputs. You need to mention
    the author name, i.e. your name, and student no.

  2. For softcopy, please compress all the class and program files and send the compressed file
    through UMMoodle. Add comments to your code. Save your compressed file as
    “bc0xxxx_Ass1.zip”. Please remember to use your student number as part of compressed file
    name.
    You are required to create a Student Management System for school use. The system should allow
    the user to add new a student, retrieve student information, update student information, and display
    student information in the system.
    Instructions:

  3. Create a class named "Student" which extends from “Person” class, with the following
    attributes:
    • studentID (String): unique identifier for each student (Note: the studentId should be a string
    of four digits, i.e. “0123”)
    • name (String): name of the student
    • gender (String): gender of the student
    • major (String): sutdent’s major
    • midtermScore (double): the student’s midterm score
    • finalScore (double): the student’s final exam score
    • midtermWeight (double): the weight of midterm score contributing to the final grade, with
    default value 0.4
    • finalWeight (double): the weight of final exam score contributing to the final grade, with
    default value 0.6
    • finalGrade (double): calculated from midterm score and final exam score and their weights
    You decide which attributes should be defined in Person.

  4. Implement a constructor in the "Student" class that initializes the name, gender, studentID,
    major, midtermScore, and finalScore.
    2

  5. Implement the set and get methods for name, gender, and major fields. Only set methods for
    midtermScore, finalScore; and only get method for studentID.

  6. Override the toString() method to format your output of student information. Student
    information contains name, ID, major, midtermScore, finalScore, and finalGrade. Hint:
    toString() is predefined by Java. Learn this method first.

  7. Implement a calculateTotalGrade() method to calculate the finalGrade.

  8. Create a class named "ScoreManagement" to manage the scores of the students. This class
    should have the following methods:
    • enrollStudent (Student student): Adds a new student to the system. Use ArrayList.
    • findStudent (String studentID): Retrieves student info. based on the studentID.
    • dropStudent(String studentID): drop a student from the system based on the studentID.
    • inputScores(String studentID, double midtermScore, double finalScore): give midterm
    score and final exam score based on the studentID. Call the “findStudent”,
    “setMidtermScore”, and “setFinalScore” methods.
    • modifyStudentInfo(String studentID, String newName, String newMajor, double
    midtermscore, double finalscore): Change student name, major, and the scores based on
    studentID.
    • gradeSummaryStatistics() : Displays the max, min, and average of the final grades of all
    students.

  9. Create a “StudentScoreManagementSystem” class with main method to test your Student
    Management System. In the main method, create an instance of the "ScoreManagement" class
    and display the following menu containing five functions and the system will ask the user to
    input a menu item to execute a particular function:
    Menu:

    1. Add student
  10. Find student

  11. Modify student information

  12. Grade summary statistics

  13. Exit
    Enter your choice:
    For 1), the system should ask the user to input the new student name, gender ,ID (with a validity
    check, invalid then input again), major, midtermScore, and finalScore. Then, it will display the
    new student information on screen; for 2), the system will ask the user to input a student ID
    and it will display the student information if the employee is found; otherwise display error
    message "Student not found."; for 3), the system will ask user to input student ID, new name,
    3
    and new major. Then, it will modify the corresponding information of the student based on the
    ID input. If the student is not found, display error message "Student not found."; for 4), the
    system will display the grade; for 5), 代 写ISOM3028 - Advanced Computer Programmingthe program will be terminated. For menu item 1) to 4),
    the system will display the menu and ask user to input menu item again when the corresponding
    function has been finished.
    YOUR TASK:
    Run the program, add the five students below to your program, find student 0002 and 0005,
    then modify student 0002 and 0005’s information with the scores in parentheses, find 0002
    and 0005 again to make sure their information is corrected. Show the grade summary statistics.
    Then exist.
    Print out all the information shown in your console. One example with the first three students
    are shown in Sample I/O.
    Testing data: (Try to add the following student data into the system)
    Student name: David Chan
    Gender: M
    ID: 0001
    Major: BIDA
    Midterm score: 75
    Final exam score: 80
    Student name: Allen Lai
    Gender: M
    ID: 0002
    Major: BIDA
    Midterm score: 52(58)
    Final exam score: 71
    Student name: Amy Liu
    Gender: F
    4
    ID: 0003
    Major: BIDA
    Midterm score: 90
    Final exam score: 85
    Student name: Grace Pan
    Gender: F
    ID: 0004
    Major: BIDA
    Midterm score: 72
    Final exam score: 88
    Student name: Lucy Lee
    Gender: F
    ID: 0005
    Major: BIDA
    Midterm score: 58
    Final exam score: 76(80)
    Sample I/O: (Fonts in red color are input data, only three students are added in this example.
    You should add all the five students.)
    Menu:

  14. Add student

  15. Find student

  16. Modify student information

  17. Grade summary statistics

  18. Exit
    Enter your choice: 1
    Enter name: David Chan
    5
    Enter gender (M/F): M
    Enter ID (4-digit string): 01
    Invalid ID format. Please enter a 4-digit string.
    Enter ID (4-digit string): 0001
    Enter major: BIDA
    Enter midterm score: 75
    Enter final exam score: 80
    Student{name='David Chan', id='0001', major='BIDA', midtermScore=75.0, finalScore=80.0,
    totalGrade=78.0}
    Menu:

  19. Add student

  20. Find student

  21. Modify student information

  22. Grade summary statistics

  23. Exit
    Enter your choice: 1
    Enter name: Allen Lai
    Enter gender (M/F): M
    Enter ID (4-digit string): 0002
    Enter major: BIDA
    Enter midterm score: 52
    Enter final exam score: 71
    Student{name='Allen Lai', id='0002', major='BIDA', midtermScore=52.0, finalScore=71.0,
    totalGrade=63.4}
    Menu:
    6

  24. Add student

  25. Find student

  26. Modify student information

  27. Grade summary statistics

  28. Exit
    Enter your choice: 1
    Enter name: Amy Liu
    Enter gender (M/F): F
    Enter ID (4-digit string): 0003
    Enter major: BIDA
    Enter midterm score: 90
    Enter final exam score: 85
    Student{name='Amy Liu', id='0003', major='BIDA', midtermScore=90.0, finalScore=85.0,
    totalGrade=87.0}
    Menu:

  29. Add student

  30. Find student

  31. Modify student information

  32. Grade summary statistics

  33. Exit
    Enter your choice: 2
    Enter student ID: 0002
    Student{name='Allen Lai', id='0002', major='BIDA', midtermScore=52.0, finalScore=71.0,
    totalGrade=63.4}
    Menu:
    7

  34. Add student

  35. Find student

  36. Modify student information

  37. Grade summary statistics

  38. Exit
    Enter your choice: 3
    Enter student ID: 0002
    Enter new name: Allen Lai
    Enter new major: BIDA
    Enter new midterm score: 58
    Enter new final exam score: 71
    Menu:

  39. Add student

  40. Find student

  41. Modify student information

  42. Grade summary statistics

  43. Exit
    Enter your choice: 2
    Enter student ID: 0002
    Student{name='Allen Lai', id='0002', major='BIDA', midtermScore=58.0, finalScore=71.0,
    totalGrade=65.8}
    Menu:

  44. Add student

  45. Find student

  46. Modify student information
    8

  47. Grade summary statistics

  48. Exit
    Enter your choice: 4
    Max Grade: 87.0
    Min Grade: 65.8
    Average Grade: 76.93333333333333Menu:1. Add student2. Find student3. Modify student information4. Grade summary statistics5. ExitEnter your choice: 5
    WX:codinghelp

​​​​​​​