สร้างเครื่องคิดเลข 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สร้างเครื่องคิดเลข CLI อย่างง่าย
- การอ่านและเขียนไฟล์ CSV
- เกมทายตัวเลข
- ตัวนับความถี่ของคำ