แบบฝึกหัด - สร้างโครงสร้างลูปที่ซ้อนกันสําหรับการคํานวณระดับนักเรียน

เสร็จสมบูรณ์เมื่อ

ในแบบฝึกหัดนี้ คุณเพิ่มอาร์เรย์สตริงเพื่อเก็บชื่อนักเรียนจากนั้นใช้โครงสร้างที่ซ้อนกัน foreach ที่ทําซ้ําผ่านชื่อนักเรียนในลูปภายนอกและคะแนนของนักเรียนในลูปภายใน คุณเริ่มต้นด้วยการสร้าง studentNames อาร์เรย์ และ foreach ลูปที่ทําซ้ําผ่านองค์ประกอบอาร์เรย์ ถัดไป คุณย้ายรหัสที่ใช้ในการคํานวณเกรดของโซเฟียลงในบล็อกรหัสของลูป "ชื่อ" ในขั้นตอนสุดท้าย คุณใช้ตรรกะโค้ดที่ใช้ชื่อของนักเรียนเพื่อเข้าถึงอาร์เรย์คะแนน คํานวณคะแนนเฉลี่ยและเขียนเกรดไปยังคอนโซล งานโดยละเอียดที่คุณทําเสร็จสิ้นในระหว่างแบบฝึกหัดนี้ได้แก่:

  1. สร้างอาร์เรย์ชื่อ: สร้างอาร์เรย์ชื่อนักเรียน

  2. สร้างรอบนอก: สร้าง foreach รอบที่วนซ้ําผ่านชื่อนักเรียน

  3. พัฒนาบล็อกโค้ดรอบนอก: ย้ายตําแหน่งโค้ดที่คํานวณและรายงานคะแนนของโซเฟีย โดยวางไว้ในบล็อกโค้ดของลูป "ชื่อ"

  4. อัปเดตการคํานวณและการรายงาน: อัปเดตรหัสที่ทําการคํานวณคะแนนนักเรียนโดยใช้อาร์เรย์คะแนนใหม่

สําคัญ

คุณจําเป็นต้องทําแบบฝึกหัดก่อนหน้านี้ของมอดูลนี้เสร็จสิ้นแล้ว "สร้างอาร์เรย์และลูป foreach" ก่อนที่คุณจะเริ่มแบบฝึกหัดนี้

สร้างอาร์เรย์ชื่อนักเรียนและลูป foreach ภายนอก

