Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 16:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] Taschenrechner neustarten

Discussion on [C++] Taschenrechner neustarten within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Critone's Avatar
 
elite*gold: 149
Join Date: Feb 2010
Posts: 1,298
Received Thanks: 346
[C++] Taschenrechner neustarten

Hey,

ich habe eine Konsolenanwendung mit C++ geschrieben. Der Taschenrechner kann die Grundrechenarten und ein paar andere Funktionen aber das ist auch nicht das Hauptthema.

Wenn ich eine Funktion wähle (z.b Multiplizieren) dann rechnet er. Am Ende der If-Anweisung habe ich system("pause") und return 0, also beendet er nach jeder Rechenart das Programm. Dies möchte ich aber ändern.

Ich möchte das wenn man, z.b Multiplizieren, ausgeführt hat das Programm sozusagen "neustartet" also von Anfang an beginnt und man wieder im Menü bei den Rechenarten ist wo man auswählen kann.

Dies soll mit einer Abfrage nach der Rechenart passieren. Also wenn man gerechnet hat soll eine Abfrage kommen: "Zum beenden J drücken, um wieder ins Menü zu gelangen N drücken."

Ich habe gehört das dass mit eine while-Schleife funktionieren würde, leider habe ich keine Ahnung wie genau das geht und hoffe einfach das ihr mir helfen und Beispiele geben könnt.

Danke schonmal.

Gruß
Critone
Critone is offline  
Old 09/23/2013, 22:09   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Code:
do
{
    // ...
} while (!MoechteUserBeenden());
Dr. Coxxy is offline  
Old 09/24/2013, 16:42   #3
 
Critone's Avatar
 
elite*gold: 149
Join Date: Feb 2010
Posts: 1,298
Received Thanks: 346
Versteh ich nicht ganz, sorry :/ kannst du das vielleicht erklären?
Critone is offline  
Old 09/24/2013, 17:18   #4
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
In die Funktion MoechtUserBeenden kommt dann etwa sowas rein:
Code:
bool MoechteUserBeenden()
{
   char input = 'n';

   std::cout << "Wollen Sie nochmal rechnen? j/n: ";
   std::cin >> input;

   return input == 'n';
}
Dann musst du nur noch in die Schleife dein eigentliches Rechenprogramm packen und schon kann man nach jeder abgeschlossenen Rechnung wählen, ob man weiter machen will.
jacky919 is offline  
Old 09/24/2013, 17:36   #5
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Code:
char DoStop;
do
{
  printf("Beenden? ");
  scanf("%c", &DoStop);
  while (getchar() != '\n') { ; }
} while(DoStop == 'n');
C++ musste selber machen mit cout/cin...

EDIT:
ich sollte vllt öfter mal aktualisieren, da war jacky919 schneller - 20 minuten :/
Dr. Coxxy is offline  
Old 09/26/2013, 11:13   #6
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Mach entweder eine While 1==1 Schleife drum oder nimm (die schlechtere Variante) Sprungmarken:
Code:
Sprungmarke:

// Hier wird gerechnet

goto Sprungmarke;
alpines is offline  
Old 09/26/2013, 14:13   #7
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Originally Posted by alpines View Post
Mach entweder eine While 1==1 Schleife drum oder nimm (die schlechtere Variante) Sprungmarken:
Code:
Sprungmarke:

// Hier wird gerechnet

goto Sprungmarke;
Ernsthaft? Du empfiehlst ihm goto? Und dann auch noch bei dem denkbar schlechtesten Anwendungsbeispiel? Wow, einfach nur wow...
Nightblizard is offline  
Thanks
2 Users
Old 09/26/2013, 14:40   #8
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Für goto gibt eigentlich kein gutes Anwendungsbeispiel. Das einzige was mir einfällt: Wenn man aus ner x-fach verschachtelten Schleife will (wobei ich da ein flag benutzen würed, dass man einfach abfragt).
Schlüsselbein is offline  
Old 09/26/2013, 15:13   #9
 
