/*
MathematiX by Atomique 2011
Programm zur Berechnung verschiedener mathematischer Problemstellungen
*/
// Einbinden der Laufzeitbibliotheken
#include <stdio.h>
#include <stdlib.h>
// Deklaration von Variablen und Konstanten
#define Version 1.00
int main();
void menue_01();
void programmende();
void calculate();
void addition();
void subtraktion();
void multiplikation();
void division();
void average_input();
float average();
// Quellcode / Funktionen etc
int main()
{
int me_in=0;
do
{
menue_01();
scanf("%d",&me_in);
fflush(stdin);
switch(me_in)
{
case 1: calculate(); //Hier werden noch Funktionen etc eingefügt wenn ich sie geschrieben habe
break;
case 2: printf("2\n");
break;
case 3: printf("3\n");
break;
case 9: printf("9\n");
break;
case 0: programmende();
break;
default: printf("Falscheingabe\n\n"); // Wenn Case 1-9 (Es soll noch mehr als 1,2,3,9,0 geben) / 0 nicht auftreten
// Dann "Falscheingabe"
}
}
while(me_in=!0); // Wenn 0 eingegeben --> Schleife verlassen und weiter in MAIN()
return 0;
}
void menue_01() // Diese Funktion dient zur grafischen Ausgabe des Menüs in der Konsole
{
printf("Willkommen in MathematiX Version %.2lf, was wollen Sie tun?\n", Version);
printf("<1> Rechnen (Normaler Taschenrechner)\n");
printf("<2> Flaechenberechnung einer geom. Figur\n");
printf("<3> Volumenbrechnung eines Objektes\n");
printf("<9> About MathematiX Version %.2lf.\n", Version);
printf("<0> Programm beenden. \n[Randnotiz: Es folgen weitere Funktionen ;) ]\n");
}
void menue_calc()
{
printf("Calculator:\n\n");
printf("Welche Rechenart? Zahl oder Operator eingeben:\n");
printf("< 1 / +\t> Addition\n");
printf("< 2 / -\t> Subtraktion\n");
printf("< 3 / *\t> Multiplikation\n");
printf("< 4 / /\t> Division\n");
printf("< 5 / #\t> Durchschnitt\n");
}
void programmende() // Funktion soll Programmende mit Bestätigung ausführen. Fehlereingabe mit inbegriffen.
{
char input;
printf("Programm wird beendet. Fortfahren mit < J >, Abbrechen mit < N >.\n");
do
{
input=getchar();
}
while(getchar()!='\n'); // Eliminierung des Return wertes '\n'
fflush(stdin);
if(input == 'j','n') // wenn input 'j' oder 'n' entspricht dann Kontrolle ob 'j'
{
if(input=='j') // wenn input == 'j' dann Programmende und Ausgabe
{
printf("Programm beendet. Vielen Dank f\x81r das benutzen von MathematiX Version %.2lf\n", Version);
exit(0); // Programm beenden
}
else // ansonsten Programm fortsetzen und Ausgabe
{
printf("Programm wird fortgesetzt.\n\n");
}
}
else // wenn nicht 'j' / 'n' dann Falscheingabe und Aufruf der Funktion programmende.
{
printf("Falscheingabe, Bitte wiederholen:\n");
programmende();
}
}
void calculate()
{
char input_calc;
do
{
menue_calc();
do
{
input_calc=getchar();
}
while(getchar()!='\n');
switch(input_calc)
{
case '+': // case-auswahl durch fall thru --> bsp.: wenn + oder 1 eingegeben wird, addition();
case '1': addition();
break;
case '-':
case '2': subtraktion();
break;
case '*':
case '3': multiplikation();
break;
case '/':
case '4': division();
break;
case '#':
case '5': average_input();
break;
case '0': printf("Calculator beendet.\n");
break;
default: printf("Falscheingabe\n");
}
}
while(input_calc!='0');
}
void addition()
{
int ad_ergebnis;
int ad_zahl1;
int ad_zahl2;
printf("Addition:\n");
printf("Bitte Zahl 1 eingeben:\n");
scanf("%d", &ad_zahl1);
printf("Bitte Zahl 2 eingeben:\n");
scanf("%d", &ad_zahl2);
ad_ergebnis=ad_zahl1+ad_zahl2;
printf("Ihr Ergebnis lautet: %d\n\n", ad_ergebnis);
}
void subtraktion()
{
int su_ergebnis;
int su_zahl1;
int su_zahl2;
printf("Subtraktion:\n");
printf("Bitte Zahl 1 eingeben:\n");
scanf("%d", &su_zahl1);
printf("Bitte Zahl 2 eingeben:\n");
scanf("%d", &su_zahl2);
su_ergebnis=su_zahl1-su_zahl2;
printf("Ihr Ergebnis lautet: %d\n\n", su_ergebnis);
}
void multiplikation()
{
int mu_ergebnis;
int mu_zahl1;
int mu_zahl2;
printf("Multiplikation:\n");
printf("Bitte Zahl 1 eingeben:\n");
scanf("%d", &mu_zahl1);
printf("Bitte Zahl 2 eingeben:\n");
scanf("%d", &mu_zahl2);
mu_ergebnis=mu_zahl1-mu_zahl2;
printf("Ihr Ergebnis lautet: %d\n\n", mu_ergebnis);
}
void division()
{
int di_ergebnis;
int di_zahl1;
int di_zahl2;
printf("Division:\n");
printf("Bitte Zahl 1 eingeben:\n");
scanf("%d", &di_zahl1);
printf("Bitte Zahl 2 eingeben:\n");
scanf("%d", &di_zahl2);
di_ergebnis=di_zahl1-di_zahl2;
printf("Ihr Ergebnis lautet: %d\n\n", di_ergebnis);
}
void average_input() // Funktion soll Durchschnitt berechnen (Im Array)
{
int i=0;
int k=0; // Variable um Wert bei Ausgabe richtig anzugeben. Dient eig. nur zur Optik nicht zur Funktionalität.
int elemente=0;
int avg[50];
float avg_ret=0; // In diese Variable kommt der Rückgabewert der Funktion average()
printf("Bitte geben Sie die Anzahl der Elemente ein,\n aus denen Sie den Durchschnitt errechnen wollen (Maximal 50 Werte zul\x84ssig)\n");
scanf("%d", &i);
elemente=i; // Endbedingung für For-Schleife / Elemente im Array.
if(i<=50)
{
for(i=0; i<elemente; i++)
{
k=i+1;
printf("Bitte %d. Wert eingeben:", k); // Var k: Richtige Ausgabe des "Wertes" in der For-Schleife
scanf("%d", &avg[i]);
}
avg_ret=average(avg, 50);
printf("Durchschnitt:%.2f \n", avg_ret);
}
else
{
printf("Bitte kleineren Wert eingeben!");
}
}
float average(int avg[], int elemente) // Funktion gemacht um Wertübergabe von Funktionen zu üben.
{
int i;
int gesamt=0;
for(i=0; i<elemente; i++)
{
gesamt=gesamt+avg[i];
}
return((float)gesamt / elemente);
}