Almetare  1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
CalculatorBase Klassenreferenz

Basisklasse aller Taschenrechner. Mehr ...

#include <calculator.h>

Klassendiagramm für CalculatorBase:
CalculatorFx3600p CalculatorFx85v CalculatorTi30

Ö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 ...
 
ComputerBasegetComputerP () const
 
DisplayBasegetDisplayP () const
 
CfgsgetCfgsP () 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)
 
ComputerBasemComputerP
 Zeiger auf den Computer.
 
DisplayBasemDisplayP
 Zeiger auf die Anzeige.
 
CfgsmCfgsP
 Zeiger auf die Konfigurationsdaten.
 
bool mIsDlgApp
 als Konsolen- oder Dialogapplik. gestartet?
 

Ausführliche Beschreibung

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.

Beschreibung der Konstruktoren und Destruktoren

◆ CalculatorBase()

CalculatorBase::CalculatorBase ( int  argc,
char **  argv 
)

Konstruktor tut eigentlich nichts, da die Konstruktion von den abgeleiteten Klassen uebernommen wird.

◆ ~CalculatorBase()

CalculatorBase::~CalculatorBase ( )

Destruktor raeumt die Objekte auf, die von den abgeleiteten Calculatoren angelegt wurden, da dies immer dieselben sind.

Dokumentation der Elementfunktionen

◆ calculate()

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.

◆ getNextSym()

string CalculatorBase::getNextSym ( string &  expr) const

Holt aus dem String expr das erste Symbol.

Parameter
exprString mit einer ganzen Tastenfolge (z.B. "3.4 * 3 sin ="
Rückgabe
String mit dem ersten Symbol

◆ getTitle()

string CalculatorBase::getTitle ( )

Erzeugt fuer die Konsolenversion einen String mit einem Titelbild.

Rückgabe
String mit Titelbild

◆ process()

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.

Parameter
inEingabe-String, der eine Zahl oder ein Symbol enthalten sollte

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: