Berrechnung der Versankosten und der dazugehörigen MwSt.

kleinere Optimierungen im Code
main
igor.lewandowski 2025-12-14 13:28:22 +01:00
parent 1cf8a70ff6
commit f2436e6ed7
3 changed files with 89 additions and 47 deletions

View File

@ -3,47 +3,31 @@ import java.util.ArrayList;
public class Bestellung { public class Bestellung {
String name; String name;
String adresse; String adresse;
ArrayList<Double> preis; double versandkosten;
ArrayList<Integer> mwSteuer; double anteil7;
ArrayList<Double> gewicht; double anteil19;
double gesamtPreis;
public Bestellung() { public Bestellung() {
} }
public Bestellung(String name, String adresse, ArrayList<Double> preis, ArrayList<Integer> mwSteuer, ArrayList<Double> gewicht) { public Bestellung(String name, String adresse, double versandkosten, double anteil7, double anteil19, double gesamtPreis) {
this.name = name; this.name = name;
this.adresse = adresse; this.adresse = adresse;
this.preis = preis; this.versandkosten = versandkosten;
this.mwSteuer = mwSteuer; this.anteil7 = anteil7;
this.gewicht = gewicht; this.anteil19 = anteil19;
this.gesamtPreis = gesamtPreis;
} }
public void bestellbestätigung(){ public void bestellbestätigung(){
System.out.println("Bestellungbestätigung: \n" + name); System.out.println("Bestellungbestätigung: \n" + name);
System.out.println("Der Gesamt Preis ihrer Bestellung berträgt " + (gesamtPreis-versandkosten) + "€, davon " + versandkosten +"€ Versandkosten");
System.out.println(" (inkl. MwSt. 7%: " + anteil7 + " , MwSt. 19%: " + anteil19 + "€) \n");
System.out.println("Ihre Bestellung wurde erflogreich aufgenommen und wird an " + adresse + " geliefert."); System.out.println("Ihre Bestellung wurde erflogreich aufgenommen und wird an " + adresse + " geliefert.");
System.out.println("Die Bestellung wird in 5-7 Werktagen bei Ihnen eintreten. \nVielen Dank für Ihre Bestellung!"); System.out.println("Die Bestellung wird in 5-7 Werktagen bei Ihnen eintreten. \nVielen Dank für Ihre Bestellung!");
}
public double bruttoPreisBerechnung() {
double versandkosten = 0;
double gesamtGewicht = 0;
for (int i = 0; i < gewicht.size(); i++) {
gesamtGewicht += gewicht.get(i);
}
if (gesamtGewicht >= 0.1) {
versandkosten = 3.95;
} else if (gesamtGewicht >= 1) {
versandkosten = 4.95;
} else if (gesamtGewicht >= 5) {
versandkosten = 5.95;
} else {
versandkosten = 19.95;
}
double summeProdukte = 0;
for (int i = 0; i < preis.size(); i++) {
summeProdukte += preis.get(i);
}
double bruttoPreise = (summeProdukte + versandkosten) *
} }
} }

View File