ในงานนี้คุณจะสร้างอาร์เรย์ชื่อนักเรียนและ foreach ลูปที่ทําซ้ําผ่านชื่อนักเรียน

  1. ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs เปิดในตัวแก้ไขรหัส Visual Studio

  2. เลื่อนไปที่ด้านบนของไฟล์โค้ดของคุณ จากนั้นค้นหาบรรทัดโค้ดที่ใช้ในการประกาศอาร์เรย์คะแนน

  3. สร้างบรรทัดรหัสที่ว่างเปล่าใต้การประกาศของอาร์เรย์คะแนน

    บรรทัดรหัสที่ว่างเปล่าของคุณควรอยู่ระหว่างบรรทัดที่ใช้ในการตรวจนับอาร์เรย์ คะแนน และบรรทัดที่ใช้เพื่อประกาศsophiaSum

  4. หากต้องการสร้างอาร์เรย์สตริงที่มี studentNames ชื่อซึ่งมีชื่อของนักเรียน ให้ป้อนรหัสต่อไปนี้:

    // Student names
    string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" };
    

    โปรดสังเกตว่าคุณได้ระบุชื่อนักเรียนเป็นส่วนหนึ่งของการประกาศ

  5. หากต้องการสร้าง foreach คําสั่งที่คุณสามารถใช้เพื่อทําซ้ําผ่านชื่อนักเรียน ให้ป้อนรหัสต่อไปนี้:

    foreach (string name in studentNames)
    {
    }
    
  6. เพื่อตรวจสอบว่าการวนรอบของคุณ foreach วนซ้ําผ่าน studentNames อาร์เรย์ตามที่คุณต้องการหรือไม่ ให้อัปเดตบล็อกรหัสของ foreach คําสั่งดังนี้:

    foreach (string name in studentNames)
    {
        Console.WriteLine($"{name}");
    
    }
    
  7. ใช้เวลาสักครู่เพื่อตรวจสอบโค้ดที่คุณสร้างขึ้น

    // Student names
    string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" };
    
    foreach (string name in studentNames)
    {
        Console.WriteLine($"{name}");
    
    }
    

    โค้ดของคุณจะใช้รอบนี้เป็น foreach รอบนอกของแอปพลิเคชันของคุณ ระหว่างแบบฝึกหัดนี้ คุณจะใช้ตรรกะต่อไปนี้ในแอปพลิเคชันของคุณ:

    สําหรับนักเรียนแต่ละคนใน studentNames อาร์เรย์ ใบสมัครของคุณจะ:

    • กําหนดให้นักเรียนปัจจุบัน
    • เข้าถึงคะแนนของนักเรียนปัจจุบัน
    • คํานวณเกรดของนักเรียนปัจจุบัน (ผลรวมและค่าเฉลี่ย)
    • เขียนเกรดของนักเรียนปัจจุบันไปยังคอนโซล

    อย่างไรก็ตามในตอนนี้คุณเพียงแค่เขียนชื่อของนักเรียนไปยังคอนโซล

  8. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

  9. ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม

    สําคัญ

    พร้อมท์คําสั่งเทอร์มินัลต้องแสดงเส้นทางโฟลเดอร์สําหรับไฟล์ Program.cs ของคุณ

  10. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter

    คําสั่ง dotnet build แนะนําคอมไพเลอร์เพื่อสร้างแอปพลิเคชัน ถ้าตรวจพบข้อผิดพลาดใดๆ ข้อผิดพลาดเหล่านั้นจะถูกรายงาน

  11. ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ

  12. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter

  13. ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:

    Sophia
    Andrew
    Emma
    Logan
    Student         Grade
    
    Sophia:         92.2    A-
    Press the Enter key to continue
    

    หมายเหตุ

    หากคุณไม่เห็นรายชื่อนักเรียนที่อยู่เหนือรายงานคะแนนของโซเฟีย ให้ย้อนกลับไปและตรวจสอบว่าคุณป้อนรหัสของคุณอย่างถูกต้อง

  14. ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter

  15. ปิดแผงเทอร์มินัล

คํานวณคะแนนของโซเฟียภายในรอบชื่อภายนอก

