Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Basisklasse aller Taschenrechner. Mehr ...
#include <calculator.h>
Öffentliche Methoden | |
CalculatorBase (int argc, char **argv) | |
Konstruktor tut eigentlich nichts, da die Konstruktion von den abgeleiteten Klassen uebernommen wird. Mehr ... | |
~CalculatorBase () | |
Destruktor raeumt die Objekte auf, die von den abgeleiteten Calculatoren angelegt wurden, da dies immer dieselben sind. Mehr ... | |
ComputerBase * | getComputerP () const |
DisplayBase * | getDisplayP () const |
Cfgs * | getCfgsP () const |
string | getProgName () const |
string | getProgVers () const |
string | getAccPath () const |
bool | getIsDlgApp () const |
double | calculate () |
Uebernimmt bei der Konsolenversion die Steuerung der Eingabe und Berechnung und Ausgabe der Werte. Mehr ... | |
void | process (string in) |
Verarbeitet ein einzelnes Symbol. Mehr ... | |
string | getTitle () |
Erzeugt fuer die Konsolenversion einen String mit einem Titelbild. Mehr ... | |
string | getNextSym (string &expr) const |
Holt aus dem String expr das erste Symbol. Mehr ... | |
bool | isError () const |
int | getNumStrLen (string dsplStr) |
Geschützte Attribute | |
string | mProgName |
z.B. "TI-30", "Casio fx-85v", ... | |
string | mProgPath |
Pfad, unter dem das Binary liegt. | |
string | mProgVers |
Programmversion zwecks Vrgl. in Ini-Datei. | |
string | mHomeDir |
Home-Verzeichnis des Users (falls Linux) | |
string | mAccPath |
Zubehoer-Ordner. | |
string | mIniFileName |
Name der Initialisierungsdatei (ohne Pfad) | |
ComputerBase * | mComputerP |
Zeiger auf den Computer. | |
DisplayBase * | mDisplayP |
Zeiger auf die Anzeige. | |
Cfgs * | mCfgsP |
Zeiger auf die Konfigurationsdaten. | |
bool | mIsDlgApp |
als Konsolen- oder Dialogapplik. gestartet? | |
Basisklasse aller Taschenrechner.
Ein Taschenrechner besteht aus einem Gehaeuse, einem Rechenwerk und einer Anzeige sowie aus einem Algorithmus, der Zeichenketten entgegennimmt und an den Computer weiterleitet. CalculatorBase (bzw. die hiervon abgeleiteten Klassen bilden das Gehaeuse, das die anderen Komponenten als Members (bzw. Zeiger darauf) enthaelt.
CalculatorBase::CalculatorBase | ( | int | argc, |
char ** | argv | ||
) |
Konstruktor tut eigentlich nichts, da die Konstruktion von den abgeleiteten Klassen uebernommen wird.
CalculatorBase::~CalculatorBase | ( | ) |
Destruktor raeumt die Objekte auf, die von den abgeleiteten Calculatoren angelegt wurden, da dies immer dieselben sind.
double CalculatorBase::calculate | ( | ) |
Uebernimmt bei der Konsolenversion die Steuerung der Eingabe und Berechnung und Ausgabe der Werte.
Bei Tests ohne Eingabe ueber Konsole und stattdessen Einlesen aus String "expr": Zeile mit cin einkommentieren und die mit getNextSym() aktivieren.
string CalculatorBase::getNextSym | ( | string & | expr | ) | const |
string CalculatorBase::getTitle | ( | ) |
Erzeugt fuer die Konsolenversion einen String mit einem Titelbild.
void CalculatorBase::process | ( | string | in | ) |
Verarbeitet ein einzelnes Symbol.
Dies ist die zentrale Funktion zur Bearbeitung von Eingaben. Im String in wird ein Symbol erwartet; das sollte entweder eine Zahl sein oder eine Zeichenkette, die sich in der Symboltabelle befindet. Die Zeichenkette wird in der Symboltabelle gesucht, damit ist dann ein Symbol-Pointer gefunden. Das Symbol wird durch die process()-Funktion des Symbols verarbeitet. Wenn das Symbol nicht gefunden wird, wird von der Funktion isSym() eine Fehlermeldung ausgegeben.
in | Eingabe-String, der eine Zahl oder ein Symbol enthalten sollte |