Rechenprogramm in C++ erstellen, aber wie ?

Kulturni

Grünschnabel
hi, ich bin total am verzweifeln
habe einen code gebastelt aber die exe lässt sich einfach nicht ausführen

ich hoffe ihr könnt mir weiterhelfen

#include <iostream>

#include <conio.h>

using namespace std;

int main()



{

int a = 0;

int Ergebnis = 0;

int Ergebniss = 1;

int Auswahl = 0;

cout << " "<<endl<<endl;

cout << " Servus"<<endl;

cout << " Waehlen Sie die Rechenart aus!"<<endl;

cout << " unbekannt"<<endl<<endl;

cout << " Addieren (1)"<<endl;

cout << " Subtrahieren (2)"<<endl;

cout << " Multiplizieren (3)"<<endl;

cout << " Devidiren (4)"<<endl<<endl;

cout << " Die gewuenschte Zahl eingeben :";

cin >> Auswahl;

switch (Auswahl)

{

case 1:

do

{

cout << " Bitte geben sie eine Zahl ein : ";

cin >> a;

Ergebnis = Ergebnis+a;

}while (a !=0);

cout << " "<<endl<<endl;

cout << " Das Ergebnis lautet: " << Ergebnis << " !";

break;





case 2:

do

{

cout << " Bitte geben sie eine Zahl ein : ";

cin >> a;

Ergebnis = a-Ergebnis;

}while (a !=0);

cout << " "<<endl<<endl;

cout << " Das Ergebnis lautet: " << Ergebnis << " !";

break;





case 3:

do

{

cout << " Bitte geben sie eine Zahl ein : ";

cin >> a;

Ergebniss = a*Ergebniss;

}while (a !=1);

cout << " "<<endl<<endl;

cout << " Das Ergebnis lautet: " << Ergebnis << " !";

break;



case 4:

do

{

cout << " Bitte geben sie eine Zahl ein : ";

cin >> a;

Ergebniss = Ergebniss/a;

}while (a !=1);

cout << " "<<endl<<endl;

cout << " Das Ergebnis lautet: " << Ergebnis << " !";

break;

};





getch();

};
 

Kangaxx

Mitglied
Hallo,

also erstmal solltest du deinen Code ein bisschen formatieren (nur für den Fall das der au so in deiner .cpp File steht...)

Danach hätte ich mal die Frage ob es wirklich beabsichtigt is das der Benutzer solange Zahlen bei einer Rechenoperation eingeben soll bis er eine 1 eingegeben hat?

Also wenn das eine fertig compilierte Anwendung is, dann solltest du vlt den Compiler wechseln, da fehlt nämlich ein return für deine Main... :)

Erklärung: int main() heißt das die Funktion Main einen Wert vom Typ integer (also ne Zahl...) zurückgeben muss. Für gewöhnlich gibt man 0 zurück wenn kein Fehler aufgetreten is..


P.S und da du ja eh den iostream-Header drin hast könntest du auch system("Pause") anstatt dem getchar() am Ende verwenden.
 

Kulturni

Grünschnabel
also ich habe jetzt endlich einen relativ guten quellcode nur eins fehlt mir, und zwar weiß ich nicht, wie ich es hinkriege, dass das ding direkt eine nächste rechenoperation macht. das programm sollte weierlaufen und nicht nach der ersten rechnung direkt schließen

kann mir da einer weiterhelfen ?

//Taschenrechner C++.cpp

#include <iostream>
#include <math.h>


using namespace std;

int menu() {

int i;


cout << "Dies ist ein Taschenrechnerprogramm. Damit koennen sie weiterrechnen, wenn das verrunzte Gehirn nicht mehr moechte. ";
cout << "Waehlen sie nun die Rechenart aus. Dabei benutzen Sie bitte eine Zahl zwischen 1 und 4. Und jetzt wuensche ich viel Spass, sie Mathegenie";
cout << "\n\t<---------Taschenrechner----------->"
<< "\n\t(1) Addieren"
<< "\n\t(2) Subtrahieren"
<< "\n\t(3) Multiplizieren"
<< "\n\t(4) Diviedieren"
<< "\n\t<----------------------------------->";
cin >> i;
return i;
}

