ISOM3028代做、Python/c++编程语言代写
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
- WhatsApp拉群营销新秘密 你了解吗 快分享你的使用心得给大家听听
- 《热辣滚烫》掀起健康减脂潮流,植物基食品迎来“第二春”?
- 外贸新秀的秘密武器 WhatsApp拉群工具如何让我的业务成长飞速
- 科华数据液冷技术领航中国移动长三角数据中心绿色变革,共创通信行业低碳新篇章
- 6寸阅读器更清晰了?掌阅iReader 小屏旗舰 Neo 2强势上线
- 业务航海家的选择:海外营销大师对WhatsApp拉群工具的推崇,让业务体验闪耀新光芒
- WhatsApp拉群营销工具 海外营销高手的神奇法宝 引爆你在国际市场的激情
- 商务魔法宇宙 WhatsApp拉群工具为科技魔法师推荐 为用户开启体验的星际冒险之旅
- 佗道腔镜手术机器人辅助,南昌大学一附院成功开展前列腺根治术
- CapitalXtend以卓越的监管水平为中国交易者铺平道路
- Instagram引流营销软件揭秘,Ins一键私信软件助你轻松爆粉!
- 智能定向,精准群发!体验全新 跨境电商VB代拉群的便捷与高效
- Ins引流助手,Instagram打粉工具,助你轻松拓展市场!
- Instagram群发筛选软件,Ins群发注册工具,助你轻松推广!
- 碧桂园服务物业管家帮助业主找到失而复得的贵重资料
- 怎么识别靠的Telegram群发机构,引发用户主动关注
- 眼科创新药物法瑞西单抗(罗视佳®)于北京爱尔英智眼科医院完成国内首批注射
- 当你的生意因为WhatsApp拉群工具而翻开新篇章时 你会体会到无尽的喜悦之情
- 精细营销,成功之门! 跨境电商Telegram协议号注册器群发软件,助您在市场竞争中脱颖而出
- Ins那款营销软件好用?Instagram独家引流推广群发软件,博主推荐购买!
推荐
- 疫情期间 这个品牌实现了疯狂扩张 记得第一次喝瑞幸,还是2017年底去北京出差的 科技
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬 瘫痪十四年后,老杨第一次再度抓握住一瓶水,他 科技
- 升级的脉脉,正在以招聘业务铺开商业化版图 长久以来,求职信息流不对称、单向的信息传递 科技
- 苹果罕见大降价,华为的压力给到了? 1、苹果官网罕见大降价冲上热搜。原因是苹 科技
- 全力打造中国“创业之都”名片,第十届中国创业者大会将在郑州召开 北京创业科创科技中心主办的第十届中国创业 科技
- 创意驱动增长,Adobe护城河够深吗? Adobe通过其Creative Cloud订阅捆绑包具有 科技
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术 为期三天的第五届中国(昆明)南亚社会公共安 科技
- 如何经营一家好企业,需要具备什么要素特点 我们大多数人刚开始创办一家企业都遇到经营 科技
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人 1 月 15 日消息,据界面新闻,B站上周发布内部 科技
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目 尽管电动车在全球范围内持续崛起,但丰田章男 科技