0Pricing
C++ Academy · บทเรียน

สร้างเครื่องคิดเลข CLI อย่างง่าย

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

สร้างเครื่องคิดเลข CLI อย่างง่าย เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

เป้าหมายของโครงงาน

สร้างเครื่องคิดเลขบรรทัดคำสั่งที่อ่านนิพจน์ เช่น 3 + 4 แล้วพิมพ์ผลลัพธ์ออกมา เราจะทำให้โปรแกรมมีขนาดเล็ก แต่มีโครงสร้างที่ดี

ส่วนหัวที่ต้องใช้

เราต้องใช้ iostream สำหรับการรับส่งข้อมูล และ string สำหรับข้อมูลเข้า

#include <iostream>
#include <string>
#include <sstream>

โครงร่างลูปหลัก

อ่านหนึ่งบรรทัด แยกวิเคราะห์ คำนวณ แล้วพิมพ์ผลลัพธ์ ออกจากโปรแกรมเมื่อพบ EOF

int main() {
    std::string line;
    while (std::getline(std::cin, line)) {
        if (line == "quit") break;
        double result = evaluate(line);
        std::cout << "= " << result << "\n";
    }
}

การแยกวิเคราะห์ด้วย stringstream

สำหรับตัวถูกดำเนินการสองตัวและตัวดำเนินการหนึ่งตัว การแบ่งโทเค็นด้วย stringstream นั้นเรียบง่ายและเชื่อถือได้

double evaluate(const std::string& line) {
    std::stringstream ss(line);
    double a, b;
    char op;
    ss >> a >> op >> b;
    return apply(op, a, b);
}

นำตัวดำเนินการไปใช้

ใช้คำสั่ง switch กับอักขระตัวดำเนินการ

double apply(char op, double a, double b) {
    switch (op) {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return b != 0 ? a / b : 0;
        default:  return 0;
    }
}

การจัดการข้อผิดพลาด

จะเกิดอะไรขึ้นหากผู้ใช้พิมพ์สิ่งที่ไม่ถูกต้อง ให้ตรวจสอบสถานะของสตรีมและรายงานข้อความที่เข้าใจง่าย

if (!(ss >> a >> op >> b)) {
    std::cout << "Invalid input\n";
    return 0;
}

การหารด้วยศูนย์

จัดการกรณีหารด้วยศูนย์อย่างชัดเจน โดยพิมพ์ข้อผิดพลาดหรือโยนข้อผิดพลาดก็ได้ แล้วแต่วิธีการออกแบบของคุณ

if (op == '/' && b == 0) {
    throw std::runtime_error("division by zero");
}

การเพิ่มตัวดำเนินการเพิ่มเติม

ขยายคำสั่ง switch เพื่อรองรับการดำเนินการเพิ่มเติม เช่น %, ^ สำหรับการยกกำลัง หรือฟังก์ชันที่มีชื่อ เช่น sqrt

การรักษาสถานะ

ต้องการผลรวมสะสมหรือไม่ ให้เก็บผลลัพธ์ล่าสุดไว้ แล้วอนุญาตให้ผู้ใช้เริ่มนิพจน์ด้วย +

double last = 0;
// if first token is an operator, use `last` as the first operand

การปรับปรุงประสบการณ์ผู้ใช้

พิมพ์ข้อความแจ้งก่อนรับข้อมูลแต่ละครั้ง ยอมรับ quit หรือ EOF เพื่อออกจากโปรแกรม และละเว้นบรรทัดว่าง

มากกว่าตัวถูกดำเนินการสองตัว

สำหรับนิพจน์ที่มีตัวถูกดำเนินการหลายตัว เช่น 3 + 4 * 2 คุณต้องมีตัวแยกวิเคราะห์นิพจน์ อัลกอริทึม shunting-yard เป็นแนวทางมาตรฐาน

การทดสอบเครื่องคิดเลข

ป้อนข้อมูลจากไฟล์เพื่อทดสอบได้อย่างรวดเร็ว

echo "3 + 4\n10 / 2" | ./calc

ตรวจสอบความเข้าใจ

สิ่งอำนวยความสะดวกใดในไลบรารีมาตรฐานที่เหมาะสำหรับการแยกวิเคราะห์โทเค็นที่คั่นด้วยช่องว่าง เช่น 3 + 4

สรุปทบทวน

เครื่องคิดเลข CLI ขนาดเล็กแสดงให้เห็นการรับส่งข้อมูล การแยกวิเคราะห์ด้วย stringstream และการเลือกการทำงานด้วย switch ขยายโปรแกรมด้วยการจัดการข้อผิดพลาด ตัวดำเนินการเพิ่มเติม สถานะ และท้ายที่สุดคือตัวแยกวิเคราะห์นิพจน์

คำถามที่พบบ่อย

บทเรียน “สร้างเครื่องคิดเลข CLI อย่างง่าย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สร้างเครื่องคิดเลข CLI อย่างง่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สร้างเครื่องคิดเลข CLI อย่างง่าย”

สร้างเครื่องคิดเลขแบบบรรทัดคำสั่งที่แยกตัวดำเนินการและประเมินนิพจน์ คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “สร้างเครื่องคิดเลข CLI อย่างง่าย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สร้างเครื่องคิดเลข CLI อย่างง่าย
  2. การอ่านและเขียนไฟล์ CSV
  3. เกมทายตัวเลข
  4. ตัวนับความถี่ของคำ
← กลับไปที่ C++ Academy