den Print der Produkte formatiert

main
Laura Kalkbrenner 2025-12-13 15:42:47 +01:00
parent f4934bfa4f
commit fd86cbc740
17 changed files with 150 additions and 26 deletions

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CatActivitySettingProjectState">
<option name="enabled" value="true" />
<option name="firstInit" value="false" />
</component>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="nameOverrideEnabled" value="true" />
<option name="nameOverrideText" value="Online Shop" />
<option name="description" value="" />
</component>
</project>

View File

@ -3,7 +3,6 @@
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/PR1.Online-Shop.iml" filepath="$PROJECT_DIR$/.idea/PR1.Online-Shop.iml" />
<module fileurl="file://$PROJECT_DIR$/Resource/Resource.iml" filepath="$PROJECT_DIR$/Resource/Resource.iml" />
<module fileurl="file://$PROJECT_DIR$/Shop/Shop.iml" filepath="$PROJECT_DIR$/Shop/Shop.iml" />
</modules>
</component>

View File

@ -3,9 +3,29 @@
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java/backend" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java/tui" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" scope="TEST">
<library name="JUnit6">
<CLASSES>
<root url="jar://$MODULE_DIR$/../lib/junit-jupiter-6.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/junit-jupiter-api-6.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/opentest4j-1.3.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/junit-platform-commons-6.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/apiguardian-api-1.1.2.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/jspecify-1.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/junit-jupiter-params-6.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/junit-jupiter-engine-6.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../lib/junit-platform-engine-6.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

View File

@ -5,4 +5,4 @@ ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand
4,Kokosmilch 250 ml,0.275,1.67,7,12
5,Bratwurst grob 250 g,0.258,2.09,7,17
6,Traubensaft 1.0 l,1.5,2.93,19,1
7,Gieskanne,0.2,3.80,19,13
7,Gieskanne,0.2,3.80,19,13

1 ProdId Name TransportGewicht Netto MwStSatz Lagerbestand
5 4 Kokosmilch 250 ml 0.275 1.67 7 12
6 5 Bratwurst grob 250 g 0.258 2.09 7 17
7 6 Traubensaft 1.0 l 1.5 2.93 19 1
8 7 Gieskanne 0.2 3.80 19 13

View File

