实验室数据库管理一下
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目:实验室数据库管理一下
数据说明
每名成员包含:姓名、学号、性别、分组、生日、技能列表。需要支持录入与多类查询/排序指令。
输入格式
- 第一行:整数
n(1 ≤ n ≤ 1000)。 - 接下来
n行,字段以空格分隔,字段自身不含空格:
name studentID gender group yyyy/mm/dd k skill1 skill2 ... skillk
name:长度 1–50。studentID:正好 8 位数字字符串,全局唯一。gender:仅为男或女。group:非负整数。yyyy/mm/dd:四位年/两位月/两位日(例如 2005/10/01)。k:技能个数,0 ≤ k ≤ 50。若k=0,该行以... yyyy/mm/dd 0结束。skill1..skillk:每个为 1–50 字符的字符串。
- 之后一行:整数
q(1 ≤ q ≤ 2000)。 - 接下来
q行,每行一条指令(大小写固定,无多余空格):
Check_name XCheck_StudentID XCheck_Birthday yyyy/mm/ddCheck_group GGet SSort_Birthday
说明:
X、S为字符串,G为非负整数。
匹配与比较规则
-
全部为精确匹配且区分大小写:
Check_name X:name == XCheck_StudentID X:studentID == XCheck_Birthday D:生日等于DCheck_group G:group == GGet S:技能列表中存在任一等于S的技能
-
studentID在输入数据中保证唯一。若出现非法数据导致多条命中,同样按下述“多人输出排序”规则输出全部命中。
输出格式
- 成员完整信息统一为一行(字段间一个空格):
name studentID gender group yyyy/mm/dd k skill1 skill2 ... skillk
-
对每条指令:
-
若命中 ≥1 人,**按“多人输出排序”**逐行输出。
-
若无命中,输出对应提示词一行:
Check_name:Sorry, ASC could not find this Name.Check_StudentID:Sorry, ASC could not find this StudentID.Check_Birthday:Sorry, ASC could not find this Birthday.Check_group:Sorry, ASC could not find this Group.Get:Sorry, ASC could not find this Skill.
-
Sort_Birthday:输出全部 n 人,按“多人输出排序”。
-
多人输出排序
当需要输出多人的时候(包括 Sort_Birthday 及各类查询命中多条)统一采用:
- 生日从“年轻到年老”:日期晚者在前(先比年,年大者在前;年同再比月;月同再比日)。
- 若生日相同:按
studentID字典序升序。
其他约定
- 仅使用标准输入输出。
- 字段合法性已由数据保证,无需额外校验。
- 程序应使用结构体与指针组织数据;建议动态内存与排序实现。
样例输入
12
张粤折 24060001 男 0 2005/10/01 4 STM32 HAL Keil CubeMX
理文炫 23060002 男 0 2005/10/02 3 IMU CCD Python
陈德华 23040003 男 0 2005/09/30 2 STC-ISP STC32
张希望 24060004 女 1 2006/03/02 3 STM32 IMU FOC
折纸鸢 23060005 女 1 2005/12/31 5 RT1021 OpenART MicroPython ChatGPT GithubCopilot
于小羊 23040006 女 1 2005/12/30 1 Python
陈贾伟 24060007 男 2 2006/03/05 2 TC264 CCD
秒神界 23060008 男 2 2005/10/01 3 Search Code Python
雨菲羊 23040009 女 2 2005/10/01 4 STM32 HAL IMU Keil
涨潮 24060010 男 3 2006/01/15 2 STC32 STC-ISP
徐云舒 23060011 女 3 2005/11/01 3 ChatGPT GithubCopilot Python
哈吉风 23040012 男 3 2005/10/02 0
11
Check_name 张粤折
Check_name 纸飞机
Check_StudentID 23040003
Check_StudentID 23049999
Check_Birthday 2005/10/01
Check_group 2
Check_group 9
Get STM32
Get GithubCopilot
Get Rust
Sort_Birthday
样例输出
张粤折 24060001 男 0 2005/10/01 4 STM32 HAL Keil CubeMX
Sorry, ASC could not find this Name.
陈德华 23040003 男 0 2005/09/30 2 STC-ISP STC32
Sorry, ASC could not find this StudentID.
雨菲羊 23040009 女 2 2005/10/01 4 STM32 HAL IMU Keil
秒神界 23060008 男 2 2005/10/01 3 Search Code Python
张粤折 24060001 男 0 2005/10/01 4 STM32 HAL Keil CubeMX
陈贾伟 24060007 男 2 2006/03/05 2 TC264 CCD
雨菲羊 23040009 女 2 2005/10/01 4 STM32 HAL IMU Keil
秒神界 23060008 男 2 2005/10/01 3 Search Code Python
Sorry, ASC could not find this Group.
张希望 24060004 女 1 2006/03/02 3 STM32 IMU FOC
雨菲羊 23040009 女 2 2005/10/01 4 STM32 HAL IMU Keil
张粤折 24060001 男 0 2005/10/01 4 STM32 HAL Keil CubeMX
折纸鸢 23060005 女 1 2005/12/31 5 RT1021 OpenART MicroPython ChatGPT GithubCopilot
徐云舒 23060011 女 3 2005/11/01 3 ChatGPT GithubCopilot Python
Sorry, ASC could not find this Skill.
陈贾伟 24060007 男 2 2006/03/05 2 TC264 CCD
张希望 24060004 女 1 2006/03/02 3 STM32 IMU FOC
涨潮 24060010 男 3 2006/01/15 2 STC32 STC-ISP
折纸鸢 23060005 女 1 2005/12/31 5 RT1021 OpenART MicroPython ChatGPT GithubCopilot
于小羊 23040006 女 1 2005/12/30 1 Python
徐云舒 23060011 女 3 2005/11/01 3 ChatGPT GithubCopilot Python
哈吉风 23040012 男 3 2005/10/02 0
理文炫 23060002 男 0 2005/10/02 3 IMU CCD Python
雨菲羊 23040009 女 2 2005/10/01 4 STM32 HAL IMU Keil
秒神界 23060008 男 2 2005/10/01 3 Search Code Python
张粤折 24060001 男 0 2005/10/01 4 STM32 HAL Keil CubeMX
陈德华 23040003 男 0 2005/09/30 2 STC-ISP STC32