C++ Programming : ตัวอย่างโจทย์โปรแกรมคิดเลข บวก ลบ คูณ หาร อย่างง่ายๆ

ทิป & เทคนิค #139
เขียนโดย :
มีผู้อ่าน : 57,774 คน วันนี้ : 7 คน

สวัสดีครับ น้องๆ ตัวอย่างโจทย์ข้อนี้ เป็นโปรแกรมคิดเลขอย่างง่ายๆ ด้วยภาษา C++ ครับ ข้อนี้มีการใช้ การคำนวณ บวก ลบ คูณ หาร การใช้ switch case และ มีการใช้ do while loop ร่วมด้วย เอาล่ะครับ ข้อนี้ครบอีกเช่นเคย ^^

 

โจทย์

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

 

Source Code

#include <iostream>
using namespace std;

int main()
{
     float number_1,number_2,result;
     char choice_operator,choice_continue;
     
     do
     {
          system("cls");
          
          cout << "Enter Number : ";
          cin >> number_1;
          cout << "Enter Number : ";
          cin >> number_2;
          
          cout << endl;
          cout << "Select Operator" << endl;
          cout << "A)ddition  (+)" << endl;
          cout << "S)ubtraction  (-)" << endl;
          cout << "M)ultiplication  (*)" << endl;
          cout << "D)ivision (/)" << endl;
          cout << "You Select : ";
          cin >> choice_operator;
          
          cout << endl;
          cout << number_1;
          switch(choice_operator)
          {
            case '+' :                     
            case 'A' :
            case 'a' : cout << " + ";
                             result = number_1 + number_2;
                             break;
            case '-' :           
            case 'S' :
            case 's' : cout << " - ";
                             result = number_1 - number_2;
                             break;
            case '*' :           
            case 'M' :
            case 'm' : cout << " * ";
                              result = number_1 * number_2;
                              break;
            case '/' :
            case 'D' :
            case 'd' : cout << " / ";
                             result = number_1 / number_2;
                             break;
                       
          }
          cout << number_2 << " = " << result << endl << endl;

          cout << "Continue (Y/N) : ";
          cin >> choice_continue;
          
     }
     while(choice_continue == 'Y' || choice_continue == 'y');
     
     cout << endl << "Exit Program...";

     cout << endl << endl;
     system("pause");
 
}

 

อธิบาย Source Code

#include <iostream>
using namespace std;

int main()
{
      //ประกาศตัวแปร
      // number_1 เก็บจำนวนแรก , number_2 เก็บจำนวนที่สอง , result เก็บผลลัพธ์
      // choice_operator เก็บตัวเลือกตัวดำเนินการ , choice_continue เก็บตัวเลือกการทำอีกครั้ง

      float number_1,number_2,result;
     char choice_operator,choice_continue;
     
     do
     {
          system("cls"); //ล้างหน้าจอ
          
          cout << "Enter Number : "; //แสดงผลรับเลข
          cin >> number_1; //รับเลขตัวที่ 1
          cout << "Enter Number : "; //แสดงผลรับเลข
          cin >> number_2; //รับเลขตัวที่ 2
          
          //แสดงผลเมนู
          cout << endl;
          cout << "Select Operator" << endl;
          cout << "A)ddition  (+)" << endl;
          cout << "S)ubtraction  (-)" << endl;
          cout << "M)ultiplication  (*)" << endl;
          cout << "D)ivision (/)" << endl;
          cout << "You Select : "; //แสดงผลรับตัวดำเนินการ
          cin >> choice_operator; //รับตัวดำเนินการ
           
          cout << endl;
          cout << number_1; //แสดงเลขตัวแรก
          //ตรวจสอบค่าในตัวแปร choice_operator
          switch(choice_operator)
          {
            //ค่าใน  choice_operator เป็นกรณี + , A , a หรือไม่
            case '+' :                     
            case 'A' :
            case 'a' : cout << " + "; //แสดงผล
                             result = number_1 + number_2; //บวกแล้วเก็บผลลัพธ์
                             break;

            //ค่าใน  choice_operator เป็นกรณี - , S , s หรือไม่
            case '-' :           
            case 'S' :
            case 's' : cout << " - "; //แสดงผล
                             result = number_1 - number_2; //ลบแล้วเก็บผลลัพธ์
                             break;

            //ค่าใน  choice_operator เป็นกรณี * , M , m หรือไม่
            case '*' :           
            case 'M' :
            case 'm' : cout << " * "; //แสดงผล
                              result = number_1 * number_2; //คูณแล้วเก็บผลลัพธ์
                              break;

             //ค่าใน  choice_operator เป็นกรณี / , D , d หรือไม่
            case '/' :
            case 'D' :
            case 'd' : cout << " / "; //แสดงผล
                                             result = number_1 / number_2; //หารแล้วเก็บผลลัพธ์
                                             break;
                       
          }
          cout << number_2 << " = " << result << endl << endl; //แสดงผล

          cout << "Continue (Y/N) : "; //แสดงผลว่าทำอีกครั้งไหม
          cin >> choice_continue; //รับคำตอบ
          
     }
     //ตราบเท่าที่  choice_continue เป็น Y หรือ y
     while(choice_continue == 'Y' || choice_continue == 'y');
     
     cout << endl << "Exit Program..."; //แสดงผล

     cout << endl << endl;
     system("pause");
 
}

ตัวอย่างการ Run โปรแกรม

ตัวอย่างการ Run ครั้งที่ 1

ทดสอบ รับเลข 1 และ 2 เลือก A เพื่อบวก เมื่อแสดงผลลัพธ์ ทำอีกครั้งโดยเลือก Y

 

ตัวอย่างการ Run ครั้งที่ 2

ทดสอบ รับเลข 2 และ 2 เลือก + เพื่อบวก เมื่อแสดงผลลัพธ์ ไม่ทำต่อโดยเลือก N

 

เป็นยังไงบ้างครับ ข้อนี้น่าจะเป็นแนวทางให้น้องๆ ได้พอสมควรกับการเขียนโปรแกรมเชิงเมนู (MENU) และตัวเลือก ตัวอย่างนี้เป็น แบบอย่างง่าย ที่ไม่มีการตรวจสอบความถูกต้องของข้อมูลเข้า เช่น ตัวเลือก (Y/N) เราจะกรอก A , B แทนก็ได้ จะได้ผลเหมือน N ครับ ซึ่งในความเป็นจริงแล้ว โปรแกรมที่เราเขียนขึ้นต้องมีเรื่องความถูกต้องของข้อมูลเข้ามาด้วยครับ ใครที่สนใจเรื่องความถูกต้องของข้อมูล ลองติดตามตัวอย่างต่อๆ ไปได้ครับ

หากน้องๆ มีข้อสงสัย สามารถเข้ามาสอบถามได้ที่ Fanpage TUTORTONG สอนเขียนโปรแกรม ได้เลยครับ การเขียนโปรแกรมไม่ยากอย่างที่คิด มาเริ่มต้นสนุกไปกับเราที่ TUTORTONG สอนเขียนโปรแกรม ครับ ^^