@ -1,22 +1,75 @@
package pack;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class OnlineShop {
private ArrayList<Produkt> lager;
private static ArrayList<String> LagerList;
public static void Start() throws FileNotFoundException {
LagerList=readFile();
new OnlineShop(LagerList);
}
public OnlineShop(ArrayList Lagerlist) throws FileNotFoundException {
String [][] produkt= produktListe(Lagerlist);
IO.print("");
for(int j=0;j<produkt[0].length;j++) {
IO.print(produkt[0][j]+" | ");
}
IO.println();
for(int i=0;i<produkt.length;i++) {
for(int j=0;j<produkt[i].length;j++) {
String helpString=produkt[i][j];
int length=10;
if(j==1)
length=25;
while(helpString.length()!=length){
helpString+=" ";
}
IO.print(helpString);
IO.print(" | ");
}
IO.println();
}
public OnlineShop() {
lager = new ArrayList<Produkt>();
// TODO: Hier sollte die Produktliste geladen werden, vgl. Sudoku
lager.add(new Produkt("Wein", 4.99));
}
public String[] produktListe() {
String[] produkt = new String[lager.size()];
for (int i = 0; i < lager.size(); i++)
produkt[i] = lager.get(i).toString();
public String[][] produktListe(ArrayList Lagerlist) throws FileNotFoundException {
LagerList= readFile();
String[] Lager = new String[LagerList.size()];
for (int i = 0; i < LagerList.size(); i++){
Lager[i] = LagerList.get(i);
}
String[][] produkt = new String[LagerList.size()][6];
for(int i=0;i<Lager.length;i++) {
String[] HilfsArr= Lager[i].split(","); // Um es ähnlich wie beim Sudoku zu machen
for(int j=0;j<HilfsArr.length;j++) {
produkt[i][j]=HilfsArr[j];
if(i==0&&j==2)
produkt[i][j]="Gewicht"; //besser für den Druck
produkt[0][HilfsArr.length-1]="Bestand";
}
}
return produkt;
}
public static ArrayList<String> readFile() throws FileNotFoundException {
Scanner sc = new Scanner(new File("Shop/resources/produkte.csv"));
ArrayList<String> LagerList = new ArrayList<>();
while (sc.hasNextLine()) {
LagerList.add(sc.nextLine());
}
sc.close();
return LagerList;
}
}

View File

@ -3,15 +3,20 @@ package pack;
public class Produkt {
String name;
double preis;
double mwst;
public Produkt(String name, double preis) {
public Produkt(String name, double preis,double mwst) {
this.name = name;
this.preis = preis;
this.mwst= mwst;
}
public String toString() {
return this.name + " " + this.preis + " Euro.";
}
public double berechneMwst(){
return Math.round((this.preis-(this.preis/(1+this.mwst/100)))*100.0)/100.0;
}
public boolean equals(Object o) {
if (!(o instanceof Produkt))

View File

@ -1,36 +1,60 @@
package pack;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ShopTUI {
private static OnlineShop shop;
public static void main(String[] args) {
System.out.println("Willkommen beim THMA SuperStore!");
public static void main(String[] args) throws FileNotFoundException {
System.out.println("Willkommen zum DanDan-Shop!");
shop = new OnlineShop();
// TODO: Hauptmenü aufrufen, am besten in einer Schleife
boolean cont= true;
produktangebot(); // nur als Beispiel, bitte hier entfernen
while(cont){
cont=hauptmenü();
}
System.out.println("Auf Wiedersehen!");
}
public static void hauptmenü() {
public static boolean hauptmenü() throws FileNotFoundException {
Scanner sc = new Scanner(System.in);
String eingabe = sc.nextLine();
// TODO: hier ein erstes Menü mit bspw.
// Produktangebot
IO.println(" << H a u p t m e n ü >> ");
IO.println("1.Produktangebot");
IO.println("2.Produktsuche");
IO.println("3.Mein Warenkorb");
IO.println("4. Bestellungen");
IO.println("5. Exit ");
if(eingabe.equalsIgnoreCase("Produktangebot") || eingabe.equalsIgnoreCase("1"))
produktangebot();
else if (eingabe.equalsIgnoreCase("Produktsuche")|| eingabe.equalsIgnoreCase("2")){
} else if (eingabe.equalsIgnoreCase("Warenkorb")||eingabe.equalsIgnoreCase("Mein Warenkorb") ||eingabe.equalsIgnoreCase("3")) {
} else if (eingabe.equalsIgnoreCase("Bestellungen")|| eingabe.equalsIgnoreCase("4")) {
}
// Produktsuche
// Warenkorbanzeige
// evtl. Bestellung (kann auch über Warenkorb realisiert werden)
// Exit
else if(eingabe.equalsIgnoreCase("exit")|| eingabe.equalsIgnoreCase("5"))
return false;
return true;
}
public static void produktangebot() {
public static void produktangebot() throws FileNotFoundException {
System.out.println("Unser Produktangebot:");
shop.Start();
System.out.println();
String[] produkte = shop.produktListe();
/* String[] produkte = shop.produktListe();
for (int i = 0; i < produkte.length; i++)
System.out.println((i+1) + ". " + produkte[i]);
System.out.println((i+1) + ". " + produkte[i]);*/
}
}

View File

@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class ProduktTest {
@Test
/* @Test
void testGesamtPreis() {
Produkt p1 = new Produkt("Wein", 4.99);
Produkt p2 = new Produkt("Wasser", 0.7);
@ -15,6 +15,13 @@ class ProduktTest {
wk.produktHinzufügen(p2);
assertEquals(5.69, wk.berechneGesamtpreis(), 0.001);
}*/
@Test
void testMwstPreis() {
Produkt p1 = new Produkt("Wein", 5.95, 19);
Produkt p2 = new Produkt("Kaugummi", 1.0, 2);
assertEquals(0.95, p1.berechneMwst());
assertEquals(0.02,p2.berechneMwst());
}
}

View File

@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.*;
class WarenkorbTest {
@Test
/* @Test
void testGesamtPreis() {
Produkt p1 = new Produkt("Wein", 4.99);
Produkt p2 = new Produkt("Wasser", 0.7);
@ -17,5 +17,5 @@ class WarenkorbTest {
assertEquals(5.69, wk.berechneGesamtpreis(), 0.001);
}
*/
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.