int main() {

bool quit=false;
int schluss;
long double a, b;
int aus=menu();
do {
switch (aus) {
case 1:
case 2:
case 3:
case 4:

cout << "\n\n\tBitte erste Zahl eingeben";
cin >> a;
cout << "\n\n\tBitte zweite Zahl eingeben";
cin >> b;
switch(aus) {

case 1: cout << "\n\t" << a << " + " << b << " = " << a + b << endl; break;
case 2: cout << "\n\t" << a << " - " << b << " = " << a - b << endl; break;
case 3: cout << "\n\t" << a << " * " << b << " = " << a * b << endl; break;
case 4: cout << "\n\t" << a << " / " << b << " = " << a / b << endl; break;
}
quit=true;
break;

default:
cout << "\n\tFalsche eingabe";
break;

}


}while (!quit);

cout << "\n\tBeliebige Taste und dann enter druecken zum beenden";
cin >> schluss;

return 0;

}
 

cav3man

Grünschnabel
Hi

Das Problem ist folgendes:

In deiner Main deklarierst du eine Integer Variable "aus" die du dann mit dem Rückgabewert aus der Funktion Menu initialisierst. Also mit 1 wenn die Addition ausgewählt wurde und so weiter.

Da startest du eine Do While Schleife die die Rechnung auswerten soll.
Nach der Rechnung setzt du dann den Schalter "quit" auf TRUE.
Die Schleife ist nun zuende und die Bedingnung !quit wird geprüft.
Da quit auf TRUE steht und durch das ! umgekehrt wird steht die Bedingnung auf FALSE und die Schleife wird beendet. Nach der Schleife ist nun das Programm beendet.

Damit das ganze so funktioniert wie du willst musst du die Variable "aus" vor der Schleife deklarieren, aber erst in der Schleife initialisieren.

Am Ende der Schleife macht du dann eine Eingabe "Wollen Sie eine weitere Rechnung durchführen?". Anhand der Eingabe weißt du dann der Variablen quit ein TRUE zu falls beendet werden soll oder ein FALSE wenn nicht beendet werden soll.

Ich hoffe ich konnte dir helfen.
Gruß
cav3man
 

cav3man

Grünschnabel
Code:
//Taschenrechner C++.cpp

#include <iostream>
#include <math.h>

using namespace std;

int menu() {

int i;

cout << "Dies ist ein Taschenrechnerprogramm. Damit koennen sie weiterrechnen, wenn das verrunzte Gehirn nicht mehr moechte. ";
cout << "Waehlen sie nun die Rechenart aus. Dabei benutzen Sie bitte eine Zahl zwischen 1 und 4. Und jetzt wuensche ich viel Spass, sie Mathegenie";
cout << "\n\t<---------Taschenrechner----------->"
<< "\n\t(1) Addieren"
<< "\n\t(2) Subtrahieren"
<< "\n\t(3) Multiplizieren"
<< "\n\t(4) Diviedieren"
<< "\n\t<----------------------------------->";
cin >> i;
return i;
}

int main() {

bool quit = false;
int schluss;
long double a, b;
int aus
do {
aus = menu();

cout << "\n\n\tBitte erste Zahl eingeben";
cin >> a;
cout << "\n\n\tBitte zweite Zahl eingeben";
cin >> b;
switch(aus) {

case 1: 
{
cout << "\n\t" << a << " + " << b << " = " << a + b << endl; 
break;
}
case 2: 
{
cout << "\n\t" << a << " - " << b << " = " << a - b << endl; 
break;
}
case 3: 
{
cout << "\n\t" << a << " * " << b << " = " << a * b << endl; 
break;
}
case 4: 
{
cout << "\n\t" << a << " / " << b << " = " << a / b << endl; 
break;
}
}
cout << "Wollen sie noch eine Rechnung durchfuehren? [1=ja/2=nein] " << endl;
cin >> schluss;
if(schluss == 1)
{
quit = false;
}
else
{
quit = true;
}
}while (!quit);

cout << "\n\tBeliebige Taste druecken zum beenden";
system("pause");

return 0;

}
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
Also wenn das eine fertig compilierte Anwendung is, dann solltest du vlt den Compiler wechseln, da fehlt nämlich ein return für deine Main... :)

Erklärung: int main() heißt das die Funktion Main einen Wert vom Typ integer (also ne Zahl...) zurückgeben muss. Für gewöhnlich gibt man 0 zurück wenn kein Fehler aufgetreten is..
Den Compiler zu wechseln ist Unsinn. Sowohl in C++ als auch in C (Standard von 1999) ist es legitim und auch üblich das abschließende "return 0;" in der Haupteinsprungsroutine main wegzulassen. Läßt man es weg, wird automatisch 0 zurückgegeben.

