Ich meinte primär TCHAR und die stdafx.h, die für einen Neuling reichlich schwer zu erklären wären. Die "Standard" main( ) ist nun mal eine andere.
Aber meine Anmerkungen zum Inhalt:
Sprechliche Variablen heisse nicht z1 und z2, sondern in diesem Fall operator1 und operator2, da sie genau das sind: Operatoren für ein Rechenprogramm.
Wenn Du die ungarische Notation wählen möchtest, wären die korrekten Namen für diese Variablen "nOperator1" und "nOperator2". Mit z1 und z2 kann niemand etwas anfangen.
Code:
string note = ("------------------\nRechnung: ");
string note1 = ("Achtung nur +-*/ erlaubt");
string note2 = ("Magst bitte die ");
string note3 = (" Zahl eingeben!\n");
string note4 = ("------------------");
Du kannst daraus einen string machen und es ist immer gut, wenn man bei Hochdeutsch und ganzen Sätzen bleibt, da das "Magst" leider nicht dazu zählt, würde ich es streichen. Hier wäre ein: "Achtung: Es sind nur +-*/ Operationen möglich\nBitte die Zahl eingeben:\n-------------------" neutraler und sachlicher.
Code:
string err1 = ("Es wurde was falsches oda nix eingegeben");
Wie mein Vorredner schon sagte, ist kiddie chatslang inakzeptabel. Das "was" ist ebenfalls kein Hochdeutsch, sondern ein verschlucktes "etwas" und das "nix" ersetzt man besser durch ein "nichts". "Falsches" und "Nichts" würde in diesem Fall ausserdem gross geschrieben werden.
Code:
class ScTst //ShellCalcTest
{
// Von Main aus zugreifbare Funktionen und Methoden
public:
Klassennamen sollten sprechlich sein. Niemand weiss in zwei Monaten, was die Klasse ScTst denn macht.
Der Satz zur Sichtbarkeit ist in diesem Zusammenhang vollkommen korrekt, aber nicht allgemeingültig. Public ist eine öffentliche Sichtbarkeit, d.h. diese Methoden sind nicht nur von main, sondern von jedem zugänglich.
Übrigens ist der Term "Funktionen" in diesem Zusammenhang nicht korrekt, da Du (sollte ich nichts übersehen haben) nur Prozeduren deklarierst und definierst. Eine Funktion liefert immer einen Wert zurück. Zudem spricht man in der OOP für gewöhnlich nur von den Methoden einer Klasse.
Code:
oAb = oA;//eingegebener Wert für Operation wird übergben
switch (oAb)//bezeichner der operative wird in schleife verwendet
{
Hier gibt es einen Tippfehler im oberen Kommentar und die switch Anweisung ist mißverständlich beschrieben. Es handelt sich um eine Fallunterscheidung und nicht um die Verwendung einer Schleife.
Code:
system("Pause"); //anzeige des ergebnisses anzeigen
ScTst::Main(); //zurück zur Hauptmethode der Klasse ScTst
Der Kommentar "Ergebnis anzeigen" ist beim Aufruf des Betriebssystembefehls "Pause" leider sehr fehl am Platze, denn das hat nichts miteinander zu tun und die Zeile darunter ist ein echter Fehler: Dort geht es nicht zurück zur Hauptfunktion, sondern diese wird erneut aufgerufen. Das ist ein immenser Unterschied, denn die Hauptfunktion selbst ruft diese ja auch wieder auf und das fortwährende gegenseitige Aufrufen ohne je zu beenden führt irgendwann zu einem StackOverflow und man verliert die ganze Zeit konstant Speicher.
Hier wäre eine Ausbesserung des Programmfehlers sicherlich ratsam, da so ein Fehler natürlich eine tolle Gelegenheit ist, fiese Fragen in einer mündlichen Prüfung zu stellen.
Code:
int _tmain(int argc, _TCHAR* argv[])
Wie oben schon kurz erwähnt: Du solltest wissen, was TCHAR denn eigentlich ist. Das ist kein Standard C/C++ und lädt natürlich auch zu tollen Rückfragen ein.
Ansonsten ist es ganz ok. Der Programmierstil lässt noch klar erkennen, dass der Programmierer eher unerfahren ist, aber das wäre ja auch wahrscheinlich sehr seltsam, wenn Du mit einem perfekt geschliffenen Programm aufwarten würdest. Für mündliche Prüfungen kann ich Dir den Tipp geben, das Programm vorher mal irgendwem zu erklären, der vielleicht auch Rückfragen stellen kann. Am besten zwei, drei Mal - dann bist Du bei der eigentlichen Prüfung viel flüssiger und das wirkt immer kompetent