HILFE!! komm bei Taschenrechner in C nicht weiter...
-
sersn
also ich soll nen kleines taschenrechnerprogramm schreiben....das hab ich auch versucht nur irgendwie wollen die funktionen nicht hinhauen...bitte um Hilfe !!!
/* Aufgabenstellung: Programm das die einfachen Funktionen eines Taschenrechners erfüllt.
Grundrechenarten +, -, *, /, im double Format.
Befehlszeichen sollten sein: c - für Löschen (Grundzustand)
e od. q - Beenden
s - letzte Werte in Zwischenspeicher
r - Zwischenspeicher wird verw. al Opperand
= - Opperation ausführen und Erg. ausgeben */#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>// Globale Initialisierungen für Eingabemaske bzw. Rechenoperationen
int opzahl1 = 0;
int opzahl2 = 0;
int erg;
char calcop;
// Globale Initialisierungen für Befehlszeichen
char comm;int main(int argc, char **argv, char **envp)
{
// Startbildschirm
printf("Wilkommen bei Ihrem persoenlichen Taschenrechnerprogramm !\n");
printf("Funktionen des Taschenrechners:\n");
printf("c/C - Neustart bzw. Ergebnisregister loeschen\n");
printf("q/Q - Taschenrechner beenden\n");
printf("s/S - Ergebnis der letzten Opperation in Speicher schreiben\n");
printf("r/R - Wert aus dem Zwischenspeicher holen\n\n");char opbuffer[255];
// Inputmenue (Eingabemaske)
// Operand 01:
printf("Bitte geben Sie den ersten Operanden ein: \n");
scanf("%lf", &opzahl1);// Operand 02:
printf("Bitte geben Sie den zweiten Operanden ein: \n");
scanf("%lf", &opzahl2);// Operationen: (+, -, *, /)
printf("Bitte geben Sie die Art der gewuenschten Operation ein: \n");
scanf("%s", opbuffer);calcop = opbuffer[0];
// Endanweisung für Taschenrechner (z.B. Quit, Save, clear usw.)
char combuffer[255];printf("Bitte geben Sie die naechste gewuenschte Funktion an\n");
printf("c/C - Neustart bzw. Ergebnisregister loeschen\n");
printf("q/Q - Taschenrechner beenden\n");
printf("s/S - Ergebnis der letzten Opperation in Speicher schreiben\n\n");
scanf("%s", &combuffer);comm = combuffer[0];
system("PAUSE");
}// Die einzelnen Rechenoperationen (+,-,*,/,=)
int operations()
{
switch(calcop)
{
// Addition:
case '+':
erg = opzahl1 + opzahl2;
printf("Ergebnis ist: %d \n\n", erg);
break;// Subtraktion:
case '-':
erg = opzahl1 - opzahl2;
printf("Ergebnis ist: %d\n\n", erg);
break;// Multiplikation:
case '*':
erg = opzahl1 * opzahl2;
printf("Ergebnis ist: %d\n\n", erg);
break;// Division:
case '/':
erg = opzahl1 / opzahl2;
printf("Ergebnis ist: %d\n\n", erg);
break;// Alle anderen Fälle:
default:
printf("Fehlerhafte Eingabe !\n\n");
break;
}
}// Zwischenspeicherfunktion
double cache()
{
// Hier entsteht die Funktion für den Zwischenspeicher.
}// Befehlszeichen gehen über die Eingabe des Operanden bzw. des Operators hinaus.
double commands()
{
switch(comm)
{
// Clear:
case 'C':
case 'c':
printf("Ergebnisregister wird auf null gesetzt\n\n");
break;// Quit:
case 'Q':
case 'q':
printf("Taschenrechner wird beendet\n\n");
getch();return 0;
break;// Recall from Cache:
case 'R':
case 'r':
printf("Ergebnis wird aus dem Zwischenspeicher geladen\n\n");
break;// Save to Cache:
case 'S':
case 's':
printf("Ergebnis wird in den Zwischenspeicher geschrieben\n\n");
break;// Alle anderen Zeichen:
default:
printf("Fehlerhafte Eingabe !\n\n");
break;
}
}
-
1. Steht da nicht double? Wieso nimmst du dann für alles int?
2. Wo rufst du die Funktionen überhaupt auf?Im Code ist soweit alles koorekt, falls du die oben genannten Sachen absichtlich gemacht hast.
Gruß!
Unzi
-
Warum so kompliziert?
Kann dir nur C++ Code als anregung geben:/*Author: Maximilian Fink Date: 22.11.03 23:52 /* TODO (#1#): While Schleife verbessern(dass der Neustart geht) */ /*Description: */ #include <conio.h> #include <iostream> using namespace std; double Ergebniss=0; int Rechner(int Zahl1,char Rechenzeichen,int Zahl2); int main(){ int Zahl1, Zahl2; char Rechenzeichen; char Abbruchzeichen; bool Abbruchbedingung; do{ cin >> Zahl1 >> Rechenzeichen >> Zahl2; Rechner(Zahl1,Rechenzeichen,Zahl2); cout << Ergebniss << "\n"; cout << "Zum beenden y druecken zum neustart c\n"; cin >> Abbruchzeichen; if(Abbruchzeichen=='y'){ Abbruchbedingung=false; } else if(Abbruchzeichen=='c'){ Abbruchbedingung=true; } else{ Abbruchbedingung=false; } }while(Abbruchbedingung==true); return 0; }; int Rechner(int Zahl1,char Rechenzeichen,int Zahl2){ if(Rechenzeichen=='+'){ Ergebniss=Zahl1+Zahl2;} else if(Rechenzeichen=='-'){ Ergebniss=Zahl1-Zahl2;} else if(Rechenzeichen=='*'){ Ergebniss=Zahl1*Zahl2;} else if(Rechenzeichen=='/'){ Ergebniss=Zahl1/Zahl2;} else if(Rechenzeichen=='%'){ Ergebniss=Zahl1%Zahl2; } else{ cout << "Sie haben kein akzeptiertes Rechenzeichen eingegeben!"; } return 0; }
cu max
-
Hallo!
Habe mal einen "Taschenrechner" mit einigen Funktionen erstellt. Ich habe ihn "habicht"
genannt. Lad ihn dir von meiner Homepage herunter: http://people.freenet.de/resurrection/habicht.htm
Vielleicht hilft es dir weiter.Gruß
Michael
-
Die von Ihnen angeforderte Seite wurde nicht gefunden...
Sie wurde entweder entfernt, umbenannt, oder sie ist vorübergehend nicht erreichbar.