ในงานนี้ คุณจะย้ายรหัสที่คํานวณและรายงานคะแนนของโซเฟีย โดยวางไว้ในบล็อกรหัสของลูป "ชื่อ"

  1. ใน Visual Studio Code Editor ให้ค้นหาตําแหน่งบรรทัดโค้ดที่ใช้ในการคํานวณและรายงานเกรดของโซเฟีย

    int sophiaSum = 0;
    
    decimal sophiaScore;
    
    foreach (int score in sophiaScores)
    {
        // add the exam score to the sum
        sophiaSum += score;
    
    }
    
    sophiaScore = (decimal)sophiaSum / currentAssignments;
    
    Console.WriteLine("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
    

    หมายเหตุ

    ขั้นตอนถัดไปของคุณคือการย้ายรหัสนี้จากตําแหน่งปัจจุบันไปยังบล็อกรหัสของการวนรอบ "ชื่อ" foreach

  2. ใช้การดําเนินการตัดและวางเพื่อย้ายรหัสที่คํานวณและรายงานเกรดของโซเฟียไปยังบล็อกรหัสของลูป "ชื่อ" foreach

    ถ้าคุณไม่แน่ใจเกี่ยวกับวิธีการตัดและวางในรหัส Visual Studio ให้ลองใช้วิธีการที่อธิบายไว้ในขั้นตอนต่อไปนี้:

    1. เลือกรหัสที่ใช้ในการคํานวณและรายงานเกรดของโซเฟีย

      คุณสามารถคลิกแล้วลากเพื่อเลือกบรรทัดรหัสได้

    2. บนเมนูแก้ไขรหัส Visual Studio เลือกตัด

    3. ในตัวแก้ไขรหัส Visual Studio ให้วางเคอร์เซอร์บนบรรทัดโค้ดว่างด้านล่างโค้ดต่อไปนี้: Console.WriteLine($"{name}");

    4. บนเมนูแก้ไขรหัส Visual Studio เลือกวาง

  3. อัปเดตโค้ดของคุณเพื่อแสดงการเยื้องบรรทัดโค้ดที่เหมาะสม

    เคล็ดลับ

    Visual Studio Code มี Format Document คําสั่งที่สามารถใช้เพื่อทําให้การจัดรูปแบบโค้ดของคุณอัปเดตอยู่เสมอ คลิกขวาภายใน Visual Studio Code Editor จากนั้นเลือก จัดรูปแบบเอกสาร จากเมนูป็อปอัพ บนคอมพิวเตอร์ Windows แป้นพิมพ์ลัดสําหรับคําสั่งนี้คือ: Shift + Alt + F คอมพิวเตอร์ Linux และ macOS ใช้ทางลัดทางเลือกเมื่อจําเป็นเพื่อหลีกเลี่ยงความขัดแย้งกับทางลัดระบบปฏิบัติการที่ให้มา

  4. ตรวจสอบให้แน่ใจว่าการอัปเดตของคุณตรงกับโค้ดต่อไปนี้:

    // Student names
    string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" };
    
    foreach (string name in studentNames)
    {
        Console.WriteLine($"{name}");
        int sophiaSum = 0;
    
        decimal sophiaScore;
    
        foreach (int score in sophiaScores)
        {
            // add the exam score to the sum
            sophiaSum += score;
    
        }
    
        sophiaScore = (decimal)sophiaSum / currentAssignments;
    
        Console.WriteLine("Student\t\tGrade\n");
        Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
    }
    
    Console.WriteLine("Press the Enter key to continue");
    Console.ReadLine();
    

    โปรดสังเกตว่าณ จุดนี้รหัสของคุณจะคํานวณและรายงานคะแนนของโซเฟียโดยไม่ name คํานึงถึงนักเรียนปัจจุบัน อีกไม่นานคุณจะจัดการเรื่องนั้นเอง

  5. ลบโค้ดต่อไปนี้:

    Console.WriteLine($"{name}");
    
  6. บนบรรทัดรหัสว่างที่คุณเพิ่งสร้าง ให้ป้อนรหัสต่อไปนี้:

    if (name == "Sophia")
    {    
    
  7. สร้างบรรทัดโค้ดว่างหลังโค้ดที่ใช้เขียนเกรดของโซเฟียไปยังคอนโซล

  8. เมื่อต้องการปิดบล็อกรหัสของ if คําสั่ง ให้ป้อนโค้ดต่อไปนี้:

    }    
    
  9. อัปเดตโค้ดของคุณเพื่อแสดงการเยื้องบรรทัดโค้ดที่เหมาะสม

    เคล็ดลับ

    Format Documentใช้คําสั่ง เพื่อให้การจัดรูปแบบโค้ดของคุณอัปเดตอยู่เสมอ คลิกขวาภายในแผง Visual Studio Code Editor จากนั้นเลือก จัดรูปแบบเอกสาร จากเมนูป็อปอัพ

  10. ใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ

    โค้ดของคุณควรตรงกับโค้ดต่อไปนี้:

    // 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"};
    
    foreach (string name in studentNames)
    {
        if (name == "Sophia")
        {
            int sophiaSum = 0;
            decimal sophiaScore;
    
            foreach (int score in sophiaScores)
            {
                // add the exam score to the sum
                sophiaSum += score;
            }
    
            sophiaScore = (decimal)(sophiaSum) / currentAssignments;
    
            Console.WriteLine("Student\t\tGrade\n");
            Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
        }
    }
    
    Console.WriteLine("Press the Enter key to continue");
    Console.ReadLine();
    

    โปรดสังเกตว่า if คําสั่งภายในขีดจํากัดบล็อกรหัสภายนอก foreach ของคุณซึ่งเกรดของนักเรียนถูกคํานวณและรายงาน นี่ไม่ใช่สิ่งที่คุณต้องการ แต่เป็นขั้นตอนในทิศทางที่ถูกต้อง

  11. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

  12. ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม

    สําคัญ

    พร้อมท์คําสั่งเทอร์มินัลต้องแสดงเส้นทางโฟลเดอร์สําหรับไฟล์ Program.cs ของคุณ

  13. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter

    คําสั่ง dotnet build แนะนําคอมไพเลอร์เพื่อสร้างแอปพลิเคชัน ถ้าตรวจพบข้อผิดพลาดใดๆ ข้อผิดพลาดเหล่านั้นจะถูกรายงาน

  14. ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ

  15. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter

  16. ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:

    Student         Grade
    
    Sophia:         92.2    A-
    

    หมายเหตุ

    ถ้าคุณยังคงเห็นรายชื่อนักเรียนที่แสดงอยู่เหนือรายงานคะแนนของโซเฟีย ตรวจสอบให้แน่ใจว่าคุณได้บันทึกการอัปเดตของคุณแล้ว

  17. ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter

  18. ปิดแผงเทอร์มินัล

อัปเดตรอบซ้อนเพื่อคํานวณคะแนนของนักเรียนทั้งหมด

ในงานนี้ คุณจะอัปเดตรหัสที่ทําการคํานวณคะแนนนักเรียนโดยใช้อาร์เรย์คะแนนใหม่ คุณจะเริ่มต้นโดยการสร้างอาร์เรย์ที่ชื่อ studentScores ว่าสามารถใช้เพื่อเก็บคะแนนของนักเรียนทุกคน ถัดไป คุณจะสร้างโครงสร้างif .. elseifที่ใช้ชื่อของนักเรียนปัจจุบันเพื่อกําหนดอาร์เรย์คะแนนของนักเรียนให้กับstudentScores ในท้ายที่สุด คุณจะอัปเดตโค้ดที่คํานวณและรายงานเกรดของนักเรียน เมื่อคุณทําเสร็จแล้ว รายงานควรมีชื่อและคะแนนเป็นตัวเลขสําหรับนักเรียนทุกคน

  1. สร้างบรรทัดรหัสที่ว่างเปล่าใต้การประกาศของ studentNames อาร์เรย์

    บรรทัดว่างควรอยู่เหนือคําสั่งภายนอกforeach

  2. หากต้องการสร้างอาร์เรย์จํานวนเต็มที่คุณสามารถใช้เพื่อเก็บคะแนนของนักเรียนปัจจุบัน ให้ป้อนรหัสต่อไปนี้:

    int[] studentScores = new int[10];
    
    

    โปรดสังเกตว่ารหัสนี้ไม่ได้กําหนดค่าใด ๆ กับอาร์เรย์ที่จุดนี้ คุณเพียงแค่ระบุว่าอาร์เรย์สามารถประกอบด้วยองค์ประกอบ 10 รายการได้

  3. สร้างบรรทัดโค้ดว่างที่ด้านบนของบล็อกรหัสภายนอกforeach

    บรรทัดที่ว่างเปล่าควรอยู่ภายในforeachบล็อกรหัสและเหนือifคําสั่งที่ประเมินว่าเท่ากับโซเฟียหรือไม่name

  4. หากต้องการสร้างตัวแปรสตริงที่จะใช้เพื่อเก็บชื่อของนักเรียนปัจจุบัน ให้ป้อนรหัสต่อไปนี้:

    string currentStudent = name;
    
    

    หมายเหตุ

    nameคุณสามารถใช้ เพื่อติดตามชื่อของนักเรียนปัจจุบันในขณะที่คุณทําซ้ําในอาร์เรย์ชื่อ แต่การใช้ currentStudent จะทําให้ง่ายต่อการเข้าใจตรรกะของโค้ดเมื่อคุณสร้างแอปพลิเคชันของคุณในขั้นตอนถัดไป

  5. หากต้องการแทนที่ currentStudentname ใน if คําสั่งที่ประเมินว่าเท่ากับโซเฟียหรือไม่ name ให้อัปเดตโค้ดของคุณดังนี้:

    if (currentStudent == "Sophia")
    
  6. ย้ายรหัสที่คํานวณและรายงานคะแนนของโซเฟียไปยังตําแหน่งที่ตั้งด้านล่างของบล็อกรหัส

    คุณกําลังย้ายรหัสทั้งหมดที่อยู่ในบล็อกโค้ดไปยังตําแหน่งที่ตั้งด้านล่างบล็อกรหัส เหตุผลในการทําเช่นนี้จะกลายเป็นชัดเจนในช่วงสองสามขั้นตอนถัดไป

  7. ตรวจสอบว่าโค้ดในบล็อกโค้ดภายนอก foreach ตรงกับโค้ดต่อไปนี้:

    {
        string currentStudent = name;
    
        if (currentStudent == "Sophia")
        {
        }
    
        int sophiaSum = 0;
        decimal sophiaScore;
    
        foreach (int score in sophiaScores)
        {
            // add the exam score to the sum
            sophiaSum += score;
    
        }
    
        sophiaScore = (decimal)sophiaSum / currentAssignments;
    
        Console.WriteLine("Student\t\tGrade\n");
        Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
    
    }
    
  8. sophiaScoresเพื่อกําหนดอาร์เรย์ เป็น studentScores เมื่อ currentStudent == "Sophia"อัปเดตรหัสคําสั่งของคุณifดังต่อไปนี้:

    if (currentStudent == "Sophia")
        studentScores = sophiaScores;
    
    

    โปรดสังเกตว่าคุณได้ลบวงเล็บปีกกาออกจาก if บล็อกรหัสคําสั่งในระหว่างการอัปเดตรหัสนี้

  9. เมื่อต้องการเพิ่ม else if คําสั่งที่กําหนด andrewScores อาร์เรย์ ให้ studentScores เมื่อ currentStudent == "Andrew"ใส่รหัสต่อไปนี้:

    else if (currentStudent == "Andrew")
        studentScores = andrewScores;
    
    
  10. สร้างคําสั่งอื่นelse ifเพื่อกําหนดemmaScoresอาร์เรย์ ที่จะstudentScoresเมื่อcurrentStudent == "Emma"

  11. else ifสร้างคําสั่ง เพื่อกําหนดloganScoresอาร์เรย์ ที่จะstudentScoresเมื่อcurrentStudent == "Logan"

  12. ตรวจสอบให้แน่ใจว่าบล็อกโค้ดของคุณ foreach ตรงกับโค้ดต่อไปนี้:

    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;
    
        int sophiaSum = 0;
    
        decimal sophiaScore;
    
        foreach (int score in sophiaScores)
        {
            // add the exam score to the sum
            sophiaSum += score;
    
        }
    
        sophiaScore = (decimal)sophiaSum / currentAssignments;
    
        Console.WriteLine("Student\t\tGrade\n");
        Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
    
    }
    

    ถัดไป คุณจําเป็นต้องอัปเดตลูปภายใน foreach เพื่อใช้ studentScores และ "ไม่สนับสนุน" ตัวแปรที่คุณใช้ในการคํานวณของคุณ

  13. หากต้องการแทนที่studentScoressophiaScoresในการforeachวนรอบที่ทําซ้ําผ่านอาร์เรย์คะแนน ให้อัปเดตโค้ดของคุณดังนี้:

    foreach (int score in studentScores)
    
  14. หากต้องการแทนที่การประกาศตัวแปรเฉพาะของโซเฟียด้วยชื่อทั่วไปมากขึ้น ให้อัปเดตโค้ดของคุณดังนี้:

    int sumAssignmentScores = 0;
    
    decimal currentStudentGrade = 0;
    

    การประกาศตัวแปรสองตัวนี้มีจุดมุ่งหมายเพื่อแทนที่การประกาศตัวแปรเฉพาะของโซเฟียต่อไปนี้:

    int sophiaSum = 0;
    
    decimal sophiaScore;
    
  15. เมื่อต้องการนําชื่อตัวแปรใหม่ไปใช้กับสมการที่ใช้ในการหาผลรวมคะแนนของนักเรียน ให้อัปเดตบล็อกรหัสภายใน foreach ของคุณดังนี้:

    foreach (int score in studentScores)
    {
        // add the exam score to the sum
        sumAssignmentScores += score;
    }
    
  16. เมื่อต้องการนําชื่อตัวแปรใหม่ไปใช้กับสมการที่ใช้ในการคํานวณคะแนนเฉลี่ย ให้อัปเดตโค้ดของคุณดังนี้:

    currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments;
    
  17. ใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ

    int[] studentScores = new int[10];
    
    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;
    
        foreach (int score in studentScores)
        {
            // add the exam score to the sum
            sumAssignmentScores += score;
        }
    
        currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments;
    
        Console.WriteLine("Student\t\tGrade\n");
        Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
    
    }
    

    รอบที่ foreach ซ้อนกันของคุณจะทําซ้ําชื่อนักเรียนและใช้คะแนนของนักเรียนเพื่อคํานวณคะแนน แต่คุณยังจําเป็นต้องอัปเดตรหัสที่ใช้ในการสร้างรายงานคะแนน

  18. หากต้องการพิมพ์ชื่อนักเรียนและคะแนนจากการคํานวณไปยังคอนโซล ให้อัปเดตคําสั่งที่สอง Console.WriteLine ดังนี้:

    Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t?");
    

    โปรดสังเกตว่ารหัสนี้ได้แทนที่การกําหนดเกรดตัวอักษรด้วย "?" แล้ว คุณจะทํางานในการมอบหมายเกรดตัวอักษรโดยอัตโนมัติในแบบฝึกหัดถัดไป

  19. Console.WriteLineย้ายคําสั่งที่ใช้ในการเขียนป้ายชื่อคอลัมน์ของรายงานคะแนนของคุณไปยังตําแหน่งเหนือลูปภายนอกforeach

    คุณไม่ต้องการทําซ้ําส่วนหัวของคอลัมน์สําหรับคะแนนของนักเรียนแต่ละคน ดังนั้นคุณจึงย้ายรหัสนี้ไปยังจุดด้านบนของรอบนอกforeach

  20. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

  21. ใช้เวลาสักครู่เพื่อตรวจสอบรหัสแอปพลิเคชันของคุณ

    แอปพลิเคชันแบบเต็มของคุณควรตรงกับโค้ดต่อไปนี้:

    // 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];
    
    // 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;
    
        foreach (int score in studentScores)
        {
            // add the exam score to the sum
            sumAssignmentScores += score;
        }
    
        currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments;
    
        Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t?");
    }
    

    ด้วยโค้ดที่สร้างรายงานคะแนนของนักเรียนอัปเดตแล้ว จะปรากฏขึ้นว่าคุณพร้อมที่จะตรวจสอบงานของคุณ

ตรวจสอบงานของคุณ

สําหรับงานนี้ คุณจะเรียกใช้แอปพลิเคชันเพื่อตรวจสอบว่าตรรกะรหัสของคุณทํางานตามที่คาดไว้หรือไม่

  1. ตรวจสอบให้แน่ใจว่าคุณได้บันทึกการเปลี่ยนแปลงของคุณไปยังไฟล์ Program.cs

  2. ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม

  3. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter

  4. ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ

  5. ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter

  6. ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:

    Student         Grade
    
    Sophia          92.2    ?
    Andrew          89.6    ?
    Emma            85.6    ?
    Logan           91.2    ?
    Press the Enter key to continue
    
  7. ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter

  8. ปิดแผงเทอร์มินัล

ขอแสดงความยินดีแอปพลิเคชันของคุณมานานแล้วจากจุดที่คุณเริ่มต้น คุณกําลังใช้อาร์เรย์และ foreach การเกิดซ้ําที่มีประสิทธิภาพ และคุณได้รวม if คําสั่งที่เปิดใช้งานรหัสของคุณเพื่อเลือกอาร์เรย์คะแนนที่ถูกต้อง