小學

小學

中等

說明

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

最後,你應該能夠:

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

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

注意

嚴格來說,你不一定要把學生建模成獨立的物件,由於需求相當單純,你可以使用方便的內部資料結構(只要它不會外洩到結果裡就好)。

Note

這個練習已稍微修改過 problem-specification 的內容,因為把新增學生和查詢學生分成不同的方法更合理(而不是用同一個方法同時做兩件事,那樣比較不像 Pharo/Smalltalk 的風格)。


出處

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

準備好開始 小學 了嗎?

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