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 { public class User {
// Private Attribute // Attribute
public double gewicht; public double gewicht;
public int koerpergroesse; public int koerpergroesse;
public String name; public String name;
public double bmi = gewicht / (koerpergroesse * koerpergroesse);
public double ziel; public double ziel;
public static ArrayList<Integer> streckenListe = new ArrayList<>(); public static ArrayList<Integer> streckenListe = new ArrayList<>();
public static HashMap<String, User> userListe = new HashMap<>(); public static HashMap<String, User> userListe = new HashMap<>();
//globaler Scanner // globaler Scanner
public static Scanner sc = new Scanner(System.in); public static Scanner sc = new Scanner(System.in);
// Konstruktor // Konstruktor
@ -30,71 +29,75 @@ public class User {
// Methoden // Methoden
// tostring Methode // tostring Methode
public String toString() { 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 // Methode
public static void kontoanlegen() { 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: "); 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(","); 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()); double ziel = Double.parseDouble(sc.nextLine());
User us1 = new User(input[0], Double.parseDouble(input[1]), Integer.parseInt(input[2]), ziel); User us1 = new User(input[0], Double.parseDouble(input[1]), Integer.parseInt(input[2]), ziel);
userListe.put(input[0], us1); userListe.put(input[0], us1);
System.out.println("Prima! Hier nochmal dein Userkonto: " + us1); System.out.println("Prima! Hier nochmal dein Userkonto: " + us1);
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");
//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();
} }
userAngaben.close();
System.out.println(); System.out.println();
} }
// Methode // 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(","); String[] input = sc.nextLine().split(",");
double strecke = Double.parseDouble(input[0]); double strecke = Double.parseDouble(input[0]);
double geschwindigkeit = strecke/ (Double.parseDouble(input[1])/60); double geschwindigkeit = strecke / (Double.parseDouble(input[1]) / 60);
System.out.printf("Deine durschnittliche Geschwindigkeit war: %.2f km/h\n",geschwindigkeit); 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!");
}
PrintWriter streckeimMonat = new PrintWriter(new FileWriter("src/monatsliste.txt", true), true); PrintWriter streckeimMonat = new PrintWriter(new FileWriter("src/monatsliste.txt", true), true);
streckeimMonat.write(input[0]+"\n"); streckeimMonat.write(input[0] + "\n");
streckeimMonat.close(); streckeimMonat.close();
User.ermittleLaengsteStrecke(); User.ermittleLaengsteStrecke();
System.out.println(); System.out.println();
} }
// Methode // Methode
public static void fügeindieArrayList() throws Exception { public static void fügeindieArrayList() throws Exception {
Scanner sc = new Scanner(new File("src/monatsliste.txt")); Scanner sc = new Scanner(new File("src/monatsliste.txt"));
while (sc.hasNext()) { while (sc.hasNext()) {
try { try {
streckenListe.add(Integer.parseInt(sc.nextLine())); streckenListe.add(Integer.parseInt(sc.nextLine()));
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
continue; continue;
} }
@ -103,10 +106,10 @@ public class User {
// Methode // Methode
public static void ermittleLaengsteStrecke() throws Exception { public static void ermittleLaengsteStrecke() throws Exception {
User.fügeindieArrayList(); User.fügeindieArrayList();
double laengsteStrecke = 0; double laengsteStrecke = 0;
for (int i = 0; i <streckenListe.size(); i++) { for (int i = 0; i < streckenListe.size(); i++) {
if (streckenListe.get(i) > laengsteStrecke) { if (streckenListe.get(i) > laengsteStrecke) {
laengsteStrecke = streckenListe.get(i); laengsteStrecke = streckenListe.get(i);
} }
@ -118,50 +121,13 @@ public class User {
// Methode // Methode
public static void wievielbiszumZiel() throws Exception { 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(); String name = sc.nextLine();
fügeindieArrayList(); fügeindieArrayList();
for (int h = 1; h < streckenListe.size(); h++) { for (int h = 1; h < streckenListe.size(); h++) {
try {
userListe.get(name).ziel -= streckenListe.get(h); 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(); 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) { 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(" "); String [] antwort = User.sc.nextLine().split(" ");
if (antwort[1].equalsIgnoreCase("anlegen")){ if (antwort[1].equalsIgnoreCase("anlegen")){
User.kontoanlegen(); User.kontoanlegen();
} else if (antwort[1].equalsIgnoreCase("zeigen")) { } else if (antwort[0].equalsIgnoreCase("gewicht")) {
User.zeigeKonto(); User.gewichtändern();;
} else if (antwort[0].equalsIgnoreCase("Eingabe")) { } else if (antwort[0].equalsIgnoreCase("eingabe")) {
User.eingabeSession(); User.eingabeTraining();
} else if (antwort[0].equalsIgnoreCase("Ziel")) { } else if (antwort[0].equalsIgnoreCase("ziel")) {
User.wievielbiszumZiel(); User.wievielbiszumZiel();
} else if (antwort[1].equalsIgnoreCase("beenden")) { } else if (antwort[1].equalsIgnoreCase("beenden")) {
System.out.println("Bis zum nächsten Mal!"); System.out.println("Bis zum nächsten Mal!");