07- manege ticket names and prices with array
This commit is contained in:
@@ -2,163 +2,155 @@
|
|||||||
|
|
||||||
class Fahrkartenautomat
|
class Fahrkartenautomat
|
||||||
{
|
{
|
||||||
public static double fahrkartenbestellungErfassen (){
|
public static double fahrkartenbestellungErfassen (){
|
||||||
//Preise
|
// Array für Preise
|
||||||
double preisEinzelfahrschein = 2.9;
|
|
||||||
double preisTageskarte = 8.6;
|
String[] bezeichnungen = {"Einzelfahrschein Berlin AB",
|
||||||
double preisKleingruppe = 23.5;
|
"Einzelfahrschein Berlin BC",
|
||||||
//=====================================
|
"Einzelfahrschein Berlin ABC",
|
||||||
|
"Kurzstrecke",
|
||||||
Scanner tastatur = new Scanner(System.in);
|
"Tageskarte Berlin AB",
|
||||||
|
"Tageskarte Berlin BC",
|
||||||
double zuZahlenderBetrag = 0.0;
|
"Tageskarte Berlin ABC",
|
||||||
double einzelBetrag = 0.0;
|
"Kleingruppen-Tageskarte Berlin AB",
|
||||||
byte anzahlTickets = 0;
|
"Kleingruppen-Tageskarte Berlin BC",
|
||||||
byte auswahlTicket = 0;
|
"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};
|
||||||
boolean auswahl = true;
|
|
||||||
while (auswahl) {
|
Scanner tastatur = new Scanner(System.in);
|
||||||
System.out.printf("\nWählen Sie ihre Wunschfahrkarte für Berlin AB aus:\n" +
|
|
||||||
" Einzelfahrschein Regeltarif AB [%.2f EUR] (1)\n" +
|
double zuZahlenderBetrag = 0.0;
|
||||||
" Tageskarte Regeltarif AB [%.2f EUR] (2)\n" +
|
double einzelBetrag = 0.0;
|
||||||
" Kleingruppen-Tageskarte Regeltarif AB [%.2f EUR] (3)\n" +
|
byte anzahlTickets = 0;
|
||||||
" Bezahlen (9)\n\n", preisEinzelfahrschein, preisTageskarte, preisKleingruppe);
|
byte auswahlTicket = 0;
|
||||||
System.out.print("Ihre Wahl: ");
|
|
||||||
auswahlTicket = tastatur.nextByte();
|
while (true) {
|
||||||
einzelBetrag = 0.0;
|
System.out.printf("\nWählen Sie:\n");
|
||||||
|
int i=0;
|
||||||
switch(auswahlTicket) {
|
for (; i<bezeichnungen.length; i++)
|
||||||
case 1:
|
System.out.printf(" %s [%.2f EUR] (%d)\n", bezeichnungen[i], preise[i], i+1);
|
||||||
einzelBetrag = preisEinzelfahrschein;
|
System.out.printf(" Bezahlen (%d)\n", i+1);
|
||||||
break;
|
System.out.print("Ihre Wahl: ");
|
||||||
case 2:
|
auswahlTicket = tastatur.nextByte();
|
||||||
einzelBetrag = preisTageskarte;
|
try {
|
||||||
break;
|
einzelBetrag = preise[auswahlTicket-1];
|
||||||
case 3:
|
}
|
||||||
einzelBetrag = preisKleingruppe;
|
catch (ArrayIndexOutOfBoundsException exception) {
|
||||||
break;
|
if (auswahlTicket == i+1) break;
|
||||||
case 9:
|
else {System.out.println(" >>falsche Eingabe<<"); continue;}
|
||||||
auswahl = false;
|
}
|
||||||
break;
|
|
||||||
default:
|
while (true) {
|
||||||
System.out.println(" >>falsche Eingabe<<");
|
System.out.print("Anzahl der Tickets: ");
|
||||||
break;
|
anzahlTickets = tastatur.nextByte();
|
||||||
}
|
if (!(anzahlTickets > 0 && anzahlTickets <= 10)) {
|
||||||
|
System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n"
|
||||||
|
+ "Bitte erneut versuchen.\n");
|
||||||
while (auswahl) {
|
continue;
|
||||||
System.out.print("Anzahl der Tickets: ");
|
}
|
||||||
anzahlTickets = tastatur.nextByte();
|
break;
|
||||||
if (!(anzahlTickets > 0 && anzahlTickets <= 10)) {
|
}
|
||||||
System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n"
|
zuZahlenderBetrag += anzahlTickets * einzelBetrag;
|
||||||
+ "Bitte erneut versuchen.\n");
|
}
|
||||||
continue;
|
|
||||||
}
|
return zuZahlenderBetrag;
|
||||||
break;
|
}
|
||||||
}
|
|
||||||
|
public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
|
||||||
zuZahlenderBetrag += anzahlTickets * einzelBetrag;
|
Scanner tastatur = new Scanner(System.in);
|
||||||
|
// Geldeinwurf
|
||||||
}
|
// -----------
|
||||||
|
double eingezahlterGesamtbetrag = 0;
|
||||||
return zuZahlenderBetrag;
|
while(eingezahlterGesamtbetrag < zuZahlenderBetrag)
|
||||||
}
|
{
|
||||||
|
System.out.printf("Noch zu zahlen: %.2f Euro \n", (zuZahlenderBetrag - eingezahlterGesamtbetrag));
|
||||||
public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
|
System.out.print("Eingabe (mind. 5Ct, höchstens 2 Euro): ");
|
||||||
Scanner tastatur = new Scanner(System.in);
|
double eingeworfeneMünze = tastatur.nextDouble();
|
||||||
// Geldeinwurf
|
eingezahlterGesamtbetrag += eingeworfeneMünze;
|
||||||
// -----------
|
}
|
||||||
double eingezahlterGesamtbetrag = 0;
|
// Rückgeldberechnung
|
||||||
while(eingezahlterGesamtbetrag < zuZahlenderBetrag)
|
double rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag;
|
||||||
{
|
return rueckgabebetrag;
|
||||||
System.out.printf("Noch zu zahlen: %.2f Euro \n", (zuZahlenderBetrag - eingezahlterGesamtbetrag));
|
}
|
||||||
System.out.print("Eingabe (mind. 5Ct, höchstens 2 Euro): ");
|
|
||||||
double eingeworfeneMünze = tastatur.nextDouble();
|
|
||||||
eingezahlterGesamtbetrag += eingeworfeneMünze;
|
|
||||||
}
|
|
||||||
// Rückgeldberechnung
|
|
||||||
double rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag;
|
|
||||||
return rueckgabebetrag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fahrkartenAusgeben () {
|
public static void fahrkartenAusgeben () {
|
||||||
// Fahrscheinausgabe
|
// Fahrscheinausgabe
|
||||||
// -----------------
|
// -----------------
|
||||||
System.out.println("\nFahrschein wird ausgegeben");
|
System.out.println("\nFahrschein wird ausgegeben");
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
System.out.print("=");
|
System.out.print("=");
|
||||||
warte(250);
|
warte(250);
|
||||||
}
|
}
|
||||||
System.out.println("\n\n");
|
System.out.println("\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void rueckgeldAusgeben(double rückgabebetrag) {
|
public static void rueckgeldAusgeben(double rückgabebetrag) {
|
||||||
// Rückgeldausgabe
|
// Rückgeldausgabe
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
if(rückgabebetrag > 0.0)
|
if(rückgabebetrag > 0.0)
|
||||||
{
|
{
|
||||||
System.out.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag);
|
System.out.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag);
|
||||||
System.out.println("wird in folgenden Münzen ausgezahlt:");
|
System.out.println("wird in folgenden Münzen ausgezahlt:");
|
||||||
|
|
||||||
while(rückgabebetrag > 1.9) // 2 EURO-Münzen
|
while(rückgabebetrag > 1.9) // 2 EURO-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(2, "EURO");
|
muenzeAusgeben(2, "EURO");
|
||||||
rückgabebetrag -= 2.0;
|
rückgabebetrag -= 2.0;
|
||||||
}
|
|
||||||
while(rückgabebetrag > 0.9) // 1 EURO-Münzen
|
|
||||||
{
|
|
||||||
muenzeAusgeben(1, "EURO");
|
|
||||||
rückgabebetrag -= 1.0;
|
|
||||||
}
|
|
||||||
while(rückgabebetrag > 0.49) // 50 CENT-Münzen
|
|
||||||
{
|
|
||||||
muenzeAusgeben(50, "CENT");
|
|
||||||
rückgabebetrag -= 0.5;
|
|
||||||
}
|
|
||||||
while(rückgabebetrag > 0.19) // 20 CENT-Münzen
|
|
||||||
{
|
|
||||||
muenzeAusgeben(20, "CENT");
|
|
||||||
rückgabebetrag -= 0.2;
|
|
||||||
}
|
|
||||||
while(rückgabebetrag > 0.09) // 10 CENT-Münzen
|
|
||||||
{
|
|
||||||
muenzeAusgeben(10, "CENT");
|
|
||||||
rückgabebetrag -= 0.1;
|
|
||||||
}
|
|
||||||
while(rückgabebetrag > 0.049)// 5 CENT-Münzen
|
|
||||||
{
|
|
||||||
muenzeAusgeben(5, "CENT");
|
|
||||||
rückgabebetrag -= 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void warte(int millisekunde) {
|
|
||||||
try {
|
|
||||||
Thread.sleep(millisekunde);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
while(rückgabebetrag > 0.9) // 1 EURO-Münzen
|
||||||
|
{
|
||||||
|
muenzeAusgeben(1, "EURO");
|
||||||
|
rückgabebetrag -= 1.0;
|
||||||
|
}
|
||||||
|
while(rückgabebetrag > 0.49) // 50 CENT-Münzen
|
||||||
|
{
|
||||||
|
muenzeAusgeben(50, "CENT");
|
||||||
|
rückgabebetrag -= 0.5;
|
||||||
|
}
|
||||||
|
while(rückgabebetrag > 0.19) // 20 CENT-Münzen
|
||||||
|
{
|
||||||
|
muenzeAusgeben(20, "CENT");
|
||||||
|
rückgabebetrag -= 0.2;
|
||||||
|
}
|
||||||
|
while(rückgabebetrag > 0.09) // 10 CENT-Münzen
|
||||||
|
{
|
||||||
|
muenzeAusgeben(10, "CENT");
|
||||||
|
rückgabebetrag -= 0.1;
|
||||||
|
}
|
||||||
|
while(rückgabebetrag > 0.049)// 5 CENT-Münzen
|
||||||
|
{
|
||||||
|
muenzeAusgeben(5, "CENT");
|
||||||
|
rückgabebetrag -= 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void warte(int millisekunde) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(millisekunde);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void muenzeAusgeben(int betrag, String einheit) {
|
public static void muenzeAusgeben(int betrag, String einheit) {
|
||||||
System.out.println(betrag + " " + einheit);
|
System.out.println(betrag + " " + einheit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args)
|
|
||||||
{
|
|
||||||
double zuZahlenderBetrag;
|
|
||||||
double rueckgabebetrag;
|
|
||||||
|
|
||||||
zuZahlenderBetrag = fahrkartenbestellungErfassen();
|
public static void main(String[] args)
|
||||||
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);
|
{
|
||||||
fahrkartenAusgeben();
|
double zuZahlenderBetrag;
|
||||||
rueckgeldAusgeben(rueckgabebetrag);
|
double rueckgabebetrag;
|
||||||
|
|
||||||
System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+
|
zuZahlenderBetrag = fahrkartenbestellungErfassen();
|
||||||
"vor Fahrtantritt entwerten zu lassen!\n"+
|
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);
|
||||||
"Wir wünschen Ihnen eine gute Fahrt.");
|
fahrkartenAusgeben();
|
||||||
}
|
rueckgeldAusgeben(rueckgabebetrag);
|
||||||
|
|
||||||
|
System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+
|
||||||
|
"vor Fahrtantritt entwerten zu lassen!\n"+
|
||||||
|
"Wir wünschen Ihnen eine gute Fahrt.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user