Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Basisklasse aller Displays. Mehr ...
#include <calculator.h>
Ö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 | |
ComputerBase * | mCompP |
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 ... | |
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.
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.
void DisplayBase::makeDisplay | ( | const Number & | val | ) |
Setzt den Wert der Anzeige auf val und fuellt die Strings mModes, mValue und mSeven entsprechend.
val | auszugebende Zahl |
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.
|
virtual |
Erzeugt einen String des Wertes, wie ihn der Taschenrechner darstellen wuerde.
displayStr | falls nicht "", wird aus diesem String der Ausgabestring erzeugt (nur relevant fuer die ueberladenden Funktionen) |
Erneute Implementation in DisplaySci, DisplayFx3600p, DisplayFx85v und DisplayTiSci.
|
protected |
Setzt den String fuer die Rechner-Modi (DEG, SCI etc) zusammen.
Aus setModes() ausgelagert, weil auch von den abgeleiteten Klassen augerufen.
|
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.