แบบฝึกหัด - ตรวจสอบและทดสอบแอปพลิเคชันคอนโซล C# โดยใช้ข้อมูลตัวอย่าง

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

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

คุณทำงานต่อไปนี้ให้เสร็จสมบูรณ์ระหว่างทำแบบฝึกหัดนี้:

  1. การตรวจทานโค้ด: ตรวจสอบเนื้อหาของไฟล์ Program.cs

    Program.cs ประกอบด้วยส่วนโค้ดต่อไปนี้:

    • รายงานระดับบนสุด: รายงานระดับบนสุดจะจําลองชุดของธุรกรรมโดยใช้แถวลําดับของ testData หรือจํานวนธุรกรรมที่สร้างขึ้นแบบสุ่มจํานวนมาก
    • LoadTillEachMorning: LoadTillEachMorning วิธีการ ถูกใช้เพื่อกําหนดค่าการลงทะเบียนเงินสดจนถึงจํานวนใบเรียกเก็บเงินที่กําหนดไว้ล่วงหน้าในแต่ละสกุลเงิน
    • MakeChange: MakeChange วิธีการถูกใช้เพื่อจัดการเงินสดจนถึงระหว่างธุรกรรมการซื้อ
    • LogTillStatus: LogTillStatus เมธอด ถูกใช้เพื่อแสดงจํานวนใบเรียกเก็บเงินของแต่ละสกุลเงินในปัจจุบันจนถึง
    • TillAmountSummary: TillAmountSummary วิธีการถูกใช้แสดงข้อความที่แสดงจํานวนเงินสดในลิ้นชักเก็บเงิน
  2. การทดสอบเริ่มต้น: ตรวจสอบว่า MakeChange มีความสมดุลของเงินได้สําเร็จจนถึงเมื่อใช้ testData อาร์เรย์เพื่อจําลองธุรกรรม

  3. การดีบักโค้ด: แยกและแก้ไขปัญหาตรรกะที่เปิดเผยเมื่อใช้ข้อมูลที่สร้างขึ้นแบบสุ่ม

  4. การทดสอบการตรวจสอบ: ทําการทดสอบการตรวจสอบบนรหัสที่คุณพัฒนาในแบบฝึกหัดนี้

ตรวจทานเนื้อหาของไฟล์ Program.cs

