renamed methods; fixed error when no ticket selected

This commit is contained in:
Joel
2021-01-09 13:07:38 +01:00
parent d5a9a0aa1a
commit 1b7605afb8
+48 -26
View File
@@ -6,8 +6,10 @@ import java.util.Scanner;
class Fahrkartenautomat class Fahrkartenautomat
{ {
public static double fahrkartenbestellungErfassen (){
// Array für Preise public static double auswahlErfassen (){
//===================================================================
// Array für die Bezeichnungen
String[] bezeichnungen = {"Einzelfahrschein Berlin AB", String[] bezeichnungen = {"Einzelfahrschein Berlin AB",
"Einzelfahrschein Berlin BC", "Einzelfahrschein Berlin BC",
@@ -19,13 +21,16 @@ class Fahrkartenautomat
"Kleingruppen-Tageskarte Berlin AB", "Kleingruppen-Tageskarte Berlin AB",
"Kleingruppen-Tageskarte Berlin BC", "Kleingruppen-Tageskarte Berlin BC",
"Kleingruppen-Tageskarte Berlin ABC"}; "Kleingruppen-Tageskarte Berlin ABC"};
// Array für die jeweiligen Preise
double[] preise = {2.9, 3.3, 3.6, 1.9, 8.6, 9.0, 9.6, 23.5, 24.3, 24.9}; double[] preise = {2.9, 3.3, 3.6, 1.9, 8.6, 9.0, 9.6, 23.5, 24.3, 24.9};
//===================================================================
Scanner tastatur = new Scanner(System.in); Scanner tastatur = new Scanner(System.in);
double zuZahlenderBetrag = 0.0; double zuZahlenderBetrag = 0.0;
double einzelBetrag = 0.0; double einzelBetrag = 0.0;
byte anzahlTickets = 0;
byte auswahlTicket = 0; byte auswahlTicket = 0;
while (true) { while (true) {
@@ -46,36 +51,49 @@ class Fahrkartenautomat
einzelBetrag = preise[auswahlTicket-1]; einzelBetrag = preise[auswahlTicket-1];
} }
catch (ArrayIndexOutOfBoundsException exception) { catch (ArrayIndexOutOfBoundsException exception) {
if (auswahlTicket == i+1) break; if (auswahlTicket == i+1) {
else {System.out.println(" >>falsche Eingabe<<"); continue;} break;
}
while (true) {
System.out.print("Anzahl der Tickets: ");
try {
anzahlTickets = tastatur.nextByte();
} }
catch(InputMismatchException e) { else if (auswahlTicket == 99)
anzahlTickets = 0; {
tastatur.nextLine(); admin();
break;
} }
if (!(anzahlTickets > 0 && anzahlTickets <= 10)) { else {System.out.println(" >>falsche Eingabe<<"); warte(1000); continue;}
System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n"
+ "Bitte erneut versuchen.\n");
continue;
}
break;
} }
zuZahlenderBetrag += anzahlTickets * einzelBetrag; zuZahlenderBetrag = anzahlErfassen(einzelBetrag);
} }
return zuZahlenderBetrag; return zuZahlenderBetrag;
} }
public static double anzahlErfassen(double einzelBetrag) {
Scanner tastatur = new Scanner(System.in);
byte anzahlTickets = 0;
while (true) {
System.out.print("Anzahl der Tickets: ");
try {
anzahlTickets = tastatur.nextByte();
}
catch(InputMismatchException e) {
anzahlTickets = 0;
tastatur.nextLine();
}
if (!(anzahlTickets > 0 && anzahlTickets <= 10)) {
System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n"
+ "Bitte erneut versuchen.\n");
continue;
}
break;
}
return anzahlTickets * einzelBetrag;
}
public static double fahrkartenBezahlen(double zuZahlenderBetrag) { public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
if (zuZahlenderBetrag == 0) { if (zuZahlenderBetrag == 0) {
System.out.println("Nichts zu Bezahlen"); System.out.println("Nichts zu Bezahlen");
fahrkartenbestellungErfassen(); warte(1000);
main(null);
} }
Scanner tastatur = new Scanner(System.in); Scanner tastatur = new Scanner(System.in);
@@ -215,14 +233,18 @@ class Fahrkartenautomat
"Wir wünschen Ihnen eine gute Fahrt.\n\n"); "Wir wünschen Ihnen eine gute Fahrt.\n\n");
warte(2000); warte(2000);
} }
public static void admin() {
System.out.println("Administrationsmenü\n============");
}
public static void main(String[] args) public static void main(String[] args)
{ {
double zuZahlenderBetrag; double zuZahlenderBetrag;
double rueckgabebetrag; double rueckgabebetrag;
while (true) { while (true) {
zuZahlenderBetrag = fahrkartenbestellungErfassen(); zuZahlenderBetrag = auswahlErfassen();
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag); rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);
fahrkartenAusgeben(); fahrkartenAusgeben();
rueckgeldAusgeben(rueckgabebetrag); rueckgeldAusgeben(rueckgabebetrag);