Bygging av en enkel kalkulator som CLI
Bygg en kommandolinjekalkulator som tolker operatorer og evaluerer uttrykk.
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 operandForbedre 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" | ./calcRask 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.
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
- Bygging av en enkel kalkulator som CLI
- Lesing og skriving av CSV-filer
- Et tallgjettingsspill
- En ordfrekvensteller