commit 5c08b9ced5ece33946d0a33987bd933855448804 Author: PC Date: Sun Jan 7 12:28:00 2024 +0100 Erster Commit diff --git a/Semesteraufgabe/.classpath b/Semesteraufgabe/.classpath new file mode 100644 index 0000000..c8b8bcc --- /dev/null +++ b/Semesteraufgabe/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Semesteraufgabe/.gitignore b/Semesteraufgabe/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Semesteraufgabe/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Semesteraufgabe/.project b/Semesteraufgabe/.project new file mode 100644 index 0000000..f265206 --- /dev/null +++ b/Semesteraufgabe/.project @@ -0,0 +1,17 @@ + + + Semesteraufgabe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Semesteraufgabe/.settings/org.eclipse.core.resources.prefs b/Semesteraufgabe/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4824b80 --- /dev/null +++ b/Semesteraufgabe/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Semesteraufgabe/src/SemesteraufgabePR1.java b/Semesteraufgabe/src/SemesteraufgabePR1.java new file mode 100644 index 0000000..f657481 --- /dev/null +++ b/Semesteraufgabe/src/SemesteraufgabePR1.java @@ -0,0 +1,292 @@ +import java.util.Date; +import java.util.Scanner; + +public class SemesteraufgabePR1 { + + public static double max(int mode) { + + if (mode == 2) + mode = 1; + + if (mode != 4) + System.out.println( + "HINWEIS: Dieser Maximalkraft-Rechner funktioniert nur, \n wenn Sie mit sauberer Ausführung bis zum Muskelversagen trainieren."); + double gewicht = 0; + Scanner input = new Scanner(System.in); + boolean loopmax = true; + while (loopmax) { + if (mode == 1) { + System.out.println("Bitte geben Sie Ihr Übungsgewicht an:"); + } else if (mode == 3) { + System.out.println("Bitte geben Sie Ihr altes Übungsgewicht an"); + } else { + System.out.println("Bitte geben Sie Ihr neues Übungsgewicht an"); + } + String eingabe = input.nextLine(); + try { + gewicht = Double.parseDouble(eingabe); + loopmax = false; + } catch (Exception e) { + System.out.println("Gewicht nicht erkannt"); + } + } + int wdh = 0; + boolean loopmax2 = true; + while (loopmax2) { + if (mode == 1) { + System.out.println("Bitte geben Sie Ihre Wiederholungsanzahl an:"); + } else if (mode == 3) { + System.out.println("Bitte geben Sie Ihre alte Wiederholungszahl an"); + } else { + System.out.println("Bitte geben Sie Ihre neue Wiederholungszahl an"); + } + String eingabe = input.nextLine(); + try { + wdh = Integer.parseInt(eingabe); + loopmax2 = false; + } catch (Exception e) { + System.out.println("Wiederholungsanzahl nicht erkannt"); + } + } + + double[] prozente = { 100, 95, 92.5, 90, 87.5, 85, 82.5, 80, 77.5, 75, 72.5, 70, 66.6, 63.3, 60, 59, 58, 57, 56, + 55, 54, 53, 52, 51, 50, 48, 46, 44, 42, 40 }; + double prozent = 0; + try { + prozent = prozente[wdh - 1]; + } catch (Exception e) { + System.out.println(" "); + } + + if (prozent == 0) { + return 0; + } else { + return ((gewicht * 100) / prozent); + } + + } + + public static String geschlecht() { + Scanner input = new Scanner(System.in); + System.out.println("Bitte geben Sie Ihr Geschlecht an. \n Männlich: m \n Weiblich: w"); + return input.nextLine(); + } + + public static int uebung() { + Scanner input = new Scanner(System.in); + System.out.println( + "Um welche Übung handelt es sich? \n -Bankdrücken(1) \n -Kniebeuge(2) \n -Kreuzheben(3) \n -Kurzhantelschrägbankdrücken(4) "); + int uebung; + try { + uebung = input.nextInt(); + } catch (Exception e) { + System.out.println(" "); + uebung = 0; + } + String uebungname = ""; + if (uebung == 1) { + uebungname = "Bankdrücken \n"; + } else if (uebung == 2) { + uebungname = "Kniebeuge \n"; + } else if (uebung == 3) { + uebungname = "Kreuzheben \n"; + } else if (uebung == 4) { + uebungname = "Schrägbankdrücken(Kurzhantel) \n"; + } else { + System.out.println("Fehler"); + } + if (uebung != 0 && uebung < 5) + System.out.printf("--> " + uebungname + "\n"); + return uebung; + } + + public static int alter() { + Scanner input = new Scanner(System.in); + System.out.println("Bitte geben Sie Ihr Alter an (mindestens 16, max 40)"); + int alter = input.nextInt(); + return alter; + } + + public static double durchschnitt(int uebung, int alter, String geschlecht) { + // Quelle: strengthlevel.de + if (geschlecht.equals("m")) { + double[] schnitt1 = { 60, 62, 65, 67, 69, 70, 71, 72, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 71, 71, 70 }; + double[] schnitt2 = { 83, 85, 87, 90, 92, 93, 94, 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 95, 95, 94 }; + double[] schnitt3 = { 95, 98, 105, 109, 114, 117, 119, 120, 120, 121, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 121, 121, 120, 119 }; + double[] schnitt4 = { 19, 20, 22, 24, 27, 27, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 28, 28, 28 }; + if (uebung == 1) { + return schnitt1[alter - 16]; + } else if (uebung == 2) { + return schnitt2[alter - 16]; + } else if (uebung == 3) { + return schnitt3[alter - 16]; + } else if (uebung == 4) { + return schnitt4[alter - 16]; + } else + return 0; + } else if (geschlecht.equals("w")) { + double[] schnitt1 = { 27, 28, 29, 30, 31, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 32, 32, 31 }; + double[] schnitt2 = { 42, 43, 44, 46, 48, 49, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 50, 50, 50 }; + double[] schnitt3 = { 52, 54, 56, 57, 58, 59, 60, 61, 61, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 62, 62, 61 }; + double[] schnitt4 = { 12, 12, 13, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 15, 15, 14 }; + if (uebung == 1) { + return schnitt1[alter - 16]; + } else if (uebung == 2) { + return schnitt2[alter - 16]; + } else if (uebung == 3) { + return schnitt3[alter - 16]; + } else if (uebung == 4) { + return schnitt4[alter - 16]; + } else + return 0; + } else { + return 0; + } + } + + public static double unterschiedstaerker(double max, double durchschnitt) { + return (max / durchschnitt) * 100 - 100; + } + + public static double unterschiedschwaecher(double max, double durchschnitt) { + return 100 - ((max / durchschnitt) * 100); + } + + public static void main(String[] args) { + + long starttime = new Date().getTime(); + Scanner input = new Scanner(System.in); + boolean loop = true; + while (loop) { + + System.out.println("Was möchten Sie tun?"); + System.out.println("- Maximalkraft berechnen (Tippen Sie 1)"); + System.out.println("- Sich mit anderen Vergleichen (Tippen Sie 2)"); + System.out.println("- Sich mit sich selbst vergleichen (Tippen Sie 3)"); + System.out.println("- Programm beenden (Tippen Sie 4)"); + + int modus; + try { + modus = input.nextInt(); + } catch (Exception e) { + System.out.println("Eingabe nicht erkannt."); + modus = 5; + } + + if (modus == 1) { + double max = max(modus); + if (max != 0) { + System.out.printf("Ihr Maximalgewicht auf eine Wiederholung beträgt %.2f Kilogramm \n \n", max); + } else { + System.out.println("Fehler: Zu viele Wiederholungen! \n"); + } + } else if (modus == 2) { + boolean bol = true; + String geschlecht = " "; + while (bol) { + geschlecht = geschlecht().toLowerCase(); + if (geschlecht.equals("w")) { + bol = false; + } else if (geschlecht.equals("m")) { + bol = false; + } else { + bol = true; + } + } + int uebung = 5; + while (uebung > 4) { + uebung = uebung(); + } + if (uebung != 0) { + double max = max(modus); + if (max != 0) { + int alter = alter(); + double durchschnitt = durchschnitt(uebung, alter, geschlecht); + double unterschied = 0; + if (max > durchschnitt) { + unterschied = unterschiedstaerker(max, durchschnitt); + } else if (max < durchschnitt) { + unterschied = unterschiedschwaecher(max, durchschnitt); + } else { + unterschied = 0; + } + String uebungname = ""; + if (uebung == 1) { + uebungname = "Bankdrücken"; + } else if (uebung == 2) { + uebungname = "Kniebeuge"; + } else if (uebung == 3) { + uebungname = "Kreuzheben"; + } else { + uebungname = "Schrägbankdrücken(Kurzhantel)"; + } + if (max > durchschnitt) { + System.out.printf("In der Übung " + uebungname + + " sind Sie %.2f Prozent stärker als der Durchschnitt in Ihrem Alter. \n \n", + unterschied); + } else if (max < durchschnitt) { + System.out.printf("In der Übung " + uebungname + + " sind Sie %.2f Prozent schwächer als der Durchschnitt in Ihrem Alter. \n \n", + unterschied); + } else { + System.out.println("In der Übung " + uebungname + + " sind Sie genau so stark wie der Durchschnitt in Ihrem Alter \n \n"); + } + } else { + System.out.println("Fehler: Zu viele Wiederholungen! \n"); + } + } + } else if (modus == 3) { + double maxalt = max(modus); + if (maxalt == 0) { + System.out.println(" "); + } else { + modus++; + double maxneu = max(modus); + + if (maxalt == 0) { + System.out.println(" "); + } else if (maxneu == 0) { + System.out.println(" "); + } else { + + if (maxalt < maxneu) { + double differenz = ((maxneu / maxalt) * 100) - 100; + System.out.printf("Sie haben sich um %.2f Prozent gesteigert. Herzlichen Glückwusch! \n", + differenz); + } else if (maxalt > maxneu) { + double differenz = 100 - ((maxneu / maxalt) * 100); + System.out.printf("Sie haben sich um %.2f Prozent verschlechtert. Mein Beileid. \n", + differenz); + } else { + System.out.println( + "Sie haben sich leider nicht gesteigert, aber auch nicht verschlechtert. \n"); + } + } + } + } else if (modus == 4) { + System.out.println("Das Programm wurde erfolgreich beendet! \n Ich wünsche Ihnen einen schönen Tag."); + + loop = false; + + long endtime = new Date().getTime(); + long sekunden = (endtime - starttime) / 1000; + System.out.println(" Das Programm war " + (int) (sekunden / 60) + " min und " + (int) (sekunden % 60) + + " sek aktiv"); + } else { + System.out.println("Versuchen Sie es erneut \n"); + } + + } + input.close(); + } + +}