Hi zusammen. Ich habe ein Problem mit einer Schulaufgabe. Und zwar soll dabei mit der Überladung von Funktionen gearbeitet werden.
In der Aufgabe wird verlangt, einen Taschenrechner zu erstellen, der die vier Grundrechenarten anwenden kann. In main () sollen zwei Zahlen eingelesen werden, die Rechenart ausgewählt werden und die beiden zahlen über ihre jeweilige Funktion berechnet werden. Jede Rechenart hat ihre eigene Funktion. In Teilaufgabe a) sollen die Rechenarten mit Integerzahlen angewandt werden. In b) soll das Programm ergänzt werden. Dann soll der Benutzer vor der Rechnung entscheiden dürfen mit welchem datentyp die Funtkion berechnet werden soll (Integer/Double).
Am ende soll ein Testlauf so ausehen (eingaben unterstrichen):
Minirechner: (i)nteger oder (d)ouble ? i
Zahl 1 = ? 96
Rechenart (+ - * /) ? /
Zahl 2 = ? 12
96/12=8
Noch einmal (j/n)? j
Minirechner
i)nteger oder (d)ouble ? d
Zahl1 = ? 4.678
Rechenart (+ - * /) ? *
Zahl2 = ? 2.876
4.678*2.876=13.4539
Noch einmal (j/n) n
Press any key to continue...
Mein Programm Funktioniert mit den Integerwerten. Aber bei Teil b) wo der Benutzer auswählen soll zwischen integer und double und wie die Funktionen richtig überladen werden komm ich nicht weiter....Ich hoffe ihr könnt mir helfen.
Hier mein bisheriger Code:
#include <iostream>
using namespace std;
void addition(int zahl1,int zahl2)
{
int ergebnis;
ergebnis=zahl1+zahl2;
cout<<ergebnis;
}
void subtraktion(int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1-zahl2;
cout<<ergebnis;
}
void multiplikation(int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1*zahl2;
cout<<ergebnis;
}
void division (int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1/zahl2;
cout<<ergebnis;
}
int main()
{
int zahl1, zahl2,i=0;
char auswahl, repeat;
do
{
cout<<"Zahl 1 = ? ";cin>>zahl1;
cout<<"Rechenart ( + - * /) ? "; cin>>auswahl;
cout<<"\n";
switch(auswahl)
{
case '+':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
addition(zahl1,zahl2);
break;
case '-':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
subtraktion(zahl1,zahl2);
break;
case '*':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
multiplikation(zahl1,zahl2);
break;
case '/':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"="<<endl<<endl;
division(zahl1,zahl2);
break;
}
cout<<"Noch einmal? (j/n)"; cin>>repeat;
if(repeat=='j')
i=1;
if(repeat=='n') return 0;
}while(i=1);
return 0;
}
In der Aufgabe wird verlangt, einen Taschenrechner zu erstellen, der die vier Grundrechenarten anwenden kann. In main () sollen zwei Zahlen eingelesen werden, die Rechenart ausgewählt werden und die beiden zahlen über ihre jeweilige Funktion berechnet werden. Jede Rechenart hat ihre eigene Funktion. In Teilaufgabe a) sollen die Rechenarten mit Integerzahlen angewandt werden. In b) soll das Programm ergänzt werden. Dann soll der Benutzer vor der Rechnung entscheiden dürfen mit welchem datentyp die Funtkion berechnet werden soll (Integer/Double).
Am ende soll ein Testlauf so ausehen (eingaben unterstrichen):
Minirechner: (i)nteger oder (d)ouble ? i
Zahl 1 = ? 96
Rechenart (+ - * /) ? /
Zahl 2 = ? 12
96/12=8
Noch einmal (j/n)? j
Minirechner
Zahl1 = ? 4.678
Rechenart (+ - * /) ? *
Zahl2 = ? 2.876
4.678*2.876=13.4539
Noch einmal (j/n) n
Press any key to continue...
Mein Programm Funktioniert mit den Integerwerten. Aber bei Teil b) wo der Benutzer auswählen soll zwischen integer und double und wie die Funktionen richtig überladen werden komm ich nicht weiter....Ich hoffe ihr könnt mir helfen.
Hier mein bisheriger Code:
#include <iostream>
using namespace std;
void addition(int zahl1,int zahl2)
{
int ergebnis;
ergebnis=zahl1+zahl2;
cout<<ergebnis;
}
void subtraktion(int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1-zahl2;
cout<<ergebnis;
}
void multiplikation(int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1*zahl2;
cout<<ergebnis;
}
void division (int zahl1, int zahl2)
{
int ergebnis;
ergebnis=zahl1/zahl2;
cout<<ergebnis;
}
int main()
{
int zahl1, zahl2,i=0;
char auswahl, repeat;
do
{
cout<<"Zahl 1 = ? ";cin>>zahl1;
cout<<"Rechenart ( + - * /) ? "; cin>>auswahl;
cout<<"\n";
switch(auswahl)
{
case '+':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
addition(zahl1,zahl2);
break;
case '-':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
subtraktion(zahl1,zahl2);
break;
case '*':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"=";
multiplikation(zahl1,zahl2);
break;
case '/':
cout<<"Zahl 2 = ? "; cin>>zahl2;
cout<<"\n";
cout<<zahl1<<auswahl<<zahl2<<"="<<endl<<endl;
division(zahl1,zahl2);
break;
}
cout<<"Noch einmal? (j/n)"; cin>>repeat;
if(repeat=='j')
i=1;
if(repeat=='n') return 0;
}while(i=1);
return 0;
}