Gruß
 
Zuletzt bearbeitet:
2

2lo2die8D

//Taschenrechner von Mars.cpp - Mein erstes Projekt
#include <iostream>
#include <cmath>
#include <string>

using namespace std ;

int main ()
{

for ( int x = 1 ; x <= 900 ; x += 1 )
{
cout << "Marks Taschenrechnerprogramm 1.2" << endl ;
cout << endl ;
cout << "Waehlen sie den Rechenvorgang aus" << endl ;
cout << "Multiplikation [1]" << endl ;
cout << "Division [2]" << endl ;
cout << "Addition [3]" << endl ;
cout << "Subtraktion [4]" << endl ;
cout << "Quadrieren [5]" << endl ;
cout << "Quadratwurzel ziehen [6]" << endl ;
cout << "Beenden [0]" << endl ;
cout << "Bitte geben sie eine der oben genannten Ziffern als Rechenvorgang an." << endl ;
string y;
cin >> y;
if ( y >= "0" )
{
if ( y == "1" )
{
double sjdfgjpaspirgilisndfsdnj ;
double jdfjpaspirgilissjngjnsdn ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die erste Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj ;
cout << "Bitte geben sie die zweite Zahl ein... " ;
cin >> jdfjpaspirgilissjngjnsdn ;

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj * jdfjpaspirgilissjngjnsdn;
cout << "Das Ergebnis aus " << sjdfgjpaspirgilisndfsdnj << " x " << jdfjpaspirgilissjngjnsdn << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "2" )
{
double sjdfgjpaspirgilisndfsdnj ;
double jdfjpaspirgilissjngjnsdn ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die erste Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj ;
cout << "Bitte geben sie die zweite Zahl ein... " ;
cin >> jdfjpaspirgilissjngjnsdn ;

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj / jdfjpaspirgilissjngjnsdn;
cout << "Das Ergebnis aus " << sjdfgjpaspirgilisndfsdnj << " : " << jdfjpaspirgilissjngjnsdn << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "3" )
{
double sjdfgjpaspirgilisndfsdnj ;
double jdfjpaspirgilissjngjnsdn ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die erste Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj;
cout << "Bitte geben sie die zweite Zahl ein... " ;
cin >> jdfjpaspirgilissjngjnsdn;

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj + jdfjpaspirgilissjngjnsdn;
cout << "Das Ergebnis aus " << sjdfgjpaspirgilisndfsdnj << " + " << jdfjpaspirgilissjngjnsdn << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "4" )
{
double sjdfgjpaspirgilisndfsdnj ;
double jdfjpaspirgilissjngjnsdn ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die erste Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj;
cout << "Bitte geben sie die zweite Zahl ein... " ;
cin >> jdfjpaspirgilissjngjnsdn;

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj - jdfjpaspirgilissjngjnsdn;
cout << "Das Ergebnis aus" << sjdfgjpaspirgilisndfsdnj << " - " << jdfjpaspirgilissjngjnsdn << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "5" )
{
double sjdfgjpaspirgilisndfsdnj ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die zu potenzierende Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj;

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj * sjdfgjpaspirgilisndfsdnj;
cout << "Das Quadrat aus" << sjdfgjpaspirgilisndfsdnj << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "6" )
{
double sjdfgjpaspirgilisndfsdnj ;
double dsfgaerqewpaspirgilisipkl ;
cout << "Bitte geben sie die erste Zahl ein... " ;
cin >> sjdfgjpaspirgilisndfsdnj ;

dsfgaerqewpaspirgilisipkl = sqrt (sjdfgjpaspirgilisndfsdnj);
cout << "Die Wurzel aus" << " = " << dsfgaerqewpaspirgilisipkl << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
if ( y == "0" )
{
x = x + 899;
}
}
else
{
cout << "Rechenweg nicht vorhanden" << endl ; cout << endl ; cout << endl ;
cout << "Bitte enter druecken" << endl ;
fflush(stdin);
getchar();
}
}
cout << "Dieses Programm ist Beendet" << endl ;
fflush(stdin);
getchar();
return 0;
}
ich kann dir meinen zur verfügung stellen =)