@ -54,7 +54,7 @@ public class OnlineShop {
public void produkteInformationen() throws FileNotFoundException { public void produkteInformationen() throws FileNotFoundException {
String[] produkt = new String[lager.size()]; String[] produkt = new String[lager.size()];
System.out.println("ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand"); System.out.println("ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand\n");
for (int i = 0; i < lager.size(); i++) { for (int i = 0; i < lager.size(); i++) {
produkt[i] = lager.get(i).toString(); produkt[i] = lager.get(i).toString();
System.out.println(produkt[i]); System.out.println(produkt[i]);
@ -74,9 +74,10 @@ public class OnlineShop {
public void warenkorbAusgabe(){ public void warenkorbAusgabe(){
System.out.println("Der aktuelle Warenkorb sieht so aus: "); System.out.println("Der aktuelle Warenkorb sieht so aus: ");
String[] MengeProduktPreis = warenkorb.ausgabe(); String[] MengeProdukt = warenkorb.ausgabe();
for (int i = 0; i < MengeProduktPreis.length / 2; i++) { double[] bruttopreis = warenkorb.bruttoPreisBerechnen();
System.out.print(MengeProduktPreis[i] + " Stück | " + MengeProduktPreis[i+MengeProduktPreis.length/3] + " | " + MengeProduktPreis[i+(MengeProduktPreis.length/3)*2] + " €"); for (int i = 0; i < MengeProdukt.length / 2 - 1; i++) {
System.out.println(MengeProdukt[i] + " Stück | " + MengeProdukt[i+MengeProdukt.length/2 - 1] + " | " + (bruttopreis[i] * Integer.parseInt(MengeProdukt[i])) + "€");
} }
} }
@ -96,7 +97,8 @@ public class OnlineShop {
int warenkorbStelle = scanner.nextInt(); int warenkorbStelle = scanner.nextInt();
System.out.println("Bitte neue Menge angeben: "); System.out.println("Bitte neue Menge angeben: ");
int mengeNeu = scanner.nextInt(); int mengeNeu = scanner.nextInt();
warenkorb.menge.set(warenkorbStelle, mengeNeu); warenkorb.menge.set(warenkorbStelle-1, mengeNeu);
System.out.println(warenkorb.menge.get(warenkorbStelle-1));
} }
warenkorbAusgabe(); warenkorbAusgabe();
while(true) { while(true) {
@ -124,13 +126,16 @@ public class OnlineShop {
Bestellung bestellung = new Bestellung(); Bestellung bestellung = new Bestellung();
bestellung.name = name; bestellung.name = name;
bestellung.adresse = adresse; bestellung.adresse = adresse;
for (Produkt i : warenkorb.produkte) {
bestellung.preis.add(i.getPreis()); double[] versandkostenUndAnteile = warenkorb.versandkostenBerechnen();
bestellung.mwSteuer.add(i.getMwSteuer()); bestellung.versandkosten = versandkostenUndAnteile[0];
bestellung.gewicht.add(i.getGewicht()); bestellung.anteil7 = versandkostenUndAnteile[1];
} bestellung.anteil19 = versandkostenUndAnteile[2];
bestellung.gesamtPreis = versandkostenUndAnteile[0] + warenkorb.gesamtPreisBerechnen();
warenkorb.menge.clear(); //.clear() mit Hilfe von KI warenkorb.menge.clear(); //.clear() mit Hilfe von KI
warenkorb.produkte.clear(); warenkorb.produkte.clear();
bestellung.bestellbestätigung(); bestellung.bestellbestätigung();
} }
} }

View File

@ -15,13 +15,66 @@ public class Warenkorb {
} }
public String[] ausgabe() { public String[] ausgabe() {
String[] MengeProduktPreis = new String[menge.size()*3]; String[] MengeProdukt = new String[menge.size()*2];
for(int i=0;i<menge.size();i++){ for(int i=0;i<menge.size();i++){
MengeProduktPreis[i] = menge.get(i).toString(); MengeProdukt[i] = menge.get(i).toString();
MengeProduktPreis[i + menge.size()] = produkte.get(i).getName(); MengeProdukt[i + menge.size()] = produkte.get(i).getName();
MengeProduktPreis[i + menge.size() * 2] = produktePreis.toString();
} }
return MengeProduktPreis; return MengeProdukt;
} }
public double[] bruttoPreisBerechnen() {
double[] bruttopreis = new double[produkte.size()];
for (int i = 0; i < produkte.size(); i++) {
bruttopreis[i] = produkte.get(i).getPreis() * (produkte.get(i).getMwSteuer() / 100.0 + 1);
bruttopreis[i] = (int) (bruttopreis[i]*100) / 100.0; }
return bruttopreis;
}
public double[] versandkostenBerechnen(){
double gesamtGewicht = 0;
int zählermwSteuer19 = 0;
int zählermwSteuer7 = 0;
for (int i = 0; i < produkte.size(); i++) {
gesamtGewicht += produkte.get(i).getGewicht();
if(produkte.get(i).getMwSteuer() == 19){
zählermwSteuer19 += menge.get(i);}
else if(produkte.get(i).getMwSteuer() == 7){
zählermwSteuer7 += menge.get(i);}
}
double anteil7 = zählermwSteuer7 / (zählermwSteuer19 + zählermwSteuer7);
double anteil19 = zählermwSteuer19 / (zählermwSteuer19 + zählermwSteuer7);
double[] versandkostenUndAnteile = new double[3];
if (gesamtGewicht >= 0.1) {
versandkostenUndAnteile[0] = 3.95;
} else if (gesamtGewicht >= 1) {
versandkostenUndAnteile[0] = 4.95;
} else if (gesamtGewicht >= 5) {
versandkostenUndAnteile[0] = 5.95;
} else {
versandkostenUndAnteile[0] = 19.95;
}
anteil7 = versandkostenUndAnteile[0] * anteil7;
versandkostenUndAnteile[1] = anteil7 * 1.07;
anteil19 = versandkostenUndAnteile[0] * anteil19;
versandkostenUndAnteile[3] = anteil19 * 1.19;
return versandkostenUndAnteile;
}
public double gesamtPreisBerechnen(){
double[] bruttoPreise = bruttoPreisBerechnen();
double gesamtPreis = 0;
for (double i : bruttoPreise) {
gesamtPreis += i;
}
return gesamtPreis;
}
} }