แบบฝึกหัด - ใช้สาขาในรหัสโดยใช้คําสั่งการเลือก
ในแบบฝึกหัดนี้คุณพัฒนารหัสที่จะกําหนดเกรดตัวอักษรของนักเรียนโดยอัตโนมัติตามคะแนนตัวเลขสุดท้ายและคุณอัปเดตแอปพลิเคชั่นเพื่อให้คะแนนโครงการเครดิตเพิ่มเติมนั้นเป็นปัจจัยในเกรดสุดท้ายของนักเรียน คุณเริ่มต้นโดยการเขียนโครงสร้าง if-elseif-else
ที่สามารถใช้เพื่อประเมินคะแนนตัวเลขของนักเรียนและกําหนดเกรดตัวอักษร ถัดไป คุณตรวจสอบข้อกําหนดของแอปพลิเคชันที่เกี่ยวข้องกับงานเครดิตเพิ่มเติมแล้วทํางานของคุณผ่านการอัปเดตรหัสที่จําเป็น งานโดยละเอียดที่คุณทําเสร็จสิ้นในระหว่างแบบฝึกหัดนี้ได้แก่:
พัฒนาโครงสร้าง
if-elseif-else
ที่ประเมินคะแนนของนักเรียนเพื่อกําหนดเกรดตัวอักษร นิพจน์ที่มีการประเมินเปรียบเทียบคะแนนตัวเลขของนักเรียนกับคะแนนที่หลากหลายที่นํามาจากแผนภูมิการไล่ระดับสีที่มอบให้โดยครูรวมคะแนนเครดิตเพิ่มเติมลงในอาร์เรย์คะแนนของนักเรียนแต่ละคน จากนั้นอัปเดตโค้ดที่ใช้เพื่อคํานวณคะแนนตัวเลขของนักเรียน ที่ใช้ในการ
foreach
หาผลรวมคะแนนของนักเรียนจะได้รับการอัปเดตเพื่อรวมif
คําสั่งที่แตกแขนงรหัส คะแนนการสอบจะถูกนําไปใช้กับผลรวมในสาขาหนึ่งและคะแนนเครดิตเพิ่มเติมในสาขาอื่น
สําคัญ
คุณจําเป็นต้องทําแบบฝึกหัดก่อนหน้านี้ของมอดูลนี้เสร็จสิ้นแล้ว "สร้างอาร์เรย์และลูป foreach" ก่อนที่คุณจะเริ่มแบบฝึกหัดนี้
กําหนดเกรดตัวอักษรโดยใช้โครงสร้างif-elseif-else
ในงานนี้ คุณพัฒนา if-elseif-else
โครงสร้างที่สามารถใช้เพื่อกําหนดเกรดตัวอักษรตามคะแนนตัวเลขที่คํานวณ
ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs เปิดในตัวแก้ไขรหัส Visual Studio
สร้างบรรทัดรหัสที่ว่างเปล่าที่อยู่ด้านล่างบรรทัดที่ใช้ในการตรวจนับ
studentScores
อาร์เรย์หากต้องการสร้างตัวแปรสตริงที่สามารถใช้เพื่อเก็บเกรดตัวอักษรของนักเรียนให้ป้อนรหัสต่อไปนี้:
string currentStudentLetterGrade = "";
เลื่อนลงไปที่ด้านล่างของไฟล์ Program.cs
เพิ่มบรรทัดรหัสว่างใต้บรรทัดที่กําหนดค่าที่คํานวณเป็น
currentStudentGrade
ใช้เวลาสักครู่ในการพิจารณาแผนภูมิการไล่ระดับสีที่แสดงตัวอักษรเกรดที่สอดคล้องกับคะแนนตัวเลข
97 - 100 A+ 93 - 96 A 90 - 92 A- 87 - 89 B+ 83 - 86 B 80 - 82 B- 77 - 79 C+ 73 - 76 C 70 - 72 C- 67 - 69 D+ 63 - 66 D 60 - 62 D- 0 - 59 F
โปรดสังเกตว่าแถวบนสุดของคะแนน ค่าที่มากกว่าหรือเท่ากับ 97 จะมีเกรดตัวอักษรของ "A+" กล่าวอีกนัยหนึ่งถ้าคะแนนสุดท้ายของนักเรียนคือ >= 97 พวกเขาจะได้รับเกรดตัวอักษรของ "A+"
หากต้องการสร้าง
if
คําสั่งที่กําหนดให้กับA+
currentStudentLetterGrade
เมื่อคะแนนของนักเรียนมากกว่าหรือเท่ากับ 97 ให้ป้อนรหัสต่อไปนี้:if (currentStudentGrade >= 97) currentStudentLetterGrade = "A+";
หากต้องการสร้าง
else if
คําสั่งที่กําหนดให้กับA
currentStudentLetterGrade
เมื่อคะแนนของนักเรียนมากกว่าหรือเท่ากับ 93 ให้ป้อนรหัสต่อไปนี้:else if (currentStudentGrade >= 93) currentStudentLetterGrade = "A";
else if
จะไม่มีการกําหนดA
เมื่อcurrentStudentLetterGrade
คะแนนของนักเรียนมากกว่าหรือเท่ากับ 97 เนื่องจากนิพจน์นั้นถูกส่งกลับtrue
ใน ก่อนหน้านี้if
คุณสามารถขยายรูปแบบนี้ได้
else if
เมื่อคุณเลื่อนแถวของแผนภูมิเกรดแบบตัวอักษรลง เมื่อคุณมาถึงจุดสิ้นสุดของแผนภูมิ คุณสามารถใช้ค่าสุดท้ายelse
เพื่อจับใด ๆcurrentStudentGrade
ที่ต่ํากว่า 60else if
สร้างรายงานที่กําหนดเกรดตัวอักษรสําหรับcurrentStudentLetterGrade
ช่วงคะแนนระหว่าง 60 และ 92เมื่อคุณทําขั้นตอนนี้เสร็จแล้ว คุณควรมี
if
โครงสร้างคําสั่งที่ตรงกับโค้ดต่อไปนี้:if (currentStudentGrade >= 97) currentStudentLetterGrade = "A+"; else if (currentStudentGrade >= 93) currentStudentLetterGrade = "A"; else if (currentStudentGrade >= 90) currentStudentLetterGrade = "A-"; else if (currentStudentGrade >= 87) currentStudentLetterGrade = "B+"; else if (currentStudentGrade >= 83) currentStudentLetterGrade = "B"; else if (currentStudentGrade >= 80) currentStudentLetterGrade = "B-"; else if (currentStudentGrade >= 77) currentStudentLetterGrade = "C+"; else if (currentStudentGrade >= 73) currentStudentLetterGrade = "C"; else if (currentStudentGrade >= 70) currentStudentLetterGrade = "C-"; else if (currentStudentGrade >= 67) currentStudentLetterGrade = "D+"; else if (currentStudentGrade >= 63) currentStudentLetterGrade = "D"; else if (currentStudentGrade >= 60) currentStudentLetterGrade = "D-";
ขั้นตอนสุดท้ายของคุณคือการเพิ่ม
else
ที่อยู่ของคะแนนที่เหลือหากต้องการสร้าง
else
ที่ใช้ได้กับคะแนนต่ํากว่า 60 ให้ป้อนรหัสต่อไปนี้:else currentStudentLetterGrade = "F";
ใช้เวลาสักครู่เพื่อตรวจสอบรหัสแอปพลิเคชันของคุณ
โค้ด Program.cs ของคุณควรตรงกับโค้ดต่อไปนี้:
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; // Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" }; int[] studentScores = new int[10]; string currentStudentLetterGrade = ""; // Display the Report Header Console.WriteLine("Student\t\tGrade\n"); foreach (string name in studentNames) { string currentStudent = name; if (currentStudent == "Sophia") // assign Sophia's scores to the studentScores array studentScores = sophiaScores; else if (currentStudent == "Andrew") // assign Andrew's scores to the studentScores array studentScores = andrewScores; else if (currentStudent == "Emma") // assign Emma's scores to the studentScores array studentScores = emmaScores; else if (currentStudent == "Logan") // assign Logan's scores to the studentScores array studentScores = loganScores; // initialize/reset the sum of scored assignments int sumAssignmentScores = 0; // initialize/reset the calculated average of exam + extra credit scores decimal currentStudentGrade = 0; foreach (int score in studentScores) { // add the exam score to the sum sumAssignmentScores += score; } currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments; if (currentStudentGrade >= 97) currentStudentLetterGrade = "A+"; else if (currentStudentGrade >= 93) currentStudentLetterGrade = "A"; else if (currentStudentGrade >= 90) currentStudentLetterGrade = "A-"; else if (currentStudentGrade >= 87) currentStudentLetterGrade = "B+"; else if (currentStudentGrade >= 83) currentStudentLetterGrade = "B"; else if (currentStudentGrade >= 80) currentStudentLetterGrade = "B-"; else if (currentStudentGrade >= 77) currentStudentLetterGrade = "C+"; else if (currentStudentGrade >= 73) currentStudentLetterGrade = "C"; else if (currentStudentGrade >= 70) currentStudentLetterGrade = "C-"; else if (currentStudentGrade >= 67) currentStudentLetterGrade = "D+"; else if (currentStudentGrade >= 63) currentStudentLetterGrade = "D"; else if (currentStudentGrade >= 60) currentStudentLetterGrade = "D-"; else currentStudentLetterGrade = "F"; Console.WriteLine($"{name}\t\t{currentStudentGrade}\t?"); } Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
โปรดสังเกตว่าแอปพลิเคชันของคุณได้รับการจัดระเบียบให้อยู่ในลักษณะจากบนลงล่างอย่างมีตรรกะ:
คุณเริ่มต้นตัวแปรและสร้างอาร์เรย์ที่ทําหน้าที่เป็นแหล่งข้อมูลสําหรับแอปพลิเคชัน คุณมีอาร์เรย์ที่ใส่คะแนนนักเรียนรวมถึงอาร์เรย์ที่ให้ชื่อนักเรียน คุณยังจะมีอาร์เรย์การวินิจฉัยนักเรียนที่ชื่อ
studentScores
ว่าคุณสามารถใช้เพื่อเก็บคะแนนของนักเรียนทุกคนเมื่อถึงเวลาคํานวณคะแนนคุณมี
Console.WriteLine()
คําสั่งที่เขียนป้ายชื่อคอลัมน์สําหรับรายงานการไล่ระดับสีของคุณไปยังคอนโซลคุณมีรอบนอก
foreach
ที่ทําซ้ําผ่านstudentNames
อาร์เรย์ ซึ่งมีบล็อกรหัสที่ทําซ้ําให้กับนักเรียนแต่ละคนคุณยังคงจัดระเบียบโค้ดของคุณโดยใช้วิธีการจากบนลงล่างภายในบล็อกรหัสของรอบนอก
foreach
:คุณมี
if
คําสั่ง เพื่อประเมินชื่อของนักเรียนif (currentStudent == "Sophia")
ปัจจุบัน เมื่อนิพจน์ประเมินเป็นtrue
คุณกําหนดอาร์เรย์คะแนนของนักเรียนให้กับอาร์เรย์การวินิจฉัยนักเรียนของคุณ ตัวอย่างเช่น:studentScores = sophiaScores;
คุณประกาศตัวแปรสองตัวที่จําเป็นสําหรับการคํานวณระดับชั้นของนักเรียน ตัวแปร
sumAssignmentScores
แรก จะใช้ในการคํานวณผลรวมของคะแนนการกําหนด ตัวแปรcurrentStudentGrade
ที่สอง จะใช้ในการคํานวณเกรดตัวเลขสุดท้าย คุณเริ่มต้นตัวแปรด้วยค่าของ0
คุณมีรอบ
foreach
ที่วนซ้ําผ่านstudentScores
เพื่อคํานวณค่าของsumAssignmentScores
คุณคํานวณ
currentStudentGrade
โดยการsumAssignmentScores
หารตามจํานวนงานในหนังสือเกรด จํานวนการกําหนดเกรดจะถูกเก็บไว้ในตัวแปรที่currentAssignments
ชื่อคุณมีโครงสร้าง
if-elseif-else
ที่กําหนดเกรดตัวอักษรตามค่าของcurrentStudentGrade
คุณมี
Console.WriteLine()
ข้อความว่าเขียนชื่อและเกรดของนักเรียนไปยังคอนโซลเพื่อสร้างรายงานการไล่ระดับสีให้เสร็จสมบูรณ์
ค้นหาคําสั่ง
Console.WriteLine()
ที่เขียนชื่อและเกรดของนักเรียนไปยังคอนโซลConsole.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t?");
โปรดสังเกตว่าคุณยังต้องมีตัวอักษรจากการคํานวณในรายงานการไล่ระดับสี
หากต้องการรวมค่าของ
currentStudentLetterGrade
ในรายงานการให้คะแนน ให้อัปเดตโค้ดของคุณดังนี้:Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t{currentStudentLetterGrade}");
บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Student Grade Sophia 92.2 A- Andrew 89.6 B+ Emma 85.6 B Logan 91.2 A- Press the Enter key to continue
แอปพลิเคชันของคุณจะมารวมกันจริง ๆ ในตอนนี้ คุณต้องรวมการกําหนดเครดิตเพิ่มเติม
รวมคะแนนเครดิตเพิ่มเติมภายในสาขารหัส
สําหรับงานนี้ คุณจะต้องอัปเดตแอปพลิเคชันเพื่อรองรับงานเครดิตเพิ่มเติมที่นักเรียนเปิดให้ใช้งาน นักเรียนจะจบโครงการเครดิตพิเศษเพื่อรับคะแนนโบนัสที่สามารถช่วยให้นําเกรดขึ้น ครูได้ให้คะแนนเครดิตเพิ่มเติมแก่นักเรียนแต่ละคนโดยพิจารณาจากสิ่งที่นักเรียนให้มา:
- โซเฟีย: 94, 90
- แอนดรู: 89
- เอ็มม่า: 89, 89, 89
- โลแกน: 96
คุณจะได้ใช้คะแนนเครดิตเพิ่มเติมเหล่านี้และข้อกําหนดในการใช้งานที่ครูมีให้เพื่อทํางานนี้ให้เสร็จสมบูรณ์
ใช้เวลาสักครู่เพื่อพิจารณาข้อกําหนดของโครงการที่เกี่ยวข้องกับการกําหนดเครดิตเพิ่มเติม
หน่วย "เตรียม" สําหรับโมดูลโครงการที่แนะนํานี้ประกอบด้วยส่วน ภาพรวมโครงการ ที่รวมถึงข้อกําหนดต่อไปนี้:
แอปพลิเคชันของคุณต้องรองรับการกําหนดเครดิตเพิ่มเติม
- คะแนนเครดิตเพิ่มเติมจะต้องรวมอยู่ในอาร์เรย์คะแนนของนักเรียน
- การกําหนดเครดิตเพิ่มเติมจะคุ้มค่ากับ 10% ของคะแนนการสอบเมื่อนําไปใช้กับระดับตัวเลขสุดท้าย
- ต้องเพิ่มคะแนนการมอบหมายเครดิตเพิ่มเติมไปยังคะแนนการสอบทั้งหมดของนักเรียนก่อนคํานวณคะแนนขั้นสุดท้าย
รวมคะแนนเครดิตเพิ่มเติมเมื่อคํานวณตัวเลขสุดท้ายและตัวอักษรของนักเรียนดังนี้:
- รหัสของคุณต้องตรวจพบการกําหนดเครดิตเพิ่มเติมโดยยึดตามจํานวนองค์ประกอบในอาร์เรย์คะแนนของนักเรียน
- รหัสของคุณต้องนําปัจจัยถ่วงน้ําหนัก% 10 รายการไปใช้กับการกําหนดเครดิตเพิ่มเติมก่อนที่จะเพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวมของคะแนนการสอบ
เลื่อนไปที่ด้านบนของไฟล์ Program.cs ของคุณ
หากต้องการเพิ่มคะแนนการกําหนดเครดิตเพิ่มเติมของโซเฟียไปยัง
sophiaScores
อาร์เรย์ ให้อัปเดตรหัสดังต่อไปนี้:int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 };
โปรดสังเกตว่าคุณได้เพิ่มคะแนนเครดิตเพิ่มเติม และ
94
90
ลงในรายการคะแนนที่รวมอยู่ในอาร์เรย์ ง่ายเพิ่มคะแนนเครดิตเพิ่มเติมสําหรับนักเรียนคนอื่น ๆ ในอาร์เรย์คะแนนของพวกเขา
ตรวจสอบให้แน่ใจว่าอาร์เรย์คะแนนของนักเรียนตรงกับโค้ดต่อไปนี้:
int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90, 89 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68, 89, 89, 89 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96, 96 };
เลื่อนลงเพื่อค้นหารอบด้าน
foreach
ในที่ใช้ในการรวมคะแนนการกําหนดforeach (int score in studentScores) { // add the exam score to the sum sumAssignmentScores += score; }
ใช้เวลาสักครู่เพื่อพิจารณาการอัปเดตที่คุณจําเป็นต้องใช้
ก่อนอื่น ให้พิจารณาสิ่งที่คุณรู้จักแล้ว:
- คุณทราบว่าการ
foreach
วนรอบจะทําซ้ําตามลําดับผ่านองค์ประกอบทั้งหมดของอาร์เรย์โดยไม่คํานึงถึงจํานวนองค์ประกอบที่มีอาร์เรย์ - คุณทราบว่านักเรียนมีคะแนนการสอบห้าคะแนนและคุณมีตัวแปรที่เกี่ยวข้อง:
int currentAssignments = 5;
- คุณทราบว่าคะแนนเครดิตเพิ่มเติมจะรวมอยู่ในตอนท้ายของอาร์เรย์
- คุณทราบว่าคะแนนเครดิตเพิ่มเติมมีมูลค่า 10% ของคะแนนการสอบ
- คุณทราบว่าต้องเพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวมของคะแนนการสอบก่อนที่จะคํานวณคะแนนที่เป็นตัวเลขขั้นสุดท้ายของนักเรียน
ตอนนี้ให้พิจารณาสิ่งที่คุณต้องการ:
- คุณจําเป็นต้องตรวจหาคะแนนในอาร์เรย์คะแนนที่มีคะแนนเครดิตเพิ่มเติม
- คุณจําเป็นต้องปรับค่าของคะแนนเครดิตเพิ่มเติมใด ๆ เพื่อให้มีมูลค่า 10% ของคะแนนการสอบ
- คุณจําเป็นต้องอัปเดตการคํานวณที่ใช้ในการหาผลรวมคะแนนของนักเรียนเพื่อให้ผลรวมมีคะแนนเครดิตเพิ่มเติม
- คุณทราบว่าการ
ระบุการอัปเดตการเข้ารหัสที่จําเป็นเพื่อแยกความแตกต่างระหว่างคะแนนการสอบและคะแนนเครดิตเพิ่มเติม
คุณทราบว่าคะแนนเครดิตเพิ่มเติมจะแสดงอยู่หลังจากคะแนนการสอบห้าคะแนน กล่าวอีกนัยหนึ่งคะแนนเครดิตเพิ่มเติมแรกจะเป็นคะแนนที่หกในอาร์เรย์คะแนน ความสัมพันธ์ระหว่างชนิดคะแนนและหมายเลของค์ประกอบอาร์เรย์จะบอกคุณว่าคุณต้องการตัวนับภายใน
foreach
รอบ เมื่อค่าตัวนับของคุณมากกว่าจํานวนคะแนนการสอบคุณทราบว่าคะแนนปัจจุบันเป็นคะแนนเครดิตเพิ่มเติมนี่คือสิ่งที่คุณต้องดําเนินการเพื่อแยกความแตกต่างระหว่างคะแนนการสอบและคะแนนเครดิตเพิ่มเติม:
- คุณจําเป็นต้องตรวจนับจํานวนเต็มเหนือลูปด้าน
foreach
ในที่สามารถใช้เพื่อนับจํานวนการกําหนดที่มีคะแนน คุณสามารถตั้งชื่อตัวแปรgradedAssignments
นี้ได้ - คุณต้องเพิ่มทีละ
gradedAssignments
1
ข้างในforeach
รอบ ถ้าคุณเริ่มต้นgradedAssignments
ที่0
จากนั้นคุณสามารถเพิ่มตัวนับของคุณที่ด้านบนของforeach
บล็อกรหัส - คุณจําเป็นต้องมี
if
คําสั่งที่ประเมินว่าตัวนับgradedAssignments
ของคุณมีมากกว่าจํานวนเกรดการสอบหรือไม่ ตัวแปรที่เก็บจํานวนการกําหนดการสอบมีชื่อว่าcurrentAssignments
ชื่อนี้อาจทําให้เกิดความสับสนในตอนนี้ที่คุณมีการกําหนดเครดิตเพิ่มเติมนอกเหนือจากการกําหนดแบบทดสอบ คุณควรเปลี่ยนชื่อตัวแปรจากcurrentAssignments
เป็นexamAssignments
เมื่อนําการเปลี่ยนชื่อนี้ไปใช้ คุณสามารถใช้if
เพื่อประเมิน(gradedAssignments <= examAssignments)
ได้
- คุณจําเป็นต้องตรวจนับจํานวนเต็มเหนือลูปด้าน
เปลี่ยนชื่อตัวแปรจาก
currentAssignments
เป็นexamAssignments
สําคัญ
เมื่อเปลี่ยนชื่อตัวแปร คุณจะต้องตรวจสอบให้แน่ใจว่าคุณอัปเดตอินสแตนซ์ทั้งหมดของตัวแปรในแอปพลิเคชันของคุณ ในกรณีนี้ มีสองอินสแตนซ์
การสนับสนุนแผงตัวแก้ไขรหัส Visual Studio โดยใช้การควบคุม + แป้นพิมพ์ลัดF เพื่อค้นหาข้อความที่คุณระบุ แผงตัวแก้ไขรหัส Visual Studio ยังรองรับการใช้แป้นพิมพ์ลัด Control + H เพื่อค้นหาและแทนที่ข้อความที่คุณระบุ
สร้างบรรทัดรหัสว่างเหนือการ
foreach
วนรอบที่ใช้ในการรวมคะแนนการกําหนดบนบรรทัดรหัสที่ว่างเปล่า เพื่อตรวจนับตัวแปรจํานวนเต็มที่
gradedAssignments
ชื่อและเริ่มต้นเป็น0
ให้ป้อนรหัสต่อไปนี้:// initialize/reset a counter for the number of assignments int gradedAssignments = 0;
สร้างบรรทัดรหัสว่างที่ด้านบนของบล็อกรหัสสําหรับการ
foreach
วนรอบที่ใช้ในการรวมคะแนนการกําหนดบนบรรทัดรหัสที่ว่างเปล่าหากต้องการเพิ่มทีละ
gradedAssignments
1
สําหรับการวนforeach
รอบแต่ละครั้ง ให้ป้อนโค้ดต่อไปนี้:// increment the assignment counter gradedAssignments += 1;
เมื่อต้องการสร้าง
if
คําสั่งที่ประเมินนิพจน์(gradedAssignments <= examAssignments)
ให้ใส่โค้ดต่อไปนี้:if (gradedAssignments <= examAssignments)
ระบุการอัปเดตการเข้ารหัสที่จําเป็นสําหรับการคํานวณที่ใช้ในการหาผลรวมคะแนนของนักเรียน
เมื่อคําสั่งของคุณ
if
ประเมิน(gradedAssignments <= examAssignments)
เป็นtrue
คะแนนเป็นคะแนนการสอบ และคุณสามารถเพิ่มค่าไปยังผลรวมของคุณได้ ถ้านิพจน์ไม่ประเมินเป็นtrue
ดังนั้นคะแนนจะเป็นคะแนนเครดิตเพิ่มเติม และคุณจําเป็นต้องหารด้วย 10 ก่อนที่คุณจะสามารถเพิ่มค่าไปยังผลรวมของคุณได้ โครงสร้างif-else
จะสมบูรณ์แบบโปรดสังเกตว่าสมการ
sumAssignmentScores += score;
ที่มีอยู่ เป็นการคํานวณที่ถูกต้องที่จะใช้เมื่อคําสั่งของคุณif
ประเมิน(gradedAssignments <= examAssignments)
เป็นtrue
สร้างบรรทัดรหัสที่ว่างเปล่าด้านล่าง
sumAssignmentScores += score;
บนบรรทัดรหัสที่ว่างเปล่า เพื่อสร้าง
else
ส่วนของif-else
โครงสร้าง ให้พิมพ์ อื่นๆ แล้วกด Enterหากต้องการสร้างสมการที่เพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวม ให้ป้อนรหัสต่อไปนี้:
// add the extra credit points to the sum - bonus points equal to 10% of an exam score sumAssignmentScores += score / 10;
บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ใช้เวลาสักครู่เพื่อตรวจสอบรหัสแอปพลิเคชันของคุณ
ตรวจสอบให้แน่ใจว่าแอปพลิเคชันที่อัปเดตแล้วของคุณตรงกับโค้ดต่อไปนี้:
// initialize variables - graded assignments int examAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90, 89 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68, 89, 89, 89 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96, 96 }; // Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" }; int[] studentScores = new int[10]; string currentStudentLetterGrade = ""; // Write the Report Header to the console Console.WriteLine("Student\t\tGrade\n"); foreach (string name in studentNames) { string currentStudent = name; if (currentStudent == "Sophia") studentScores = sophiaScores; else if (currentStudent == "Andrew") studentScores = andrewScores; else if (currentStudent == "Emma") studentScores = emmaScores; else if (currentStudent == "Logan") studentScores = loganScores; // initialize/reset the sum of scored assignments int sumAssignmentScores = 0; // initialize/reset the calculated average of exam + extra credit scores decimal currentStudentGrade = 0; // initialize/reset a counter for the number of assignment int gradedAssignments = 0; // loop through the scores array and complete calculations for currentStudent foreach (int score in studentScores) { // increment the assignment counter gradedAssignments += 1; if (gradedAssignments <= examAssignments) // add the exam score to the sum sumAssignmentScores += score; else // add the extra credit points to the sum - bonus points equal to 10% of an exam score sumAssignmentScores += score / 10; } currentStudentGrade = (decimal)(sumAssignmentScores) / examAssignments; if (currentStudentGrade >= 97) currentStudentLetterGrade = "A+"; else if (currentStudentGrade >= 93) currentStudentLetterGrade = "A"; else if (currentStudentGrade >= 90) currentStudentLetterGrade = "A-"; else if (currentStudentGrade >= 87) currentStudentLetterGrade = "B+"; else if (currentStudentGrade >= 83) currentStudentLetterGrade = "B"; else if (currentStudentGrade >= 80) currentStudentLetterGrade = "B-"; else if (currentStudentGrade >= 77) currentStudentLetterGrade = "C+"; else if (currentStudentGrade >= 73) currentStudentLetterGrade = "C"; else if (currentStudentGrade >= 70) currentStudentLetterGrade = "C-"; else if (currentStudentGrade >= 67) currentStudentLetterGrade = "D+"; else if (currentStudentGrade >= 63) currentStudentLetterGrade = "D"; else if (currentStudentGrade >= 60) currentStudentLetterGrade = "D-"; else currentStudentLetterGrade = "F"; //Console.WriteLine("Student\t\tGrade\tLetter Grade\n"); Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t{currentStudentLetterGrade}"); } // required for running in VS Code (keeps the Output windows open to view results) Console.WriteLine("\n\rPress the Enter key to continue"); Console.ReadLine();
ตรวจสอบงานของคุณ
สําหรับงานนี้ คุณจะเรียกใช้แอปพลิเคชันเพื่อตรวจสอบว่าตรรกะรหัสของคุณทํางานตามที่คาดไว้หรือไม่
ตรวจสอบให้แน่ใจว่าคุณได้บันทึกการเปลี่ยนแปลงของคุณไปยังไฟล์ Program.cs
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Student Grade Sophia 95.8 A Andrew 91.2 A- Emma 90.4 A- Logan 93 A Press the Enter key to continue
ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter
ปิดแผงเทอร์มินัล
ใช้เวลาสักครู่เพื่อพิจารณาข้อกําหนดของโครงการต่อไปนี้:
- แอปพลิเคชันของคุณต้องสนับสนุนการเพิ่มนักเรียนและคะแนนเพิ่มเติมโดยมีผลกระทบต่อโค้ดน้อยที่สุด
มีข้อกําหนดที่สําคัญใด ๆ สําหรับแอปพลิเคชันของคุณถูกมองข้ามไปหรือไม่
ตรวจสอบว่าการรวมกันของอาร์เรย์และ
foreach
รอบช่วยให้คุณสามารถรวมนักเรียนเพิ่มเติมได้โดยไม่ต้องเขียนโค้ดใหม่ทั้งหมดหรือไม่เลื่อนไปที่ด้านบนของแอปพลิเคชัน Program.cs ของคุณ จากนั้นอัปเดตอาร์เรย์ดังนี้:
int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90, 89 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68, 89, 89, 89 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96, 96 }; int[] beckyScores = new int[] { 92, 91, 90, 91, 92, 92, 92 }; int[] chrisScores = new int[] { 84, 86, 88, 90, 92, 94, 96, 98 }; int[] ericScores = new int[] { 80, 90, 100, 80, 90, 100, 80, 90 }; int[] gregorScores = new int[] { 91, 91, 91, 91, 91, 91, 91 }; // Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan", "Becky", "Chris", "Eric", "Gregor" };
เลื่อนลงไปที่การวนรอบชื่อ
foreach
จากนั้นค้นหาบรรทัดโค้ดต่อไปนี้:if (currentStudent == "Sophia") studentScores = sophiaScores; else if (currentStudent == "Andrew") studentScores = andrewScores; else if (currentStudent == "Emma") studentScores = emmaScores; else if (currentStudent == "Logan") studentScores = loganScores;
หากต้องการรวมนักเรียนใหม่ ให้เพิ่มรหัสต่อไปนี้ลงในส่วนท้ายของโครงสร้างการเลือกของคุณ:
else if (currentStudent == "Becky") studentScores = beckyScores; else if (currentStudent == "Chris") studentScores = chrisScores; else if (currentStudent == "Eric") studentScores = ericScores; else if (currentStudent == "Gregor") studentScores = gregorScores; else continue;
บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Student Grade Sophia 95.8 A Andrew 91.2 A- Emma 90.4 A- Logan 93 A Becky 94.8 A Chris 93.4 A Eric 93.4 A Gregor 94.6 A Press the Enter key to continue
ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter
ปิดแผงเทอร์มินัล
ขอแสดงความยินดี คุณได้เสร็จสิ้นโครงการที่แนะนํานี้แล้ว!