社区讨论
翻译
UVA12412A Typical Homework (a.k.a 师兄帮帮忙)参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi6o555r
- 此快照首次捕获于
- 2025/11/20 08:03 4 个月前
- 此快照最后确认于
- 2025/11/20 08:03 4 个月前
编写一个成绩管理系统(SPMS)中。最多有100个学生,每个学生都有如下属性。
-
SID:学生编号,包含10个数字。
-
CID:班级编号,为不超过20的正整数。
-
姓名:不超过10的字母和数字组成,第一个字符为大小字母。名字中不能有空白字符。
-
四门学科(语文、数学、英语、编程)成绩,均为不超过100的非负整数。
当您进入SPMS时,主菜单应该如下所示:
CPPWelcome to Student Performance Management System (SPMS).
1-Add
2 - Remove
3 - Query
4 - Show ranking
5 - Show Statistics
0 - Exit
如果您从主菜单中选择1,则应在屏幕上打印以下信息:
CPPPlease enter the SID, CID, name and four scores. Enter 0 to finish.
然后你的程序应该等待用户输入。输入行总是有效的(没有无效的SID,CID,或名称,确切的4个分数等等),但SID可能已经存在。在这种情况下,简单地忽略它,并打印以下内容:
CPPDuplicated SID.
另一方面,多个学生可以有相同的名字。
您应该继续打印上面的消息,直到用户输入一个0。然后应当再次打印菜单。
如果您从主菜单中选择2,则应在屏幕上打印以下信息:
CPPPlease enter SID or name. Enter 0 to finish.
然后你的程序应该等待用户输入,并删除所有匹配SID的学生。
在数据库中命名,并打印以下消息(xx可以等于0):
CPPxx student(s) removed.
您应该继续打印上面的消息,直到用户输入一个0。然后应当再次打印菜单。
如果您从主菜单中选择3,则应在屏幕上打印以下信息:
CPPPlease enter SID or name. Enter 0 to finish.
然后你的程序应该等待用户输入。如果没有学生匹配SID或名称,那么就不做任何操作,否则将所有匹配的学生打印出来,按照入数据库的顺序排列。格式类似于“添加一个学生”的输入格式,但增加了3个列:rank(第一列)、总得分和平均分数(最后两列)。得分最高的学生(考虑所有班级)获得了第一名,如果有两个第二名学生,下一个将是第四名。您应该继续打印上面的消息,直到用户输入一个0。之后,主菜单又被打印出来。
如果您从主菜单中选择4,则应在屏幕上打印以下信息:
CPPShowing the ranklist hurts students' self-esteem. Don't do that.
然后,主菜单又被打印出来。
如果您从主菜单中选择5,请按以下格式显示统计信息:
CPPPlease enter class ID, 0 for the whole statistics.
输入类ID时,打印以下统计信息。注意“及格”的意思是分数不小于60分。
CPPChinese
Average Score: xx.xx
Number of passed students: xx
Number of failed students: xx
Mathematics
Average Score: xx.xx
Number of passed students: xx
Number of failed students: xx
English
Average Score: xx.xx
Number of passed students: xx
Number of failed students: xx
Programming
Average Score: xx.xx
Number of passed students: xx
Number of failed students: xx
Overall:
Number of students who passed all subjects: xx
Number of students who passed 3 or more subjects: xx
Number of students who passed 2 or more subjects: xx
Number of students who passed 1 or more subjects: xx
Number of students who failed all subjects: xx
然后,再次打印主菜单。
如果从主菜单中选择0,则程序应该终止。
注意,单科分数和总分都应格式化为整数,但平均分应该恰好保留两位小数。
提示:
在格式化浮点数(例如平均分数)时,一个防止浮点数的好方法。
错误是添加一个小的数字(比如这个问题的1e-5)。否则,将打印80.315。
如果浮点错误使其为80.31499999…
回复
共 4 条回复,欢迎继续交流。
正在加载回复...