C++ Academy · leksjon

Bygging av en enkel kalkulator som CLI

Bygg en kommandolinjekalkulator som tolker operatorer og evaluerer uttrykk.

Leksjon 1 av 414 trinn

Bygging av en enkel kalkulator som CLI er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Prosjektmål

Bygg en kommandolinjekalkulator som leser et uttrykk som 3 + 4 og skriver ut resultatet. Vi holder den minimal, men godt strukturert.

Nødvendige headerfiler

Vi trenger iostream for I/O og string for inndata.

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

Skjelett for hovedløkken

Les en linje, analyser den, beregn resultatet og skriv det ut. Avslutt ved EOF.

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

Analysering med stringstream

For to operander og én operator er tokenisering med stringstream enkel og robust.

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

Bruk operatoren

Et switch-uttrykk basert på operatortegnet.

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;
    }
}

Feilhåndtering

Hva om brukeren skriver noe ugyldig? Kontroller strømtilstanden og vis en forståelig melding.

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

Divisjon med null

Håndter divisjon med null eksplisitt. Skriv ut en feilmelding eller kast et unntak – det som passer utformingen.

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

Legge til flere operatorer

Utvid switch-uttrykket slik at det støtter flere operasjoner: %, ^ for potens eller navngitte funksjoner som sqrt.

Vedlikeholde tilstand

Ønsker De en løpende totalsum? Lagre det siste resultatet, og la brukeren begynne et uttrykk med +.

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

Forbedre brukeropplevelsen

Skriv ut en ledetekst før hver inndata, godta quit eller EOF for å avslutte, og ignorer tomme linjer.

Mer enn to operander

For uttrykk med flere operander, som 3 + 4 * 2, trenger De en uttrykksparser. Shunting-yard-algoritmen er standardtilnærmingen.

Teste kalkulatoren

Send inndata fra en fil gjennom programmet for å teste raskt.

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

Rask kontroll

Hvilken funksjonalitet i standardbiblioteket er praktisk for å analysere mellomromsseparerte token som 3 + 4?

Oppsummering

En liten CLI-kalkulator demonstrerer I/O, analysering med stringstream og switch-styrt fordeling. Utvid den med feilhåndtering, flere operatorer, tilstand og etter hvert en uttrykksparser.

Gratis å komme i gang

Lær deg C++ med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Bygging av en enkel kalkulator som CLI» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «Bygging av en enkel kalkulator som CLI», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Bygging av en enkel kalkulator som CLI»?

Bygg en kommandolinjekalkulator som tolker operatorer og evaluerer uttrykk. Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C++ Academy?

Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Bygging av en enkel kalkulator som CLI»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?

Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Bygging av en enkel kalkulator som CLI
  2. Lesing og skriving av CSV-filer
  3. Et tallgjettingsspill
  4. En ordfrekvensteller
← Tilbake til C++ Academy