小學

小學

簡單

說明

根據學生的名字以及他們所屬的年級,為學校建立一份名冊。

最後,你應該能夠:

  • 把學生的名字加入某個年級的名冊
    • 「把 Jim 加入二年級。」
    • 「好的。」
  • 取得某個年級中所有學生的清單
    • 「二年級有哪些學生?」
    • 「目前只有 Jim 而已。」
  • 取得所有年級中所有學生的排序清單。 年級應依 1、2、3 等順序排序,而同一個年級裡的學生則應按名字的字母順序排序。
    • 「目前全校有哪些學生?」
    • 「讓我想想。 一年級有 Anna、Barb 和 Charlie,二年級有 Alex、Peter 和 Zoe,五年級有 Jim。 所以答案是:Anna、Barb、Charlie、Alex、Peter、Zoe 和 Jim」

請注意,我們的學生都只有一個名字(小鎮就是這樣,不然呢?),而且同一位學生不能在同一個年級或名冊裡被重複加入。 事實上,當測試試圖重複加入同一位學生時,你的實作應該指出這是錯誤的。

提示

為了讓測試通過,你需要為程式碼建立一些型別:你需要一個物件,讓School可以存放一串型別為Student的資料,而Student是由string和int組成的元組,用來存放學生的名字和成績。

這裡有一些型別的程式碼,剛開始時可能會對你有幫助。

type
  Student* = tuple[name: string, grade: int]
  School* = object
    students*: seq[Student]

出處

與 Phil Battos 在 gSchool 的一次結對練習
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Nim Exercism

準備好開始 小學 了嗎?

註冊 Exercism,透過 70 個練習 和真人引導來學習並精通 Nim,全部免費。