main
luciacanzian 2023-01-15 00:51:43 +01:00
parent f245f24413
commit 73e2fb1b05
4 changed files with 56 additions and 91 deletions

View File

@ -7,16 +7,15 @@ import java.util.Scanner;
public class User {
// Private Attribute
// Attribute
public double gewicht;
public int koerpergroesse;
public String name;
public double bmi = gewicht / (koerpergroesse * koerpergroesse);
public double ziel;
public static ArrayList<Integer> streckenListe = new ArrayList<>();
public static HashMap<String, User> userListe = new HashMap<>();
//globaler Scanner
// globaler Scanner
public static Scanner sc = new Scanner(System.in);
// Konstruktor
@ -30,71 +29,75 @@ public class User {
// Methoden
// tostring Methode
public String toString() {
return String.format("%s: %.2f kg, %d cm. Dein Ziel ist es, %.2f km im Monat zu fahren.",name, gewicht, koerpergroesse, ziel);
return String.format("%s: %.2f kg, %d cm. Dein Ziel ist es, %.2f km im Monat zu fahren.", name, gewicht,
koerpergroesse, ziel);
}
// Methode
public static void kontoanlegen() {
System.out.print("Schön, dass du da bist! Bitte gebe folgende Angaben ein:\nDein Name, dein aktuelles Gewicht in kg und deine Koerpergroesse in cm.\nDeine Angaben: ");
public static void kontoanlegen() throws Exception {
System.out.print(
"Schön, dass du da bist! Bitte gebe folgende Angaben ein:\nDein Name, dein aktuelles Gewicht in kg und deine Koerpergroesse in cm.\nDeine Angaben: ");
String[] input = sc.nextLine().split(",");
System.out.println("Dein Konto wurde angelegt! Jetzt brauche ich nur noch dein Monatsziel. Wie viel möchtest du in einem Monat radeln? Bitte gebe deine Angaben in km ein!");
System.out.println(
"Dein Konto wurde angelegt! Jetzt brauche ich nur noch dein Monatsziel. Wie viel möchtest du in einem Monat radeln? Bitte gebe deine Angaben in km ein!");
double ziel = Double.parseDouble(sc.nextLine());
User us1 = new User(input[0], Double.parseDouble(input[1]), Integer.parseInt(input[2]), ziel);
userListe.put(input[0], us1);
System.out.println("Prima! Hier nochmal dein Userkonto: " + us1);
System.out.println();
}
//Methode
public static void zeigeKonto() {
System.out.print("Bitte gebe deinen Namen ein: ");
String name = sc.nextLine();
if (userListe.containsKey(name)) {
System.out.println(userListe.get(name));
} else {
System.out.printf("Bis jetzt hat noch keiner mit dem Namen %s einen Konto angelegt!", name);
System.out.println();
PrintWriter userAngaben = new PrintWriter(new FileWriter("src/userAngaben.txt", true), true);
for (int h = 0; h < input.length; h++) {
userAngaben.write(input[h] + "\n");
}
userAngaben.close();
System.out.println();
}
// Methode
public static void eingabeSession() throws Exception {
public static void gewichtändern() throws Exception{
System.out.print("Bitte gebe die Strecke, die du gefahren bist in km und die Sessiondauer in Minuten.\nDeine Angaben: ");
System.out.print("Bitte gebe dazu dein neues Gewicht ein: ");
Scanner sc1 = new Scanner (new File ("src/userAngaben.txt"));
ArrayList <String> angaben = new ArrayList<>();
String antwort = sc.nextLine();
while (sc1.hasNext()) {
angaben.add(sc1.nextLine());
}
angaben.set(2, antwort);
FileWriter reader = new FileWriter ("src/userAngaben.txt");
for (int i = 0;i<angaben.size();i++) {
reader.write(angaben.get(i)+"\n");
}
System.out.println("Dein Gewicht wurde geändert!");
System.out.println();
reader.close();
sc1.close();
}
// Methode
public static void eingabeTraining() throws Exception {
System.out.print(
"Bitte gebe die Strecke, die du gefahren bist in km und die Trainingsdauer in Minuten.\nDeine Angaben: ");
String[] input = sc.nextLine().split(",");
double strecke = Double.parseDouble(input[0]);
double geschwindigkeit = strecke/ (Double.parseDouble(input[1])/60);
System.out.printf("Deine durschnittliche Geschwindigkeit war: %.2f km/h\n",geschwindigkeit);
if (geschwindigkeit > 35) {
System.out.println("Gut gemacht!");
} else if (geschwindigkeit > 30) {
System.out.println("Weiter so! Nächstes Mal schaffst du sicher 35 km/h!");
} else if (geschwindigkeit > 25) {
System.out.println("Muskelkater vom letzten Mal gehabt? Du schaffst das!");
} else {
System.out.println("Schade! Aber nicht aufgeben!");
}
double geschwindigkeit = strecke / (Double.parseDouble(input[1]) / 60);
System.out.printf("Deine durschnittliche Geschwindigkeit war: %.2f km/h.\n", geschwindigkeit);
PrintWriter streckeimMonat = new PrintWriter(new FileWriter("src/monatsliste.txt", true), true);
streckeimMonat.write(input[0]+"\n");
streckeimMonat.write(input[0] + "\n");
streckeimMonat.close();
User.ermittleLaengsteStrecke();
System.out.println();
}
// Methode
public static void fügeindieArrayList() throws Exception {
Scanner sc = new Scanner(new File("src/monatsliste.txt"));
while (sc.hasNext()) {
try {
streckenListe.add(Integer.parseInt(sc.nextLine()));
streckenListe.add(Integer.parseInt(sc.nextLine()));
} catch (NumberFormatException e) {
continue;
}
@ -103,10 +106,10 @@ public class User {
// Methode
public static void ermittleLaengsteStrecke() throws Exception {
User.fügeindieArrayList();
double laengsteStrecke = 0;
for (int i = 0; i <streckenListe.size(); i++) {
for (int i = 0; i < streckenListe.size(); i++) {
if (streckenListe.get(i) > laengsteStrecke) {
laengsteStrecke = streckenListe.get(i);
}
@ -118,50 +121,13 @@ public class User {
// Methode
public static void wievielbiszumZiel() throws Exception {
System.out.println("Vom welchem User möchtest du es haben?");
System.out.print("Vom welchem User möchtest du es haben? ");
String name = sc.nextLine();
fügeindieArrayList();
for (int h = 1; h < streckenListe.size(); h++) {
try {
userListe.get(name).ziel -= streckenListe.get(h);
System.out.printf("Du musst noch %.2f km fahren!",userListe.get(name).ziel);
} catch (NullPointerException e) {
System.out.printf("Bis jetzt gibt es noch keinen Konto für %s!",name);
System.out.println();
break;
}
}
System.out.printf("Du musst noch %.2f km fahren!", userListe.get(name).ziel);
System.out.println();
}
/*// Methode
public double berechneKalorienverbrauch(double strecke, double gewicht) {
double kalorienverbrauch = strecke * gewicht * 0.9;
return kalorienverbrauch;
}
// Methode
/*
* public void angabenändern() {
* Scanner sc = new Scanner (System.in);
* System.out.println("Welche Angaben möchtest du verändern? Name, Gewicht, Koerpergroesse oder Ziel?");
* String antwort = sc.nextLine();
* if (antwort.equalsIgnoreCase("name")) {
*
* }
* }
*
* // Methode brauche ich nicht mehr
public static void speichereStrecke() throws IOException {
String strecke = sc.nextLine();
//FileWriter streckeimMonat = new FileWriter("src/monatsliste.txt", true);
//File file = new File("src/monatsliste.txt");
//BufferedWriter streckeimMonat = new BufferedWriter(new FileWriter(file, true));
//FileWriter streckeimMonat = new FileWriter ("src/monatsliste.txt");
}
*/
}

View File

@ -1,3 +1 @@
24
24

View File

@ -0,0 +1 @@

View File

@ -4,16 +4,16 @@ public class userinterface {
while (true) {
System.out.println("Willkommen!\nWähle aus diesen Modulen: Konto anlegen, Konto zeigen, Eingabe Session, Ziel Monat, Programm beenden");
System.out.println("Willkommen!\nWähle aus diesen Modulen: Konto anlegen, Gewicht ändern, Eingabe Training, Ziel Monat, Programm beenden");
String [] antwort = User.sc.nextLine().split(" ");
if (antwort[1].equalsIgnoreCase("anlegen")){
User.kontoanlegen();
} else if (antwort[1].equalsIgnoreCase("zeigen")) {
User.zeigeKonto();
} else if (antwort[0].equalsIgnoreCase("Eingabe")) {
User.eingabeSession();
} else if (antwort[0].equalsIgnoreCase("Ziel")) {
} else if (antwort[0].equalsIgnoreCase("gewicht")) {
User.gewichtändern();;
} else if (antwort[0].equalsIgnoreCase("eingabe")) {
User.eingabeTraining();
} else if (antwort[0].equalsIgnoreCase("ziel")) {
User.wievielbiszumZiel();
} else if (antwort[1].equalsIgnoreCase("beenden")) {
System.out.println("Bis zum nächsten Mal!");