联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-04-10 08:16

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


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp