แบบฝึกหัด - ใช้สาขาในรหัสโดยใช้คําสั่งการเลือก

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

ในแบบฝึกหัดนี้คุณพัฒนารหัสที่จะกําหนดเกรดตัวอักษรของนักเรียนโดยอัตโนมัติตามคะแนนตัวเลขสุดท้ายและคุณอัปเดตแอปพลิเคชั่นเพื่อให้คะแนนโครงการเครดิตเพิ่มเติมนั้นเป็นปัจจัยในเกรดสุดท้ายของนักเรียน คุณเริ่มต้นโดยการเขียนโครงสร้าง if-elseif-else ที่สามารถใช้เพื่อประเมินคะแนนตัวเลขของนักเรียนและกําหนดเกรดตัวอักษร ถัดไป คุณตรวจสอบข้อกําหนดของแอปพลิเคชันที่เกี่ยวข้องกับงานเครดิตเพิ่มเติมแล้วทํางานของคุณผ่านการอัปเดตรหัสที่จําเป็น งานโดยละเอียดที่คุณทําเสร็จสิ้นในระหว่างแบบฝึกหัดนี้ได้แก่:

  1. พัฒนาโครงสร้าง if-elseif-else ที่ประเมินคะแนนของนักเรียนเพื่อกําหนดเกรดตัวอักษร นิพจน์ที่มีการประเมินเปรียบเทียบคะแนนตัวเลขของนักเรียนกับคะแนนที่หลากหลายที่นํามาจากแผนภูมิการไล่ระดับสีที่มอบให้โดยครู

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

สําคัญ

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

กําหนดเกรดตัวอักษรโดยใช้โครงสร้างif-elseif-else