ในงานนี้ คุณทําการฝึกปฏิบัติรหัสโครงการ Starter ให้เสร็จสมบูรณ์ ไฟล์ Program.cs มีแอปพลิเคชันที่จําลองเงื่อนไขสําหรับธุรกรรมรายวัน การประยุกต์ใช้เรียกใช้ MakeChange วิธีการ เพื่อจัดการเงินจนถึงในระหว่างการทําธุรกรรมแต่ละครั้ง วิธีการอื่นๆ จะใช้ในการเริ่มต้นจนถึงและสร้างข้อความการรายงาน

  1. ตรวจสอบให้แน่ใจว่าโฟลเดอร์ GuidedProject เปิดอยู่ในรหัส Visual Studio

  2. ในมุมมอง EXPLORER ให้ขยายโฟลเดอร์ GuidedProject และ Starter

    โฟลเดอร์ Starter ประกอบด้วยแอปพลิเคชันตัวอย่างสําหรับโมดูลโครงการที่แนะนํานี้

  3. เปิดไฟล์ Program.cs ใน Visual Studio Code Editor

  4. บนเมนู มุมมอง ให้เลือก ชุดคําสั่ง

  5. ที่พรอมต์คําสั่ง ให้ป้อน .net: g จากนั้นเลือก .NET: สร้าง Assets สําหรับการสร้างและดีบัก

  6. ที่พร้อมท์ เลือกโครงการเพื่อเปิดใช้ ให้เลือกโครงการ Starter

    ไฟล์ launch.json ที่สร้างขึ้นจะรวมการกําหนดค่าสําหรับโครงการ Starter

  7. ใช้เวลาสักครู่เพื่อตรวจสอบคําสั่งระดับสูงสุดสําหรับแอปพลิเคชันนี้:

    /*
    This application manages transactions at a store check-out line. The
    check-out line has a cash register, and the register has a cash till
    that is prepared with a number of bills each morning. The till includes
    bills of four denominations: $1, $5, $10, and $20. The till is used
    to provide the customer with change during the transaction. The item 
    cost is a randomly generated number between 2 and 49. The customer 
    offers payment based on an algorithm that determines a number of bills
    in each denomination. 
    
    Each day, the cash till is loaded at the start of the day. As transactions
    occur, the cash till is managed in a method named MakeChange (customer 
    payments go in and the change returned to the customer comes out). A 
    separate "safety check" calculation that's used to verify the amount of
    money in the till is performed in the "main program". This safety check
    is used to ensure that logic in the MakeChange method is working as 
    expected.
    */
    
    string? readResult = null;
    bool useTestData = true;
    
    Console.Clear();
    
    int[] cashTill = new int[] { 0, 0, 0, 0 };
    int registerCheckTillTotal = 0;
    
    // registerDailyStartingCash: $1 x 50, $5 x 20, $10 x 10, $20 x 5 => ($350 total)
    int[,] registerDailyStartingCash = new int[,] { { 1, 50 }, { 5, 20 }, { 10, 10 }, { 20, 5 } };
    
    int[] testData = new int[] { 6, 10, 17, 20, 31, 36, 40, 41 };
    int testCounter = 0;
    
    LoadTillEachMorning(registerDailyStartingCash, cashTill);
    
    registerCheckTillTotal = registerDailyStartingCash[0, 0] * registerDailyStartingCash[0, 1] + registerDailyStartingCash[1, 0] * registerDailyStartingCash[1, 1] + registerDailyStartingCash[2, 0] * registerDailyStartingCash[2, 1] + registerDailyStartingCash[3, 0] * registerDailyStartingCash[3, 1];
    
    // display the number of bills of each denomination currently in the till
    LogTillStatus(cashTill);
    
    // display a message showing the amount of cash in the till
    Console.WriteLine(TillAmountSummary(cashTill));
    
    // display the expected registerDailyStartingCash total
    Console.WriteLine($"Expected till value: {registerCheckTillTotal}\n\r");
    
    var valueGenerator = new Random((int)DateTime.Now.Ticks);
    
    int transactions = 10;
    
    if (useTestData)
    {
        transactions = testData.Length;
    }
    
    while (transactions > 0)
    {
        transactions -= 1;
        int itemCost = valueGenerator.Next(2, 20);
    
        if (useTestData)
        {
            itemCost = testData[testCounter];
            testCounter += 1;
        }
    
        int paymentOnes = itemCost % 2;                 // value is 1 when itemCost is odd, value is 0 when itemCost is even
        int paymentFives = (itemCost % 10 > 7) ? 1 : 0; // value is 1 when itemCost ends with 8 or 9, otherwise value is 0
        int paymentTens = (itemCost % 20 > 13) ? 1 : 0; // value is 1 when 13 < itemCost < 20 OR 33 < itemCost < 40, otherwise value is 0
        int paymentTwenties = (itemCost < 20) ? 1 : 2;  // value is 1 when itemCost < 20, otherwise value is 2
    
        // display messages describing the current transaction
        Console.WriteLine($"Customer is making a ${itemCost} purchase");
        Console.WriteLine($"\t Using {paymentTwenties} twenty dollar bills");
        Console.WriteLine($"\t Using {paymentTens} ten dollar bills");
        Console.WriteLine($"\t Using {paymentFives} five dollar bills");
        Console.WriteLine($"\t Using {paymentOnes} one dollar bills");
    
        // MakeChange manages the transaction and updates the till 
        string transactionMessage = MakeChange(itemCost, cashTill, paymentTwenties, paymentTens, paymentFives, paymentOnes);
    
        // Backup Calculation - each transaction adds current "itemCost" to the till
        if (transactionMessage == "transaction succeeded")
        {
            Console.WriteLine($"Transaction successfully completed.");
            registerCheckTillTotal += itemCost;
        }
        else
        {
            Console.WriteLine($"Transaction unsuccessful: {transactionMessage}");
        }
    
        Console.WriteLine(TillAmountSummary(cashTill));
        Console.WriteLine($"Expected till value: {registerCheckTillTotal}\n\r");
        Console.WriteLine();
    }
    
    Console.WriteLine("Press the Enter key to exit");
    do
    {
        readResult = Console.ReadLine();
    
    } while (readResult == null);
    

    รหัสคําสั่งระดับบนสุดทํางานต่อไปนี้ให้เสร็จสมบูรณ์:

    • กําหนดค่าข้อมูลแอปพลิเคชันและตัวแปรสภาพแวดล้อมที่ใช้เพื่อทดสอบ MakeChange วิธีการ
    • LoadTillEachMorning()เรียกใช้วิธีการ , LogTillStatus()และ TillAmountSummary() เพื่อเตรียมเงินจนถึงและพิมพ์ข้อความสถานะไปยังคอนโซล
    • ใช้รอบ while เพื่อจําลองชุดของธุรกรรม
    • MakeChangeเรียกใช้เมธอด จากภายในบล็อกโค้ดของwhileรอบ
    • รายงานสถานะของเงินจนถึงหลังจากแต่ละธุรกรรม

    หมายเหตุ

    รายงานระดับบนสุดรวมถึง Console.ReadLine() คําสั่ง ไฟล์ launch.json จะต้องได้รับการอัปเดตก่อนการดีบัก

  8. ใช้เวลาสักครู่เพื่อตรวจทาน LoadTillEachMorning() วิธีการ

    static void LoadTillEachMorning(int[,] registerDailyStartingCash, int[] cashTill)
    {
        cashTill[0] = registerDailyStartingCash[0, 1];
        cashTill[1] = registerDailyStartingCash[1, 1];
        cashTill[2] = registerDailyStartingCash[2, 1];
        cashTill[3] = registerDailyStartingCash[3, 1];
    }
    
  9. ใช้เวลาสักครู่เพื่อตรวจทาน MakeChange() วิธีการ

    static string MakeChange(int cost, int[] cashTill, int twenties, int tens = 0, int fives = 0, int ones = 0)
    {
        string transactionMessage = "";
    
        cashTill[3] += twenties;
        cashTill[2] += tens;
        cashTill[1] += fives;
        cashTill[0] += ones;
    
        int amountPaid = twenties * 20 + tens * 10 + fives * 5 + ones;
        int changeNeeded = amountPaid - cost;
    
        if (changeNeeded < 0)
            transactionMessage = "Not enough money provided.";
    
        Console.WriteLine("Cashier Returns:");
    
        while ((changeNeeded > 19) && (cashTill[3] > 0))
        {
            cashTill[3]--;
            changeNeeded -= 20;
            Console.WriteLine("\t A twenty");
        }
    
        while ((changeNeeded > 9) && (cashTill[2] > 0))
        {
            cashTill[2]--;
            changeNeeded -= 10;
            Console.WriteLine("\t A ten");
        }
    
        while ((changeNeeded > 4) && (cashTill[1] > 0))
        {
            cashTill[2]--;
            changeNeeded -= 5;
            Console.WriteLine("\t A five");
        }
    
        while ((changeNeeded > 0) && (cashTill[0] > 0))
        {
            cashTill[0]--;
            changeNeeded--;
            Console.WriteLine("\t A one");
        }
    
        if (changeNeeded > 0)
            transactionMessage = "Can't make change. Do you have anything smaller?";
    
        if (transactionMessage == "")
            transactionMessage = "transaction succeeded";
    
        return transactionMessage;
    }
    

    วิธีการ MakeChange จะจัดการเงินจนถึงระหว่างการซื้อแต่ละครั้ง กระบวนการธุรกรรมอาศัยทรัพยากรและเงื่อนไขต่อไปนี้:

    • ธุรกรรมเงินสด: วิธีการ MakeChange ยอมรับการชําระเงินสดจากลูกค้า จากนั้นจะกําหนดจํานวนตั๋วแลกเงินของแต่ละหน่วยที่ต้องส่งคืนให้กับลูกค้าตามการเปลี่ยนแปลง MakeChange ก่อนอื่นต้องตรวจสอบให้แน่ใจว่าลูกค้ามีเงินเพียงพอที่จะครอบคลุมการทําธุรกรรม หากการชําระเงินเพียงพอ กระบวนการ "ทําการเปลี่ยนแปลง" จะเริ่มต้นด้วยการกําหนดบิลที่ใหญ่ที่สุดและทํางานลงเป็นสกุลเงินที่เล็กที่สุด ในแต่ละขั้นตอน MakeChange ทําให้แน่ใจว่านิกายปัจจุบันน้อยกว่าการเปลี่ยนแปลงที่เป็นหนี้อยู่ MakeChange นอกจากนี้ ยังช่วยให้มั่นใจได้ว่ามีการเรียกเก็บเงินค่าหารที่จําเป็นจนถึงก่อนที่จะเพิ่มลงในการเปลี่ยนแปลงที่ส่งกลับไปยังลูกค้า

    • พารามิเตอร์การป้อนข้อมูล: เม MakeChange ธอด ใช้พารามิเตอร์การป้อนข้อมูลต่อไปนี้:

      • จํานวนเต็มที่แสดงต้นทุนของสินค้าที่กําลังซื้อ: itemCost
      • อาร์เรย์จํานวนเต็มที่มีจํานวนบิลในจนถึงสําหรับแต่ละเศษ: cashTill
      • การชําระเงินที่เสนอโดยลูกค้า ซึ่งมีการระบุจํานวนของใบเรียกเก็บเงินสําหรับแต่ละสกุลเงิน แยกต่างหาก: paymentTwenties, , paymentTenspaymentFivespaymentOnes
    • เงินสดที่มีอยู่จนถึง: ใบเรียกเก็บเงินที่เสนอเป็นการชําระเงินโดยลูกค้าจะต้องรวมอยู่ในใบเรียกเก็บเงินของแต่ละสกุลเงินที่สามารถทําการเปลี่ยนแปลงได้

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

    • การจ่ายเงินน้อย: หากลูกค้าไม่ได้ระบุการชําระเงินเพียงพอ ให้ MakeChange ส่งกลับข้อความอธิบาย และธุรกรรมจะถูกยกเลิก

    • จนถึง: ถ้ายังไม่สามารถทําการเปลี่ยนแปลงที่แน่นอน ได้ จะ MakeChange ส่งกลับข้อความที่อธิบายและธุรกรรมจะถูกยกเลิก

  10. ใช้เวลาสักครู่เพื่อตรวจทาน LogTillStatus() วิธีการ

    static void LogTillStatus(int[] cashTill)
    {
        Console.WriteLine("The till currently has:");
        Console.WriteLine($"{cashTill[3] * 20} in twenties");
        Console.WriteLine($"{cashTill[2] * 10} in tens");
        Console.WriteLine($"{cashTill[1] * 5} in fives");
        Console.WriteLine($"{cashTill[0]} in ones");
        Console.WriteLine();
    }
    

    เม LogTillStatus ธอด ใช้ cashTill อาร์เรย์ เพื่อรายงานเนื้อหาปัจจุบันของจนถึง

  11. ใช้เวลาสักครู่เพื่อตรวจทาน TillAmountSummary() วิธีการ

    static string TillAmountSummary(int[] cashTill)
    {
        return $"The till has {cashTill[3] * 20 + cashTill[2] * 10 + cashTill[1] * 5 + cashTill[0]} dollars";
    
    }
    

    วิธีการ TillAmountSummary ใช้ cashTill อาร์เรย์ เพื่อคํานวณยอดดุลเงินสดปัจจุบันที่พร้อมใช้งานจนถึง

