Wie findet ihr diesen Code?
-
öhmm... wenn ich using namespace std weglass will er endl nich mehr o.O liegst an mir am compiler oder muss ichs doch benutzen?? xD
-
std::endl
-
Hab ich auch gedacht hatte mich wohl vertippt
okay dann noch system ("cls") raus...
Edith: Mit cin.get() geht switch nich mehr... also keine weitere rechnung
Mal schauen wie ich das umschreiben muss >:D
-
Dort musst du in nen temporären char einlesen. So:
char tmp; std::cin >> tmp; switch(tmp)
-
okay wollt ich zwar eig selber drauf kommen aber danke
so okay verbesserungen abgeschlossen code perfekt
nein wie findest du ihn jetzt?
-
Zeig nochmal verbesserte Version her
-
#include <iostream> int main() { double accelaration; double mass; double power; bool fertig = false; int Durchlaeufe = 100; std::cout << "-------------------------------------------\n" << "-----Willkommen bei dem Kraftberechner-----\n" << "------------------------------------------- " << std::endl; std::cout << "\n\n" << std::endl; std::cout << "Bitte Waehlen sie ihre Berechnungsart: \n" << "(1)Kraft = Beschleunigung * Masse \n" << "(2)Beschleuniging = Kraft/Masse \n" << "(3)Masse = Kraft/Beschleunigung " << std::endl; for (int i = 0; (i < Durchlaeufe) && !fertig; ++i) { switch (std::cin.get()) { case '1': std::cout << "Bitte geben Sie ihre Beschleunigung an(in m/s^2):\n"; std::cin >> accelaration; std::cout << "Geben Sie nun ihre Masse an(in Kilogramm): \n"; std::cin >> mass; power = accelaration * mass; system("cls"); std::cout << "Ergebnis:\n" << power << "N\n"; break; case '2': std::cout << "Bitte geben Sie ihre Kraft an(in Newton):\n"; std::cin >> power; std::cout << "Bitte geben Sie ihre Masse an(in Kilogramm):\n"; std::cin >> mass; accelaration = power/mass ; system("cls"); std::cout << "Ergebnis:\n" << accelaration << "m/s^2\n"; break; case '3': std::cout << "Bitte geben Sie ihre Kraft an(in Newton):\n"; std::cin >> power; std::cout << "Bitte geben Sie ihre Beschleuniging an(in m/s^2):\n"; std::cin >> accelaration; mass = power/accelaration; system("cls"); std::cout << "Ergebnis:\n" << mass << "kg\n"; break; } std::cout <<"Wollen sie eine weitere Rechnung machen?(j/n)" << std::endl; char tmp; std::cin >> tmp; switch(tmp) { case 'j': std::cout << "Bitte Waehlen sie ihre Berechnungsart: \n" << "(1)Kraft = Beschleunigung * Masse \n" << "(2)Beschleuniging = Kraft/Masse \n" << "(3)Masse = Kraft/Beschleunigung " << std::endl; break; case 'n': return 0; break; }; } }
flüchtigkeitsfehler vorbehalten xD habs nur schnell verbessert wie du gesagt hast
-
#include <iostream> void processUserInput() { std::cout << "Bitte Waehlen sie ihre Berechnungsart:" << std::endl << "(1)Kraft = Beschleunigung * Masse" << std::endl << "(2)Beschleuniging = Kraft/Masse" << std::endl << "(3)Masse = Kraft/Beschleunigung" << std::endl; char tmp; std::cin >> tmp; switch(tmp) { case '1': std::cout << "Bitte geben Sie ihre Beschleunigung an(in m/s^2):" << std::endl; std::cin >> accelaration; std::cout << "Geben Sie nun ihre Masse an(in Kilogramm):" << std::endl; std::cin >> mass; power = accelaration * mass; std::cout << "Ergebnis:" << std::endl << power << "N" << std::endl; break; case '2': std::cout << "Bitte geben Sie ihre Kraft an(in Newton):" << std::endl; std::cin >> power; std::cout << "Bitte geben Sie ihre Masse an(in Kilogramm):" << std::endl; std::cin >> mass; accelaration = power / mass; std::cout << "Ergebnis:" << std::endl << accelaration << "m/s^2" << std::endl; break; case '3': std::cout << "Bitte geben Sie ihre Kraft an(in Newton):" << std::endl; std::cin >> power; std::cout << "Bitte geben Sie ihre Beschleuniging an(in m/s^2):" << std::endl; std::cin >> accelaration; mass = power/accelaration; std::cout << "Ergebnis:" << std::endl << mass << "kg" << std::endl; break; default: // Was passiert, wenn der User weder '1', '2' oder '3' eingibt? } std::cout << "Wollen sie eine weitere Rechnung machen?(j/n)" << std::endl; std::cin >> tmp; switch(tmp) { case 'j': processUserInput(); break; case 'n': return; default: // Was passiert, wenn der User weder 'j' noch 'n' eingibt? } } int main() { double accelaration, mass, power; std::cout << "-------------------------------------------" << std::endl << "-----Willkommen bei dem Kraftberechner-----" << std::endl << "-------------------------------------------" << std::endl; processUserInput(); }
Habs mal etwas umgestellt.
-
Das ist ja so fürn A**** in dem Fall alles einfach in eine Funktion zu packen...(vorallem weil deine Version nicht mal funktioniert). Schreib ruhig using namespace std; bei einfachen Programmen wie deins.
-
okay danke für den code
ich glaub ich lass den atomkrieg ausbrechen wenn der user nich auf 1,2,3, 'j' oder 'n' drückt >: D
-
Es heisst nicht Edith, sondern edit ohne h (kommt vom Englischen).
Wie du wahrscheinlich schon selbst bemerkt hast, wiederholt sich der Code in den einzelnen switches zum Grossteil. Warum nicht sowas:
int read_acceleration() { std::cout << "Bitte geben Sie ihre Beschleunigung an(in m/s^2):" << std::endl; int i; std::cin >> i; return i; } // analog für alle Grössen case '1': int a = read_acceleration(); int m = read_mass(); std::cout << "Ergebnis:\n" << a*m << "N\n"; break; // analog für alle cases
Das processUserInput würde ich auflösen, solche Sachen können problemlos in main rein.
-
HighLigerBiMBam schrieb:
Das ist ja so fürn A**** in dem Fall alles einfach in eine Funktion zu packen...(vorallem weil deine Version nicht mal funktioniert). Schreib ruhig using namespace std; bei einfachen Programmen wie deins.
Ist ungetestet
-
ich weiß aber die Form "Edith (sagt:)" is auch gebräuchlich
-
In dem Fall hilft immer eine do-while-Schleife die den user erneut auffordert j bzw. n einzugeben. Switchs case finde ich bei so wenigen Optionen unübersichtlich.
char janein; do { std::cout << "Wollen sie eine weitere Rechnung machen?(j/n)" << std::endl; std::cin >> janein; }while(janein != 'j' || janein != 'n'); if(janein == 'j') processUserInput(); //andernfals ka was du machen willst
-
danke für eure ganzen antworten
so jetzt hab ich den schon fast perfekten code
-
dann zeig her ich wette nicht
-
Du sagtest, dass du "Dev C++" als IDE verwendest.
Ich empfehle dir eine andere zu wählen(Visual C++ 2010 Express oder CodeBlocks). Denn Dev C++ wird schon seit Jahren nicht mehr weiterentwickelt und es gibt einfach besseres
-
hm ich find dev-c++ ganz gut
aber wenn du´s sagst dann schau ich mich mal nach einem neuen um
-
Solltest du definitiv. Dev C++ hat so einige Fehler
-
cool das mir das mal jmd sagt
hmm... was könntet ihe den so empfehlen?
(FAQ... is so ein thema mit mir xD)