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

Basisklasse aller Displays. Mehr ...

#include <calculator.h>

Klassendiagramm für DisplayBase:
DisplaySci DisplayCasioSci DisplayTiSci DisplayFx3600p DisplayFx85v DisplayTi30

Öffentliche Methoden

 DisplayBase (ComputerBase *cbP)
 Konstruktor. Setzt den Zeiger auf den Computer und die anderen Members.
 
string getValue () const
 
string getSeven () const
 
string getSevenRaw () const
 
string getModes () const
 
Number getVal () const
 
void setMem (bool isOn)
 
void setK (bool isOn)
 
void setCompP (ComputerBase *cP)
 
void setVal (const Number &val)
 
void setValue (const string &value)
 
void setSeven (const string &seven)
 
void makeDisplay (const Number &val)
 Setzt den Wert der Anzeige auf val und fuellt die Strings mModes, mValue und mSeven entsprechend. Mehr ...
 
void makeDisplay ()
 Wie makeDisplay(const Number& val), aber der Wert wird nicht neu gesetzt. Mehr ...
 
bool isError ()
 Prueft, ob bei einer Berechnung ein Fehler aufgetreten ist. Mehr ...
 
void setError ()
 
virtual void setModes ()
 Setzt den String fuer die Rechner-Modi (DEG, SCI etc) zusammen.
 
virtual void makeValue ()
 
virtual void makeSeven (string displayStr="")
 Erzeugt einen String des Wertes, wie ihn der Taschenrechner darstellen wuerde. Mehr ...
 
virtual int getNumStrLen (string dsplStr) const
 

Geschützte Methoden

void setModesBase ()
 Setzt den String fuer die Rechner-Modi (DEG, SCI etc) zusammen. Mehr ...
 

Geschützte Attribute

ComputerBasemCompP
 Zeiger auf Computer mit den Modes.
 
string mValue
 Anzeige unformatiert.
 
string mSeven
 Sieben-Segment-Anzeige, formatiert wie Original.
 
string mSevenRaw
 dito, aber noch mit Spaces statt '#' und evtl. e+002
 
string mMem
 Memory-Anzeige.
 
string mK
 Konstante.
 
string mModes
 "INV MOD M K LRN ITG hyp SD LR DEG RAD GRA FIX SCI"
 
Number mVal
 numerischer Wert der Sieben-Segment-Anzeige
 

Freundbeziehungen

ostream & operator<< (ostream &os, const DisplayBase *dbP)
 Ausgabeoperator fuer Klasse DisplayBase. Mehr ...
 

Ausführliche Beschreibung

Basisklasse aller Displays.

Die Klasse ist verantwortlich fuer die Darstellung aller Eingaben und Ergebnisse sowie der Anzeige der Betriebsmodi (DEG, RAD, SCI etc.). Fuer die Ausgabe dieser Daten auf der Konsole besitzt sie einen Ausgabeoperator, die Dialogboxen koennen die Daten selbst abfragen. Unterschiede zwischen den Rechnern werden in einem Satz virtueller Funktionen nachgebildet.

Dokumentation der Elementfunktionen

◆ isError()

bool DisplayBase::isError ( )

Prueft, ob bei einer Berechnung ein Fehler aufgetreten ist.

Dabei wird ausgenutzt, dass (zumindest bei Float-Arithmetik) bei der Umwandlung eines fehlerhaften Double-Wertes in einen String ein Fehlerstring erzeugt wird. Die Alternative waere eine Exception-Behandlung; das waere im Hinblick darauf, dass dies bei Integer-Rechnung von den Compilern standardmaessig so gehandhabt wird, wahrscheinlich die sauberere Loesung; das hat sich allerdings erst spaeter herausgestellt.

◆ makeDisplay() [1/2]

void DisplayBase::makeDisplay ( const Number val)

Setzt den Wert der Anzeige auf val und fuellt die Strings mModes, mValue und mSeven entsprechend.

Parameter
valauszugebende Zahl

◆ makeDisplay() [2/2]

void DisplayBase::makeDisplay ( )

Wie makeDisplay(const Number& val), aber der Wert wird nicht neu gesetzt.

Moeglicherweise sind aber andere Parameter der Darstellungg (z.B. DisplayMode) geaendert worden, daher diese Funktion.

◆ makeSeven()

void DisplayBase::makeSeven ( string  displayStr = "")
virtual

Erzeugt einen String des Wertes, wie ihn der Taschenrechner darstellen wuerde.

Parameter
displayStrfalls nicht "", wird aus diesem String der Ausgabestring erzeugt (nur relevant fuer die ueberladenden Funktionen)

Erneute Implementation in DisplaySci, DisplayFx3600p, DisplayFx85v und DisplayTiSci.

◆ setModesBase()

void DisplayBase::setModesBase ( )
protected

Setzt den String fuer die Rechner-Modi (DEG, SCI etc) zusammen.

Aus setModes() ausgelagert, weil auch von den abgeleiteten Klassen augerufen.

Freundbeziehungen und Funktionsdokumentation

◆ operator<<

ostream& operator<< ( ostream &  os,
const DisplayBase dbP 
)
friend

Ausgabeoperator fuer Klasse DisplayBase.

Wird fuer die Ausgabe auf die Konsole benoetigt und gibt die Modes, die "Sieben-Segment"-Anzeige und den rohen, numerischen Wert aus.


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