Master674b's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 255
Received Thanks: 110
goto sollte auf JEDEN Fall vermieden werden, da alles was zwischen einem Sprung initialisiert wird nie freigegeben wird. Es wird kein stack-unwinding gemacht. Genauso wie bei setjmp und longjmp.
Master674b is offline  
Old 09/26/2013, 17:44   #10
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Ich sagte doch das es die schlechtere Variante ist, man sollte schon lesen können.
Es ist eine Möglichkeit, natürlich sollte es wenns geht vermieden werden aber trotzdem sollte man ihm die Entscheidung nicht nehmen, und das ist eine Möglichkeit wie man es machen kann nicht muss.
alpines is offline  
Old 09/26/2013, 21:19   #11


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Es hat Vorteile, die schlechten Teile einer Sprache gar nicht erst mit zu lernen.
MrSm!th is offline  
Old 09/27/2013, 02:01   #12
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
na, man sollte alle teile einer sprache lernen, so hat man für jede situation die beste lösung bei hand und kann u.U. auch direkt den code von anderen leuten verstehen, die vllt. nicht so "sauber" arbeiten.
Dr. Coxxy is offline  
Old 09/27/2013, 16:11   #13


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Mit den schlechten Teilen bekommt man aber keine guten Lösungen.
Das Verstehen ist vielleicht noch ein Argument.

Ich dachte auch bis vor einiger Zeit, dass man eine Sprache vollständig lernen sollte, aber eigentlich ist das Unsinn. Auch Sprachdesigner machen Fehler und bauen Features ein, die man niemals nutzen sollte. Von denen kann man zwar wissen, aber zu lernen, wie man sie anwendet, ist verschwendete Zeit und verursacht schlimmstenfalla noch, dass man sie sich aneignet (wenn man nicht von Anfang an um ihre Probleme weiß). Das kostet dann gleich doppelt Zeit, weil man sie sich wieder abgewöhnen darf.

Lange Rede, kurzer Sinn: Einem Anfänger goto, und sei es auch nur mit Einschränkung, zu empfehlen, ist absolut hirnrissig.
MrSm!th is offline  
Old 09/27/2013, 16:44   #14
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
empfehlung aufjedenfall schwachsinn, aber wissen sollte mans trzd. imo
Dr. Coxxy is offline  
Old 10/06/2013, 15:04   #15

 
elite*gold: 0
Join Date: Mar 2013
Posts: 2,449
Received Thanks: 6,446
Warum so "kompliziert?"

Code:
#include <string.h>

string bes = "ja";

while( bes == "ja" )
{
	....
	
	std::cout << "Wiederholen?" << std::endl;
	std::cin >> bes;
}
Lord iRemix is offline  
Reply


Similar Threads Similar Threads
Taschenrechner
07/23/2012 - C/C++ - 11 Replies
Hallo, ich bin ein noch ziemlicher Anfänger in C++. Heute habe ich einen Taschenrechner programmiert( er kann nur zwei zahlen bearbeiten). : #include <iostream> using namespace std; int Zahl1, Zahl2, Eingabe, Ergebnis; char Antwort; int main() {
[B]Taschenrechner[S]26k EG
10/13/2011 - elite*gold Trading - 18 Replies
http://www.elitepvpers.com/theblackmarket/treasure /66318 Treasure oben ;) Wer kauft bekommt PN mit link. Screens gibts auch nicht ;) Was kann der Taschenrechner? Plus und minus rechnen!
[VC++] Taschenrechner mit GUI
07/08/2011 - C/C++ - 3 Replies
Hey Leute also ich bin noch ein ziemlicher Anfänger in C++ und bin grad dabei, einen Taschenrechner zu erstellen. Er soll eben ne Oberfläche haben und nicht als Konsolenanwendung abgespielt werden. Ich hab jetzt ein Textfeld, 0-9 Buttons als Ziffern und die Rechenarten. Dann noch "Berechnen" und "Löschen", damit das Textfeld geleert wird und man von neu rechnen kann. Nun zu meiner Frage. Mit welchem Befehl erreiche ich, dass die Zahl, sobald ich sie anklicke, im Textfeld erscheint?
Taschenrechner Buttons
06/08/2011 - AutoIt - 6 Replies
hi ich wollte grad nen taschenrechner programmieren, aber irgendwo is nen fehler^^ bei case 2,3 und 4 steht absichtilich noch nichts. kann mir einer dann auch gleich schreiben wies richtig wäre? wäre nett :) #include <GUIConstants.au3>
[HELP]Taschenrechner
03/09/2011 - AutoIt - 2 Replies
Also ich wollte nen kleinen Taschenrechner Skripten. Hab jz ein Problem. Undzwar soll in die hinterste Inputbox der Zeile das Ergebnis angezeigt werden. Wie kann ich das machen? #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= ;------------------------------------------------ ----GUI---------------------------------------



All times are GMT +1. The time now is 16:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.