Java :: Aufgabe #314

4 Lösungen Lösungen öffentlich

Mobilfunkanbieter (Monatsabrechnung)

Anfänger - Java von JKooP - 07.11.2020 um 09:42 Uhr
Ein Mobilfunkanbieter stellt folgende Pakete zur Verfügung:

Paket-Typ....Basispreis....Freiminuten....Minutenpreis
P_Basis........2,95€..............0...................0,10€
P_100..........3.95€.............100................0,12€
P_300..........7,95€.............300................0,15€
P_600..........12,95€...........600................0,20€
P_Flat..........29,95€...........unbegrenzt.....0,00€

Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.

Viel Spaß


Lösungen:

vote_ok
von Des_ORNTRT (530 Punkte) - 24.11.2020 um 17:45 Uhr
Quellcode ausblenden Java-Code
/*

    Ein Mobilfunkanbieter stellt folgende Pakete zur Verfügung:

    Paket-Typ....Basispreis....Freiminuten....Minutenpreis
    P_Basis........2,95€..............0...................0,10€ 0
    P_100..........3.95€.............100................0,12€   1
    P_300..........7,95€.............300................0,15€   2
    P_600..........12,95€...........600................0,20€    3
    P_Flat..........29,95€...........unbegrenzt.....0,00€       4

    Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
    Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.

    Viel Spaß
       Preis=Basispreis + Minutenpreis(telefonierteMinuten - Freiminuten)
    */

class Mobilfunkanbieter {
        static void Berechnung( int Paket, int Minuten){
            double Preis = 1.00;

            if (Paket == 0) {
                Preis = 2.95 + 0.10 * Minuten;
            }

            if (Paket == 1) {
                Preis = 3.95 + 0.12 * (Minuten - 100);
                if (Preis < 3.95) {
                    Preis = 3.95;
                }
            }
            if (Paket == 2) {
                Preis = 7.95 + 0.15 * (Minuten - 300);
                if (Preis < 7.95) {
                    Preis = 7.95;
                }
            }
            if (Paket == 3) {
                Preis = 12.95 + 0.20 * (Minuten - 600);
                if (Preis < 12.95) {
                    Preis = 12.95;
                }
            }
            if (Paket == 4) {
                Preis = 29.95;
            }
            System.out.println(Preis + " Euronen");
        }
    public static void main(String[] args){
    Berechnung(2, 301);
    }
}


vote_ok
von Seb (110 Punkte) - 29.12.2020 um 14:38 Uhr
Hallo zusammen, mein Name ist Sebastian und ich bin dabei mir selbst Java beizubringen.
Da ja Übung den Meister macht habe ich Ihre Website gefunden.
Ich finde das Konzept sehr gut und werde in Zukunft mehr Aufgaben machen.
Auf Feedback zu den Lösungen etc. würde ich mich sehr freuen.
Ich habe eine statische Methode in einer separaten Klasse erstellt.
Ich denke mit der Switch Methode kann man die Abfrage den Users vergleichen und dann dementsprechend die Kosten berechnen.
Was ist Ihre Meinung zu der Lösung?

Quellcode ausblenden Java-Code
public class Mobilfunk {
	
	public static double PriceSum(String PacketTyp, int Minuten) {
		double endPreis = 0;
		
		switch (PacketTyp) {
		case "P_Basis":
		endPreis = 2.95 + (Minuten * 0.10);	
		break;
			
		case "P_100":
			if (Minuten >= 100) {
				endPreis = 3.95 + ((Minuten - 100) * 0.12);					
			} else {
				endPreis = 3.95;
			}
		break;

		case "P_300":
			if (Minuten >= 300) {
				endPreis = 7.95 + ((Minuten - 300) * 0.15);					
			} else {
				endPreis = 7.95;
			}
		break;

		case "P_600":
			if (Minuten >= 600) {
				endPreis = 12.95 + ((Minuten - 600) * 0.20);					
			} else {
				endPreis = 12.95;
			}
		break;
		
		case "P_Flat":
				endPreis = 29.95;
		break;
		
		default:
			break;
		}
		
		return endPreis;
	}
}	
vote_ok
von Seb (110 Punkte) - 29.12.2020 um 14:46 Uhr
Auf konstruktive Kritik / Verbesserungsvorschläge freue ich mich.

Main Klasse
Quellcode ausblenden Java-Code
public class MobilfunkMain {

	public static void main(String[] args) {
		// Beispielaufruf mit Packet P_100 und 110 Minuten:
		System.out.println(Mobilfunk.PriceSum("P_100", 110));

	}

}


Klasse Mobilfunk
Quellcode ausblenden Java-Code
public class Mobilfunk {
     
    public static double PriceSum(String PacketTyp, int Minuten) {
        double endPreis = 0;
         
        switch (PacketTyp) {
        case "P_Basis":
        endPreis = 2.95 + (Minuten * 0.10); 
        break;
             
        case "P_100":
            if (Minuten >= 100) {
                endPreis = 3.95 + ((Minuten - 100) * 0.12);                 
            } else {
                endPreis = 3.95;
            }
        break;
 
        case "P_300":
            if (Minuten >= 300) {
                endPreis = 7.95 + ((Minuten - 300) * 0.15);                 
            } else {
                endPreis = 7.95;
            }
        break;
 
        case "P_600":
            if (Minuten >= 600) {
                endPreis = 12.95 + ((Minuten - 600) * 0.20);                    
            } else {
                endPreis = 12.95;
            }
        break;
         
        case "P_Flat":
                endPreis = 29.95;
        break;
         
        default:
        	System.out.println("Falsche Parametereingabe. Bitte eines der folgenden Packete als Parameter auswählen: \n P_Basis \n P_100 \n P_300 \n P_600 \n P_Flat \n");
            break;
        }
         
        return endPreis;
    }
}
vote_ok
von n1again (560 Punkte) - 11.04.2021 um 09:39 Uhr
Quellcode ausblenden Java-Code
public class Mobilfunkanbieter {
	
	public static void main(String[] args) {
		
		System.out.println("Der Gesamtpreis leigt bei: "+calculate(4, 1337));
	}
	
	
	public static double calculate(int paketTyp, int minuten) {
		
		double preis = 0;
		
		if(paketTyp == 1) {
			preis = 2.95 + minuten * 0.1; 
		}
		
		if(paketTyp == 2) {
			if(minuten <= 100) {
				preis = 3.95;
			}
			else {
				preis = 3.95 + (minuten - 100) * 0.12;
			}
		}
			
		if(paketTyp == 3) {
			if(minuten <= 300) {
				preis = 7.95;
			}
			else {
				preis = 7.95 + (minuten - 300) * 0.15;
			}
		}
		
		if(paketTyp == 4) {
			if(minuten <= 600) {
				preis = 12.95;
			}
			else {
				preis = 12.95 + (minuten - 600) * 0.20;
			}
		}
		
		if(paketTyp == 5) {
			preis = 29.95;
		}
		return preis;
	}
	
}