Basit Bir CLI Hesap Makinesi Oluşturma
Operatörleri ayrıştıran ve ifadeleri değerlendiren bir komut satırı hesap makinesi oluşturun
Basit Bir CLI Hesap Makinesi Oluşturma, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Proje Amacı
3 + 4 gibi bir ifadeyi okuyup sonucu yazdıran bir komut satırı hesap makinesi oluşturun. Onu minimal ancak iyi yapılandırılmış tutacağız.
Gerekli Başlık Dosyaları
Girdi/çıktı için iostream'e, girdi için string'e ihtiyacımız var.
#include <iostream>
#include <string>
#include <sstream>Ana Döngü İskeleti
Bir satır okuyun, ayrıştırın, hesaplayın ve yazdırın. EOF'ta çıkın.
int main() {
std::string line;
while (std::getline(std::cin, line)) {
if (line == "quit") break;
double result = evaluate(line);
std::cout << "= " << result << "\n";
}
}stringstream ile Ayrıştırma
İki işlenen ve bir işleç için stringstream ile belirteçlere ayırma basit ve sağlamdır.
double evaluate(const std::string& line) {
std::stringstream ss(line);
double a, b;
char op;
ss >> a >> op >> b;
return apply(op, a, b);
}İşleci Uygulama
İşleç karakterine göre bir switch kullanın.
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;
}
}Hata Yönetimi
Kullanıcı geçersiz bir şey yazarsa ne olur? Akış durumunu denetleyin ve anlaşılır bir ileti bildirin.
if (!(ss >> a >> op >> b)) {
std::cout << "Invalid input\n";
return 0;
}Sıfıra Bölme
Sıfıra bölme durumunu açıkça ele alın. Bir hata yazdırın veya hata fırlatın; tasarımınıza uygun olanı seçin.
if (op == '/' && b == 0) {
throw std::runtime_error("division by zero");
}Daha Fazla İşleç Ekleme
Daha fazla işlemi desteklemek için switch'i genişletin: %, üs alma için ^ veya sqrt gibi adlandırılmış işlevler.
Durumu Koruma
Devam eden bir toplam mı istiyorsunuz? Sonucu saklayın ve kullanıcının ifadeye + ile başlamasına izin verin.
double last = 0;
// if first token is an operator, use `last` as the first operandKullanıcı Deneyimini İyileştirme
Her girdiden önce bir istem yazdırın, çıkmak için quit veya EOF kabul edin ve boş satırları yok sayın.
İkiden Fazla İşlenen
3 + 4 * 2 gibi birden çok işlenen içeren ifadeler için bir ifade ayrıştırıcısına ihtiyacınız vardır. Shunting-yard algoritması standart yaklaşımdır.
Hesap Makinesini Sınama
Hızlıca sınamak için girdiyi bir dosyadan aktarın.
echo "3 + 4\n10 / 2" | ./calcKısa Sınama
3 + 4 gibi boşluklarla ayrılmış belirteçleri ayrıştırmak için hangi standart kitaplık olanağı kullanışlıdır?
Özet
Küçük bir CLI hesap makinesi, girdi/çıktıyı, stringstream ile ayrıştırmayı ve switch tabanlı yönlendirmeyi gösterir. Hata yönetimi, daha fazla işleç, durum ve sonunda bir ifade ayrıştırıcısı ekleyerek onu genişletin.
Sıkça Sorulan Sorular
“Basit Bir CLI Hesap Makinesi Oluşturma” dersi ücretsiz mi?
Evet — “Basit Bir CLI Hesap Makinesi Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“Basit Bir CLI Hesap Makinesi Oluşturma” dersinde ne öğreneceğim?
Operatörleri ayrıştıran ve ifadeleri değerlendiren bir komut satırı hesap makinesi oluşturun C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Basit Bir CLI Hesap Makinesi Oluşturma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Basit Bir CLI Hesap Makinesi Oluşturma
- CSV Dosyalarını Okuma ve Yazma
- Sayı Tahmin Oyunu
- Sözcük Sıklığı Sayacı