ที่เสร็จสิ้นการตรวจสอบโครงการรหัสที่มีอยู่ของคุณ

ตรวจสอบว่า MakeChange จัดการเงินได้สําเร็จเมื่อใช้ testData อาร์เรย์

ในงานนี้ คุณจําลองธุรกรรมโดยใช้ testData อาร์เรย์ และตรวจสอบว่า MakeChange มีความสมดุลของเงินได้สําเร็จจนถึง

  1. บนเมนูเรียกใช้รหัส Visual Studio เลือกเริ่มการดีบัก

  2. โปรดสังเกตว่ามีข้อผิดพลาด IOException เกิดขึ้น

    DEBUG CONSOLE ไม่สนับสนุน Console.Clear() หรือ Console.ReadLine() วิธีการ คุณจําเป็นต้องอัปเดตไฟล์ launch.json ก่อนที่จะดีบัก

  3. บนแถบเครื่องมือแก้จุดบกพร่อง เลือกหยุด

  4. ใช้มุมมอง EXPLORER เพื่อเปิดไฟล์ launch.json

  5. ในไฟล์ launch.json ให้ console อัปเดตแอตทริบิวต์ดังนี้:

    // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
    "console":"integratedTerminal",
    

    ค่าเริ่มต้นสําหรับ console แอตทริบิวต์คือ internalConsoleซึ่งสอดคล้องกับแผง DEBUG CONSOLE น่าเสียดายที่แผงคอนโซล DEBUG ไม่สนับสนุนวิธีการคอนโซลบางอย่าง การตั้งค่า integratedTerminal จะสอดคล้องกับแผง TERMINAL ซึ่งสนับสนุนอินพุตและเอาต์พุตของคอนโซล

  6. บันทึกการเปลี่ยนแปลงของคุณไปยังไฟล์ launch.json

  7. บนเมนูเรียกใช้รหัส Visual Studio เลือกเริ่มการดีบัก

  8. ตรวจสอบเอาต์พุตที่สร้างขึ้นโดยแอปพลิเคชันในแผงเทอร์มินัล

    เปลี่ยนจากแผง DEBUG CONSOLE ไปยังแผงเทอร์มินัลเพื่อตรวจสอบเอาต์พุต

  9. โปรดสังเกตว่า มีความ MakeChange สมดุลแบบสําเร็จจนถึงขณะใช้ testData อาร์เรย์ เพื่อจําลองธุรกรรม

    คุณควรเห็นบรรทัดต่อไปนี้แสดงอยู่ที่ด้านล่างของผลลัพธ์ที่รายงาน:

    The till has 551 dollars
    Expected till value: 551
    
    
    Press the Enter key to exit
    

    โปรดสังเกตว่าค่าจนถึงตามที่รายงานและที่คาดไว้คือทั้ง 551

  10. เมื่อต้องการออกจากแอปพลิเคชัน ให้กด Enter

