07- manege ticket names and prices with array

This commit is contained in:
Joel
2021-01-01 17:37:51 +01:00
parent 4d2b099bd1
commit 6f7373d09b
+26 -34
View File
@@ -3,11 +3,19 @@
class Fahrkartenautomat
{
public static double fahrkartenbestellungErfassen (){
//Preise
double preisEinzelfahrschein = 2.9;
double preisTageskarte = 8.6;
double preisKleingruppe = 23.5;
//=====================================
// Array für Preise
String[] bezeichnungen = {"Einzelfahrschein Berlin AB",
"Einzelfahrschein Berlin BC",
"Einzelfahrschein Berlin ABC",
"Kurzstrecke",
"Tageskarte Berlin AB",
"Tageskarte Berlin BC",
"Tageskarte Berlin ABC",
"Kleingruppen-Tageskarte Berlin AB",
"Kleingruppen-Tageskarte Berlin BC",
"Kleingruppen-Tageskarte Berlin ABC"};
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);
@@ -16,37 +24,23 @@ class Fahrkartenautomat
byte anzahlTickets = 0;
byte auswahlTicket = 0;
boolean auswahl = true;
while (auswahl) {
System.out.printf("\nWählen Sie ihre Wunschfahrkarte für Berlin AB aus:\n" +
" Einzelfahrschein Regeltarif AB [%.2f EUR] (1)\n" +
" Tageskarte Regeltarif AB [%.2f EUR] (2)\n" +
" Kleingruppen-Tageskarte Regeltarif AB [%.2f EUR] (3)\n" +
" Bezahlen (9)\n\n", preisEinzelfahrschein, preisTageskarte, preisKleingruppe);
while (true) {
System.out.printf("\nWählen Sie:\n");
int i=0;
for (; i<bezeichnungen.length; i++)
System.out.printf(" %s [%.2f EUR] (%d)\n", bezeichnungen[i], preise[i], i+1);
System.out.printf(" Bezahlen (%d)\n", i+1);
System.out.print("Ihre Wahl: ");
auswahlTicket = tastatur.nextByte();
einzelBetrag = 0.0;
switch(auswahlTicket) {
case 1:
einzelBetrag = preisEinzelfahrschein;
break;
case 2:
einzelBetrag = preisTageskarte;
break;
case 3:
einzelBetrag = preisKleingruppe;
break;
case 9:
auswahl = false;
break;
default:
System.out.println(" >>falsche Eingabe<<");
break;
try {
einzelBetrag = preise[auswahlTicket-1];
}
catch (ArrayIndexOutOfBoundsException exception) {
if (auswahlTicket == i+1) break;
else {System.out.println(" >>falsche Eingabe<<"); continue;}
}
while (auswahl) {
while (true) {
System.out.print("Anzahl der Tickets: ");
anzahlTickets = tastatur.nextByte();
if (!(anzahlTickets > 0 && anzahlTickets <= 10)) {
@@ -56,9 +50,7 @@ class Fahrkartenautomat
}
break;
}
zuZahlenderBetrag += anzahlTickets * einzelBetrag;
}
return zuZahlenderBetrag;