社区讨论
翻译(紫书)
UVA12412A Typical Homework (a.k.a 师兄帮帮忙)参与者 12已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mi6wjgr2
- 此快照首次捕获于
- 2025/11/20 11:59 4 个月前
- 此快照最后确认于
- 2025/11/20 15:04 4 个月前
编写一个成绩管理系统(SPMS)。最多有100个学生,每个学生有如下属性。
- SID:学生编号,包含10位数字。
- CID:班级编号,为不超过20的正整数。
- 姓名:不超过10的字母和数字组成,第一个字符为大写字母。名字中不能有空白字符。
- 4门课程(语文、数学、英语、编程)成绩,均为不超过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列:年级排名(第一列)、总分和平均分(最后两列)。所有班级中总分最高的学生获得第1名,如果有两个学生并列第2名,则下一个学生的排名为4(而非3)。你的程序应当不停地打印前述提示信息,直到用户输入单个0,然后应当再次打印主菜单。
选择4之后,会出现如下提示信息:
CPPShowing the ranklist hurts students' self-esteem. Don't do that.
然后自动返回主菜单。
选择5之后,会出现如下提示信息:
CPPPlease enter class ID, 0 for the whole statistics.
当用户输入班级ID之后(0代表全年级),显示如下信息(注意,“及格”是指分数不小于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之后,程序终止。注意,单科成绩和总分都应格式化为整数,但平均分应恰好保留两位小数。
回复
共 13 条回复,欢迎继续交流。
正在加载回复...