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:
1. 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.
2. Implement a constructor in the "Student" class that initializes the name, gender, studentID,
major, midtermScore, and finalScore.
2
3. Implement the set and get methods for name, gender, and major fields. Only set methods for
midtermScore, finalScore; and only get method for studentID.
4. 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.
5. Implement a calculateTotalGrade() method to calculate the finalGrade.
6. 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.
7. 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. 1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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), the 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:
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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:
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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:
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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:
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. 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:
1. Add student
2. Find student
3. Modify student information
8
4. Grade summary statistics
5. Exit
Enter your choice: 4
Max Grade: 87.0
Min Grade: 65.8
Average Grade: 76.93333333333333
Menu:
1. Add student
2. Find student
3. Modify student information
4. Grade summary statistics
5. Exit
Enter your choice: 5
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
标签: