#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include "Funktionen.h"
void Addition(struct Variablen &Var)
{
Var.Ergebnis = Var.a + Var.b;
}
void Subtraktion(struct Variablen &Var)
{
Var.Ergebnis = Var.a - Var.b;
}
void Multiplikation(struct Variablen &Var)
{
Var.Ergebnis = Var.a * Var.b;
}
void Division(struct Variablen &Var)
{
Var.Ergebnis = Var.a / Var.b;
}
void Flaeche(struct Variablen &Var,int &Typ)
{
//Flaechenberechnung Kreis
if(Typ==1)
{
const double pi = 3.141592;
Var.Ergebnis = pi * ( ( (Var.radius*2)*(Var.radius*2) ) /4);
}
//Flaechenberechnung Rechteck
if(Typ==2)
{
Multiplikation(Var);
}
//Flaechenberechnung Dreiecke
if(Typ==3)
{
Var.Ergebnis = (Var.a * Var.b) / 2;
}
}
void Brueche (struct Variablen &Var,int &Typ)
{
switch(Typ)
{
case 1:
//Addition
Var.Ergebnis = (Var.a * Var.d) + (Var.b * Var.c);
Var.Ergebnis2 = Var.b * Var.d;
break;
case 2:
//Subtraktion
Var.Ergebnis = (Var.a * Var.d) - (Var.c * Var.d);
Var.Ergebnis2 = Var.b * Var.d;
break;
case 3:
//Multiplikation
Var.Ergebnis = Var.a * Var.c;
Var.Ergebnis2 = Var.b * Var.d;
break;
case 4:
//Division
Var.Ergebnis = Var.a * Var.d;
Var.Ergebnis2 = Var.b * Var.c;
break;
default:
printf("Bitte wählen sie eine gültige Option aus.");
break;
}
}
void Einlesen (struct Variablen &Var,int &Typ)
{
switch(Typ)
{
//Einlesen für Addition,Subtraktion,Multiplikation,Division
case 0:
system("cls");
printf("|---------------------------------------------|\n");
printf("|Bitte geben Sie Wert 1 ein: |\n");
printf("->");
scanf("%lf", &Var.a);
printf("|Bitte geben Sie Wert 2 ein: |\n");
printf("->");
scanf("%lf", &Var.b);
printf("|---------------------------------------------|\n");
break;
//Einlesen für Kreisflaeche
case 1:
system("cls");
printf("|---------------------------------------------|\n");
printf("|Bitte geben Sie den Radius ein: |\n");
printf("->");
scanf("%lf", &Var.radius);
printf("|---------------------------------------------|\n");
break;
//Einlesen für Rechtecksflaeche
case 2:
system("cls");
printf("|---------------------------------------------|\n");
printf("|Bitte geben Sie die Laenge von A an: |\n");
printf("->");
scanf("%lf", &Var.a);
printf("|Bitte geben Sie die Laenge von B an: |\n");
printf("->");
scanf("%lf", &Var.b);
printf("|---------------------------------------------|\n");
break;
//Einlesen für Dreiecksflaeche
case 3:
system("cls");
printf("|---------------------------------------------|\n");
printf("|Bitte geben sie die Laenge der |\n");
printf("|Hypothenuse C an: |\n");
printf("->");
scanf("%lf", &Var.a);
printf("|Bitte geben sie die Laenge der |\n");
printf("|der Hypothenusenhoehe C-h an: |\n");
printf("->");
scanf("%lf", &Var.b);
printf("|---------------------------------------------|\n");
break;
//Einlesen für Flaeche-Allgemein
//------------------------------
case 4:
system("cls");
//Auswahl welche Teil-Funktio mittels If-Verzweigung in der
//Flaeche-Funktion benutzt werden soll Auswahl erfolgt über die Typ-Variable
printf("|---------------------------------------------|\n");
printf("|Welche Flaeche moechten Sie berechnen? |\n");
printf("|(1) Kreisflaeche |\n");
printf("|(2) Rechtecksflaeche |\n");
printf("|(3) Dreiecksflaeche |\n");
printf("|->");
//Einlesen der Typ Variable
scanf("%d", &Typ);
printf("|---------------------------------------------|\n");
//Abfangen der Fehleingabe mit 0
//Fehlerfall: falls 0 einegeben wird, würde anstatt der radius (Fall 1)
//die eingabe von 2 Werten erfolgen
switch(Typ)
{
case 1:
Einlesen(Var,Typ);
Flaeche(Var,Typ);
Ausgabe(Var);
break;
case 2:
Einlesen(Var,Typ);
Flaeche(Var,Typ);
Ausgabe(Var);
break;
case 3:
Einlesen(Var,Typ);
Flaeche(Var,Typ);
Ausgabe(Var);
break;
default:
printf("Ihre Eingabe war nicht korrekt, bitte waehlen Sie erneut aus.");
getch();
system("cls");
break;
}
break;
//Einlesen für Brueche
case 5:
printf("|---------------------------------------------|\n");
printf("|Welche Bruchfunktionen moechten Sie |\n");
printf("|benutzen? |\n");
printf("|(1) Addition |\n");
printf("|(2) Subtraktion |\n");
printf("|(3) Multiplikation |\n");
printf("|(4) Division |\n");
printf("|---------------------------------------------|\n");
printf("-> ");
scanf("%d", &Typ);
printf("|---------------------------------------------|\n");
printf("|Bitte geben sie den ersten Bruch an: |\n");
printf("-> ");
scanf("%lf", &Var.a);
printf("|-----------\n");
printf("-> ");
scanf("%lf", &Var.b);
printf("|Bitte geben sie den zweiten Bruch an: |\n");
printf("-> ");
scanf("%lf", &Var.c);
printf("|-----------\n");
printf("-> ");
scanf("%lf", &Var.d);
printf("|---------------------------------------------|\n");
}
}
void Ausgabe (struct Variablen &Var,int &Typ)
{
switch(Typ)
{
case 1:
printf("|---------------------------------------------|\n");
printf("|Das Ergebnis lautet: %.3lf\n", Var.Ergebnis);
printf("|Bitte eine Taste zum fortfahren druecken: |\n");
printf("|---------------------------------------------|\n");
getch();
system("cls");
break;
case 2:
printf("|---------------------------------------------|\n");
printf("|Das Ergebniss lautet: |\n");
printf("|%.3lf \n",Var.Ergebnis);
printf("|------- |\n");
printf("|%.3lf \n",Var.Ergebnis2);
printf("|---------------------------------------------|\n");
getch();
system("cls");
break;
}
}