ระบุและแก้ไขปัญหาตรรกะ

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

  1. เมื่อต้องการรันรหัสโดยใช้ธุรกรรมที่สร้างขึ้นแบบสุ่ม ให้เปลี่ยนค่าที่useTestDatafalseกําหนดให้กับ

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

  2. บันทึกไฟล์ Program.cs และจากนั้น เรียกใช้แอปพลิเคชันในโปรแกรมดีบักเกอร์

  3. ตรวจสอบเอาต์พุตในแผงเทอร์มินัล

  4. โปรดสังเกตความขัดแย้งในยอดเงินจนถึงยอดคงเหลือ

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

    Transaction successfully completed.
    The till has 379 dollars
    Expected till value: 434
    
    
    Press the Enter key to exit
    

    หมายเหตุ

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

  5. เมื่อต้องการออกจากแอปพลิเคชัน ให้กด Enter

  6. ปิดแผงขั้วต่อ

ดีบักรหัส

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

  1. ใกล้กับจุดสิ้นสุดของคําสั่งระดับบนสุด ค้นหาบรรทัดโค้ดต่อไปนี้:

    Console.WriteLine();
    
  2. ตั้งค่าจุดสั่งหยุดบนบรรทัดรหัสที่เลือก

  3. บนเมนูเรียกใช้รหัส Visual Studio เลือกเริ่มการดีบัก

  4. โปรดสังเกตว่าการดําเนินการโค้ดหยุดชั่วคราวบนจุดสั่งหยุด

  5. บนแถบเครื่องมือตัวควบคุมแก้จุดบกพร่อง ให้เลือกขั้นตอนลงใน

  6. ตรวจสอบเอาต์พุตในแผงเทอร์มินัล

  7. หากค่าจนกว่าที่รายงานและที่คาดไว้เท่ากัน ให้เลือกดําเนินการต่อบนแถบเครื่องมือตัวควบคุมแก้จุดบกพร่อง

  8. ทําซ้ําขั้นตอนก่อนหน้านี้จนกว่าคุณจะเห็นความขัดแย้งระหว่างค่าลิ้นชักระแนงที่รายงานและที่คาดไว้

  9. เมื่อคุณเห็นความขัดแย้ง โปรดใช้เวลาสักครู่ในการตรวจสอบรายละเอียดของธุรกรรม

  10. โปรดสังเกตว่าเงินสดที่ได้รับรายงานและการเปลี่ยนแปลงที่ส่งคืนถูกต้อง แต่เงินจนกว่าจะสั้นห้าดอลลาร์

    การขาดแคลนนี้แสดงให้เห็นว่า cashTill อาร์เรย์กําลังได้รับการอัปเดตอย่างไม่ถูกต้องแม้ว่าการรายงานถูกต้องก็ตาม

  11. หยุดเซสชันดีบักและปิดแผง TERMINAL

  12. เลื่อนไปที่ด้านล่างของ MakeChange วิธีการ

    คําสั่ง while ที่ใช้ในการ "ทําการเปลี่ยนแปลง" อยู่ที่ส่วนท้ายของ MakeChange วิธีการ

  13. whileตรวจสอบบล็อกรหัสใบแจ้งยอดที่ใช้ในการเปลี่ยนแปลง

    เนื่องจากค่าจนกว่าจะลดลง 5 ดอลลาร์ ปัญหาน่าจะอยู่ใน while บล็อกรหัสที่ถูกใช้เพื่อส่งคืนใบเรียกเก็บเงินห้าดอลลาร์

  14. โปรดสังเกตโค้ดต่อไปนี้:

    while ((changeNeeded > 4) && (cashTill[1] > 0))
    {
        cashTill[2]--;
        changeNeeded -= 5;
        Console.WriteLine("\t A five");
    }    
    

    อาร์เรย์ cashTill[] ถูกใช้เพื่อจัดเก็บจํานวนของบิลของแต่ละสกุลเงินที่มีอยู่ในขณะนี้ องค์ประกอบ 1 อาร์เรย์ใช้เพื่อจัดการตัวเลขห้าดอลลาร์ในลิ้นชักเก็บเงิน นิพจน์ใน while คําสั่ง อ้างอิงถึง cashTill[1] อย่างถูกต้อง อย่างไรก็ตาม คําสั่งภายในบล็อกรหัสจะลดลง cashTill[2] แทนที่จะ cashTill[1]เป็น การระบุค่าดัชนีของ 2 หมายความว่ามีการลบตั๋วเงิน 10 ดอลลาร์ออกจากช่องทางเก็บเงินดอลลาร์แทนที่จะเป็น 5 ดอลลาร์สหรัฐ

  15. อัปเดตโค้ด while บล็อกดังต่อไปนี้:

    while ((changeNeeded > 4) && (cashTill[1] > 0))
    {
        cashTill[1]--;
        changeNeeded -= 5;
        Console.WriteLine("\t A five");
    }    
    
  16. บันทึกไฟล์ Program.cs

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

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

  1. บนเมนูเรียกใช้รหัส Visual Studio เลือกลบจุดสั่งหยุดทั้งหมด

  2. บนเมนูเรียกใช้ เลือกเริ่มการดีบัก

  3. ตรวจสอบเอาต์พุตในแผงเทอร์มินัล

  4. ตรวจสอบว่าค่าลิ้นชักรับของที่รายงานเท่ากับค่าลิ้นชักรับของที่คาดไว้หรือไม่:

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

    Transaction successfully completed.
    The till has 452 dollars
    Expected till value: 452
    
    
    Press the Enter key to exit
    

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