ในงานนี้ คุณพัฒนา if-elseif-else โครงสร้างที่สามารถใช้เพื่อกําหนดเกรดตัวอักษรตามคะแนนตัวเลขที่คํานวณ

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

  2. สร้างบรรทัดรหัสที่ว่างเปล่าที่อยู่ด้านล่างบรรทัดที่ใช้ในการตรวจนับ studentScores อาร์เรย์

  3. หากต้องการสร้างตัวแปรสตริงที่สามารถใช้เพื่อเก็บเกรดตัวอักษรของนักเรียนให้ป้อนรหัสต่อไปนี้:

    string currentStudentLetterGrade = "";
    
  4. เลื่อนลงไปที่ด้านล่างของไฟล์ Program.cs

  5. เพิ่มบรรทัดรหัสว่างใต้บรรทัดที่กําหนดค่าที่คํานวณเป็นcurrentStudentGrade

  6. ใช้เวลาสักครู่ในการพิจารณาแผนภูมิการไล่ระดับสีที่แสดงตัวอักษรเกรดที่สอดคล้องกับคะแนนตัวเลข

    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+"

  7. หากต้องการสร้างifคําสั่งที่กําหนดให้กับA+currentStudentLetterGradeเมื่อคะแนนของนักเรียนมากกว่าหรือเท่ากับ 97 ให้ป้อนรหัสต่อไปนี้:

    if (currentStudentGrade >= 97)
        currentStudentLetterGrade = "A+";
    
    
  8. หากต้องการสร้างelse ifคําสั่งที่กําหนดให้กับAcurrentStudentLetterGradeเมื่อคะแนนของนักเรียนมากกว่าหรือเท่ากับ 93 ให้ป้อนรหัสต่อไปนี้:

    else if (currentStudentGrade >= 93)
        currentStudentLetterGrade = "A";
    
    

    else ifจะไม่มีการกําหนด A เมื่อcurrentStudentLetterGradeคะแนนของนักเรียนมากกว่าหรือเท่ากับ 97 เนื่องจากนิพจน์นั้นถูกส่งกลับtrueใน ก่อนหน้านี้if

    คุณสามารถขยายรูปแบบนี้ได้ else if เมื่อคุณเลื่อนแถวของแผนภูมิเกรดแบบตัวอักษรลง เมื่อคุณมาถึงจุดสิ้นสุดของแผนภูมิ คุณสามารถใช้ค่าสุดท้าย else เพื่อจับใด ๆ currentStudentGrade ที่ต่ํากว่า 60

  9. else 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 ที่อยู่ของคะแนนที่เหลือ

  10. หากต้องการสร้าง else ที่ใช้ได้กับคะแนนต่ํากว่า 60 ให้ป้อนรหัสต่อไปนี้:

        else
            currentStudentLetterGrade = "F";
    
    
  11. ใช้เวลาสักครู่เพื่อตรวจสอบรหัสแอปพลิเคชันของคุณ

    โค้ด 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();
    

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

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

    2. คุณมี Console.WriteLine() คําสั่งที่เขียนป้ายชื่อคอลัมน์สําหรับรายงานการไล่ระดับสีของคุณไปยังคอนโซล

    3. คุณมีรอบนอก foreach ที่ทําซ้ําผ่าน studentNames อาร์เรย์ ซึ่งมีบล็อกรหัสที่ทําซ้ําให้กับนักเรียนแต่ละคน

    4. คุณยังคงจัดระเบียบโค้ดของคุณโดยใช้วิธีการจากบนลงล่างภายในบล็อกรหัสของรอบนอก foreach :

      1. คุณมี if คําสั่ง เพื่อประเมินชื่อของนักเรียน if (currentStudent == "Sophia")ปัจจุบัน เมื่อนิพจน์ประเมินเป็น trueคุณกําหนดอาร์เรย์คะแนนของนักเรียนให้กับอาร์เรย์การวินิจฉัยนักเรียนของคุณ ตัวอย่างเช่น: studentScores = sophiaScores;

      2. คุณประกาศตัวแปรสองตัวที่จําเป็นสําหรับการคํานวณระดับชั้นของนักเรียน ตัวแปร sumAssignmentScoresแรก จะใช้ในการคํานวณผลรวมของคะแนนการกําหนด ตัวแปร currentStudentGradeที่สอง จะใช้ในการคํานวณเกรดตัวเลขสุดท้าย คุณเริ่มต้นตัวแปรด้วยค่าของ0

      3. คุณมีรอบforeachที่วนซ้ําผ่าน studentScores เพื่อคํานวณค่าของsumAssignmentScores

      4. คุณคํานวณ currentStudentGrade โดยการ sumAssignmentScores หารตามจํานวนงานในหนังสือเกรด จํานวนการกําหนดเกรดจะถูกเก็บไว้ในตัวแปรที่ currentAssignmentsชื่อ

      5. คุณมีโครงสร้างif-elseif-elseที่กําหนดเกรดตัวอักษรตามค่าของcurrentStudentGrade

      6. คุณมี Console.WriteLine() ข้อความว่าเขียนชื่อและเกรดของนักเรียนไปยังคอนโซลเพื่อสร้างรายงานการไล่ระดับสีให้เสร็จสมบูรณ์

  12. ค้นหาคําสั่ง Console.WriteLine() ที่เขียนชื่อและเกรดของนักเรียนไปยังคอนโซล

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

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

  13. หากต้องการรวมค่าของ currentStudentLetterGrade ในรายงานการให้คะแนน ให้อัปเดตโค้ดของคุณดังนี้:

    Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t{currentStudentLetterGrade}");
    
  14. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

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

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

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

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

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

    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

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

  1. ใช้เวลาสักครู่เพื่อพิจารณาข้อกําหนดของโครงการที่เกี่ยวข้องกับการกําหนดเครดิตเพิ่มเติม

    หน่วย "เตรียม" สําหรับโมดูลโครงการที่แนะนํานี้ประกอบด้วยส่วน ภาพรวมโครงการ ที่รวมถึงข้อกําหนดต่อไปนี้:

    • แอปพลิเคชันของคุณต้องรองรับการกําหนดเครดิตเพิ่มเติม

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

      • รหัสของคุณต้องตรวจพบการกําหนดเครดิตเพิ่มเติมโดยยึดตามจํานวนองค์ประกอบในอาร์เรย์คะแนนของนักเรียน
      • รหัสของคุณต้องนําปัจจัยถ่วงน้ําหนัก% 10 รายการไปใช้กับการกําหนดเครดิตเพิ่มเติมก่อนที่จะเพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวมของคะแนนการสอบ
  2. เลื่อนไปที่ด้านบนของไฟล์ Program.cs ของคุณ

  3. หากต้องการเพิ่มคะแนนการกําหนดเครดิตเพิ่มเติมของโซเฟียไปยัง sophiaScores อาร์เรย์ ให้อัปเดตรหัสดังต่อไปนี้:

    int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 };
    

    โปรดสังเกตว่าคุณได้เพิ่มคะแนนเครดิตเพิ่มเติม และ 9490ลงในรายการคะแนนที่รวมอยู่ในอาร์เรย์ ง่าย

  4. เพิ่มคะแนนเครดิตเพิ่มเติมสําหรับนักเรียนคนอื่น ๆ ในอาร์เรย์คะแนนของพวกเขา

  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 };
    
  6. เลื่อนลงเพื่อค้นหารอบด้าน foreach ในที่ใช้ในการรวมคะแนนการกําหนด

    foreach (int score in studentScores)
    {
        // add the exam score to the sum
        sumAssignmentScores += score;
    }    
    
  7. ใช้เวลาสักครู่เพื่อพิจารณาการอัปเดตที่คุณจําเป็นต้องใช้

    ก่อนอื่น ให้พิจารณาสิ่งที่คุณรู้จักแล้ว:

    • คุณทราบว่าการ foreach วนรอบจะทําซ้ําตามลําดับผ่านองค์ประกอบทั้งหมดของอาร์เรย์โดยไม่คํานึงถึงจํานวนองค์ประกอบที่มีอาร์เรย์
    • คุณทราบว่านักเรียนมีคะแนนการสอบห้าคะแนนและคุณมีตัวแปรที่เกี่ยวข้อง: int currentAssignments = 5;
    • คุณทราบว่าคะแนนเครดิตเพิ่มเติมจะรวมอยู่ในตอนท้ายของอาร์เรย์
    • คุณทราบว่าคะแนนเครดิตเพิ่มเติมมีมูลค่า 10% ของคะแนนการสอบ
    • คุณทราบว่าต้องเพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวมของคะแนนการสอบก่อนที่จะคํานวณคะแนนที่เป็นตัวเลขขั้นสุดท้ายของนักเรียน

    ตอนนี้ให้พิจารณาสิ่งที่คุณต้องการ:

    • คุณจําเป็นต้องตรวจหาคะแนนในอาร์เรย์คะแนนที่มีคะแนนเครดิตเพิ่มเติม
    • คุณจําเป็นต้องปรับค่าของคะแนนเครดิตเพิ่มเติมใด ๆ เพื่อให้มีมูลค่า 10% ของคะแนนการสอบ
    • คุณจําเป็นต้องอัปเดตการคํานวณที่ใช้ในการหาผลรวมคะแนนของนักเรียนเพื่อให้ผลรวมมีคะแนนเครดิตเพิ่มเติม
  8. ระบุการอัปเดตการเข้ารหัสที่จําเป็นเพื่อแยกความแตกต่างระหว่างคะแนนการสอบและคะแนนเครดิตเพิ่มเติม

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

    นี่คือสิ่งที่คุณต้องดําเนินการเพื่อแยกความแตกต่างระหว่างคะแนนการสอบและคะแนนเครดิตเพิ่มเติม:

    • คุณจําเป็นต้องตรวจนับจํานวนเต็มเหนือลูปด้าน foreach ในที่สามารถใช้เพื่อนับจํานวนการกําหนดที่มีคะแนน คุณสามารถตั้งชื่อตัวแปร gradedAssignmentsนี้ได้
    • คุณต้องเพิ่มทีละgradedAssignments1ข้างในforeachรอบ ถ้าคุณเริ่มต้น gradedAssignments ที่ 0จากนั้นคุณสามารถเพิ่มตัวนับของคุณที่ด้านบนของ foreach บล็อกรหัส
    • คุณจําเป็นต้องมี if คําสั่งที่ประเมินว่าตัวนับ gradedAssignmentsของคุณมีมากกว่าจํานวนเกรดการสอบหรือไม่ ตัวแปรที่เก็บจํานวนการกําหนดการสอบมีชื่อว่าcurrentAssignments ชื่อนี้อาจทําให้เกิดความสับสนในตอนนี้ที่คุณมีการกําหนดเครดิตเพิ่มเติมนอกเหนือจากการกําหนดแบบทดสอบ คุณควรเปลี่ยนชื่อตัวแปรจาก currentAssignments เป็นexamAssignments เมื่อนําการเปลี่ยนชื่อนี้ไปใช้ คุณสามารถใช้ if เพื่อประเมิน (gradedAssignments <= examAssignments)ได้
  9. เปลี่ยนชื่อตัวแปรจาก currentAssignments เป็นexamAssignments

    สําคัญ

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

    การสนับสนุนแผงตัวแก้ไขรหัส Visual Studio โดยใช้การควบคุม + แป้นพิมพ์ลัดF เพื่อค้นหาข้อความที่คุณระบุ แผงตัวแก้ไขรหัส Visual Studio ยังรองรับการใช้แป้นพิมพ์ลัด Control + H เพื่อค้นหาและแทนที่ข้อความที่คุณระบุ

  10. สร้างบรรทัดรหัสว่างเหนือการ foreach วนรอบที่ใช้ในการรวมคะแนนการกําหนด

  11. บนบรรทัดรหัสที่ว่างเปล่า เพื่อตรวจนับตัวแปรจํานวนเต็มที่ gradedAssignments ชื่อและเริ่มต้นเป็น 0ให้ป้อนรหัสต่อไปนี้:

    // initialize/reset a counter for the number of assignments
    int gradedAssignments = 0;
    
  12. สร้างบรรทัดรหัสว่างที่ด้านบนของบล็อกรหัสสําหรับการ foreach วนรอบที่ใช้ในการรวมคะแนนการกําหนด

  13. บนบรรทัดรหัสที่ว่างเปล่าหากต้องการเพิ่มทีละ gradedAssignments1 สําหรับการวน foreach รอบแต่ละครั้ง ให้ป้อนโค้ดต่อไปนี้:

    // increment the assignment counter
    gradedAssignments += 1;    
    
  14. เมื่อต้องการสร้าง if คําสั่งที่ประเมินนิพจน์ (gradedAssignments <= examAssignments)ให้ใส่โค้ดต่อไปนี้:

    if (gradedAssignments <= examAssignments)
    
  15. ระบุการอัปเดตการเข้ารหัสที่จําเป็นสําหรับการคํานวณที่ใช้ในการหาผลรวมคะแนนของนักเรียน

    เมื่อคําสั่งของคุณ if ประเมิน (gradedAssignments <= examAssignments) เป็น trueคะแนนเป็นคะแนนการสอบ และคุณสามารถเพิ่มค่าไปยังผลรวมของคุณได้ ถ้านิพจน์ไม่ประเมินเป็น trueดังนั้นคะแนนจะเป็นคะแนนเครดิตเพิ่มเติม และคุณจําเป็นต้องหารด้วย 10 ก่อนที่คุณจะสามารถเพิ่มค่าไปยังผลรวมของคุณได้ โครงสร้าง if-else จะสมบูรณ์แบบ

  16. โปรดสังเกตว่าสมการsumAssignmentScores += score;ที่มีอยู่ เป็นการคํานวณที่ถูกต้องที่จะใช้เมื่อคําสั่งของคุณifประเมิน(gradedAssignments <= examAssignments)เป็นtrue

  17. สร้างบรรทัดรหัสที่ว่างเปล่าด้านล่างsumAssignmentScores += score;

  18. บนบรรทัดรหัสที่ว่างเปล่า เพื่อสร้าง else ส่วนของ if-else โครงสร้าง ให้พิมพ์ อื่นๆ แล้วกด Enter

  19. หากต้องการสร้างสมการที่เพิ่มคะแนนเครดิตเพิ่มเติมไปยังผลรวม ให้ป้อนรหัสต่อไปนี้:

    // add the extra credit points to the sum - bonus points equal to 10% of an exam score
    sumAssignmentScores += score / 10;    
    
  20. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

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

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

    // 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();
    

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

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

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

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

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

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

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

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

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

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

  9. ใช้เวลาสักครู่เพื่อพิจารณาข้อกําหนดของโครงการต่อไปนี้:

    • แอปพลิเคชันของคุณต้องสนับสนุนการเพิ่มนักเรียนและคะแนนเพิ่มเติมโดยมีผลกระทบต่อโค้ดน้อยที่สุด

    มีข้อกําหนดที่สําคัญใด ๆ สําหรับแอปพลิเคชันของคุณถูกมองข้ามไปหรือไม่

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

  10. เลื่อนไปที่ด้านบนของแอปพลิเคชัน 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" };
    
  11. เลื่อนลงไปที่การวนรอบชื่อ foreach จากนั้นค้นหาบรรทัดโค้ดต่อไปนี้:

    if (currentStudent == "Sophia")
        studentScores = sophiaScores;
    else if (currentStudent == "Andrew")
        studentScores = andrewScores;
    else if (currentStudent == "Emma")
        studentScores = emmaScores;
    else if (currentStudent == "Logan")
        studentScores = loganScores;
    
  12. หากต้องการรวมนักเรียนใหม่ ให้เพิ่มรหัสต่อไปนี้ลงในส่วนท้ายของโครงสร้างการเลือกของคุณ:

    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;
    
  13. บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก

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

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

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

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

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

    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
    
  19. ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter

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

ขอแสดงความยินดี คุณได้เสร็จสิ้นโครงการที่แนะนํานี้แล้ว!