You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.1 KiB
5.1 KiB
做決策:學生成績處理器
學習目標
在此作業中,你將透過建立一個處理不同評分系統中學生成績的程式,來練習本課程的決策概念。你將使用 if...else 陳述式、比較運算子及邏輯運算子,判斷哪些學生通過課程。
挑戰說明
你在一所剛與另一所學校合併的學校工作。現在你需要處理來自兩種完全不同評分系統的學生成績,並判斷哪些學生合格。這是練習條件邏輯的絕佳機會!
了解評分系統
第一種評分系統(數字)
- 成績以 1-5 的數字給分
- 及格成績:3 及以上(3、4 或 5)
- 不及格成績:低於 3(1 或 2)
第二種評分系統(字母級分)
- 成績以字母呈現:
A、A-、B、B-、C、C- - 及格成績:
A、A-、B、B-、C、C-(所有列出的字母分數都及格) - 注意:此系統沒有包含像
D或F這樣的不及格字母
你的任務
給定以下陣列 allStudents,代表所有學生及其成績,請建立一個新陣列 studentsWhoPass,包含依各自評分系統判定及格的學生。
let allStudents = [
'A', // 字母等級 - 通過
'B-', // 字母等級 - 通過
1, // 數字等級 - 不及格
4, // 數字等級 - 通過
5, // 數字等級 - 通過
2 // 數字等級 - 不及格
];
let studentsWhoPass = [];
分步驟方法
- 設置迴圈,遍歷
allStudents陣列中的每個成績 - 檢查成績類型(是數字還是字串?)
- 套用適用的評分規則:
- 對數字:判斷成績是否 >= 3
- 對字串:檢查是否為有效的及格字母級分
- 將及格的成績 加入
studentsWhoPass陣列
有用的程式技巧
使用本課程介紹的 JavaScript 概念:
- typeof 運算子:
typeof grade === 'number'用來判斷是否為數字成績 - 比較運算子:
>=用來比較數字成績 - 邏輯運算子:
||用來檢查多個字母級分條件 - if...else 陳述式:用於處理不同的評分系統
- 陣列方法:
.push()用來將及格成績加入新陣列
預期輸出
當你執行程式後,studentsWhoPass 應該包含:['A', 'B-', 4, 5]
這些成績為何及格:
'A'和'B-'是有效的字母級分(此系統所有字母成績均為及格)4和5是數字成績且 >= 31與2因為小於 3 而不及格
測試你的解決方案
使用不同場景測試你的程式:
// 使用不同的分数组合進行測試
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// 你的解法應該能適用於任何有效的分数组合
進階挑戰
完成基本作業後,嘗試以下擴展:
- 增加驗證:檢查不合法成績(像是負數或無效字母)
- 計算統計:計算有多少學生及格與不及格
- 成績轉換:將所有成績轉換為單一數字系統(A=5,B=4,C=3,等等)
評分規準
| 標準 | 優異 (4) | 熟練 (3) | 進展中 (2) | 初階 (1) |
|---|---|---|---|---|
| 功能性 | 程式能正確分辨兩種系統的所有及格成績 | 程式運作正常,少數邊緣狀況問題 | 程式部分正常,但有邏輯錯誤 | 程式錯誤嚴重或無法執行 |
| 程式架構 | 程式碼乾淨且組織良好,有適當的 if...else 邏輯 | 結構良好,使用適當的條件語句 | 架構尚可,有組織性問題 | 架構差,邏輯難以理解 |
| 概念運用 | 有效使用比較運算子、邏輯運算子與條件陳述式 | 利用課程概念良好,少許缺漏 | 部分使用課程概念,缺少重要元素 | 使用課程概念有限 |
| 問題解決能力 | 清楚理解問題並提出優雅解決方案 | 概念清楚,邏輯穩健 | 解題能力尚可,但部分混亂 | 方法不明確,無法展現理解 |
提交指引
- 充分測試你的程式,以提供的範例為主
- 加入註解說明邏輯,尤其是條件判斷部分
- 確認輸出與預期結果吻合:
['A', 'B-', 4, 5] - 考慮邊緣狀況,如空陣列或非預期資料型態
💡 專業小提示:先從簡單開始!先讓基本功能順利運作,再加入更複雜的特性。記得,目標是練習本課程的決策邏輯與工具。
免責聲明:
本文件係使用 AI 翻譯服務 Co-op Translator 所翻譯而成。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始語言文件應視為權威來源。對於重要資訊,建議採用專業人工翻譯。因使用本翻譯而產生之任何誤解或錯誤詮釋,我們概不負責。