07- manege ticket names and prices with array
This commit is contained in:
@@ -2,163 +2,155 @@
|
||||
|
||||
class Fahrkartenautomat
|
||||
{
|
||||
public static double fahrkartenbestellungErfassen (){
|
||||
//Preise
|
||||
double preisEinzelfahrschein = 2.9;
|
||||
double preisTageskarte = 8.6;
|
||||
double preisKleingruppe = 23.5;
|
||||
//=====================================
|
||||
|
||||
Scanner tastatur = new Scanner(System.in);
|
||||
|
||||
double zuZahlenderBetrag = 0.0;
|
||||
double einzelBetrag = 0.0;
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
while (auswahl) {
|
||||
System.out.print("Anzahl der Tickets: ");
|
||||
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");
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
zuZahlenderBetrag += anzahlTickets * einzelBetrag;
|
||||
|
||||
}
|
||||
|
||||
return zuZahlenderBetrag;
|
||||
}
|
||||
|
||||
public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
|
||||
Scanner tastatur = new Scanner(System.in);
|
||||
// Geldeinwurf
|
||||
// -----------
|
||||
double eingezahlterGesamtbetrag = 0;
|
||||
while(eingezahlterGesamtbetrag < zuZahlenderBetrag)
|
||||
{
|
||||
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 double fahrkartenbestellungErfassen (){
|
||||
// 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);
|
||||
|
||||
double zuZahlenderBetrag = 0.0;
|
||||
double einzelBetrag = 0.0;
|
||||
byte anzahlTickets = 0;
|
||||
byte auswahlTicket = 0;
|
||||
|
||||
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();
|
||||
try {
|
||||
einzelBetrag = preise[auswahlTicket-1];
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException exception) {
|
||||
if (auswahlTicket == i+1) break;
|
||||
else {System.out.println(" >>falsche Eingabe<<"); continue;}
|
||||
}
|
||||
|
||||
while (true) {
|
||||
System.out.print("Anzahl der Tickets: ");
|
||||
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");
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
zuZahlenderBetrag += anzahlTickets * einzelBetrag;
|
||||
}
|
||||
|
||||
return zuZahlenderBetrag;
|
||||
}
|
||||
|
||||
public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
|
||||
Scanner tastatur = new Scanner(System.in);
|
||||
// Geldeinwurf
|
||||
// -----------
|
||||
double eingezahlterGesamtbetrag = 0;
|
||||
while(eingezahlterGesamtbetrag < zuZahlenderBetrag)
|
||||
{
|
||||
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 () {
|
||||
// Fahrscheinausgabe
|
||||
// -----------------
|
||||
System.out.println("\nFahrschein wird ausgegeben");
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
System.out.print("=");
|
||||
warte(250);
|
||||
}
|
||||
System.out.println("\n\n");
|
||||
// -----------------
|
||||
System.out.println("\nFahrschein wird ausgegeben");
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
System.out.print("=");
|
||||
warte(250);
|
||||
}
|
||||
System.out.println("\n\n");
|
||||
}
|
||||
|
||||
|
||||
public static void rueckgeldAusgeben(double rückgabebetrag) {
|
||||
// Rückgeldausgabe
|
||||
// ------------------------------
|
||||
if(rückgabebetrag > 0.0)
|
||||
{
|
||||
System.out.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag);
|
||||
System.out.println("wird in folgenden Münzen ausgezahlt:");
|
||||
// ------------------------------
|
||||
if(rückgabebetrag > 0.0)
|
||||
{
|
||||
System.out.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag);
|
||||
System.out.println("wird in folgenden Münzen ausgezahlt:");
|
||||
|
||||
while(rückgabebetrag > 1.9) // 2 EURO-Münzen
|
||||
{
|
||||
muenzeAusgeben(2, "EURO");
|
||||
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 > 1.9) // 2 EURO-Münzen
|
||||
{
|
||||
muenzeAusgeben(2, "EURO");
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
public static void muenzeAusgeben(int betrag, String einheit) {
|
||||
System.out.println(betrag + " " + einheit);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
double zuZahlenderBetrag;
|
||||
double rueckgabebetrag;
|
||||
|
||||
zuZahlenderBetrag = fahrkartenbestellungErfassen();
|
||||
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);
|
||||
fahrkartenAusgeben();
|
||||
rueckgeldAusgeben(rueckgabebetrag);
|
||||
public static void main(String[] args)
|
||||
{
|
||||
double zuZahlenderBetrag;
|
||||
double rueckgabebetrag;
|
||||
|
||||
System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+
|
||||
"vor Fahrtantritt entwerten zu lassen!\n"+
|
||||
"Wir wünschen Ihnen eine gute Fahrt.");
|
||||
}
|
||||
zuZahlenderBetrag = fahrkartenbestellungErfassen();
|
||||
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);
|
||||
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