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.2 KiB
5.2 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', // Letter grade - passing
'B-', // Letter grade - passing
1, // Numeric grade - failing
4, // Numeric grade - passing
5, // Numeric grade - passing
2 // Numeric grade - failing
];
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
測試您的解決方案
使用不同的場景測試您的程式:
// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Your solution should work with any combination of valid grades
額外挑戰
完成基本作業後,嘗試以下擴展:
- 添加驗證:檢查無效成績(例如負數或無效字母)
- 統計數據:計算通過和不及格的學生數量
- 成績轉換:將所有成績轉換為單一的數字系統(A=5,B=4,C=3,等等)
評分標準
| 評分標準 | 優秀 (4) | 熟練 (3) | 發展中 (2) | 初學 (1) |
|---|---|---|---|---|
| 功能性 | 程式正確識別兩個系統中的所有及格成績 | 程式運行正常,但有輕微問題或邊界情況 | 程式部分運行,但存在邏輯錯誤 | 程式有重大錯誤或無法運行 |
| 程式結構 | 代碼清晰、組織良好,具有適當的 if...else 邏輯 | 結構良好,具有適當的條件語句 | 結構尚可,但存在一些組織問題 | 結構差,邏輯難以理解 |
| 概念使用 | 有效使用比較運算符、邏輯運算符和條件語句 | 良好使用課程概念,但有輕微不足 | 部分使用課程概念,但缺少關鍵元素 | 使用課程概念有限 |
| 問題解決 | 清楚理解問題並採用優雅的解決方案 | 良好的問題解決方法,邏輯清晰 | 問題解決能力尚可,但有些混亂 | 方法不清晰,未能展示對問題的理解 |
提交指南
- 徹底測試您的程式,使用提供的範例
- 添加註解,解釋您的邏輯,特別是條件語句部分
- 確認輸出 與預期結果匹配:
['A', 'B-', 4, 5] - 考慮邊界情況,例如空陣列或意外的數據類型
💡 小提示:從簡單開始!先讓基本功能正常運行,然後再添加更複雜的功能。記住,目標是使用您在本課中學到的工具來練習決策邏輯。
免責聲明:
本文件已使用 AI 翻譯服務 Co-op Translator 進行翻譯。儘管我們致力於提供準確的翻譯,請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。