社区讨论

翻译

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时,主菜单应该如下所示:
CPP
Welcome to Student Performance Management System (SPMS).

1-Add

2 - Remove

3 - Query

4 - Show ranking

5 - Show Statistics

0 - Exit
如果您从主菜单中选择1,则应在屏幕上打印以下信息:
CPP
Please enter the SID, CID, name and four scores. Enter 0 to finish.
然后你的程序应该等待用户输入。输入行总是有效的(没有无效的SID,CID,或名称,确切的4个分数等等),但SID可能已经存在。在这种情况下,简单地忽略它,并打印以下内容:
CPP
Duplicated SID.
另一方面,多个学生可以有相同的名字。 您应该继续打印上面的消息,直到用户输入一个0。然后应当再次打印菜单。 如果您从主菜单中选择2,则应在屏幕上打印以下信息:
CPP
Please enter SID or name. Enter 0 to finish.
然后你的程序应该等待用户输入,并删除所有匹配SID的学生。 在数据库中命名,并打印以下消息(xx可以等于0):
CPP
xx student(s) removed.
您应该继续打印上面的消息,直到用户输入一个0。然后应当再次打印菜单。 如果您从主菜单中选择3,则应在屏幕上打印以下信息:
CPP
Please enter SID or name. Enter 0 to finish.
然后你的程序应该等待用户输入。如果没有学生匹配SID或名称,那么就不做任何操作,否则将所有匹配的学生打印出来,按照入数据库的顺序排列。格式类似于“添加一个学生”的输入格式,但增加了3个列:rank(第一列)、总得分和平均分数(最后两列)。得分最高的学生(考虑所有班级)获得了第一名,如果有两个第二名学生,下一个将是第四名。您应该继续打印上面的消息,直到用户输入一个0。之后,主菜单又被打印出来。 如果您从主菜单中选择4,则应在屏幕上打印以下信息:
CPP
Showing the ranklist hurts students' self-esteem. Don't do that.
然后,主菜单又被打印出来。 如果您从主菜单中选择5,请按以下格式显示统计信息:
CPP
Please enter class ID, 0 for the whole statistics.
输入类ID时,打印以下统计信息。注意“及格”的意思是分数不小于60分。
CPP
Chinese
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 条回复,欢迎继续交流。

正在加载回复...