Begleitmaterial Abitur 2024

Lösung der Aufgabe

Modellierung

Implementation

´´´java Zagros

public class ShopServer extends Server {
    List<Bestellung> list = new List<>();
    TShirt tshirt;
    public ShopServer(int pPortnummer) {
        super(pPortnummer);
    }

    public void processNewConnection(String pClientIP, int pClientPort) {
    }

    public void processMessage(String pClientIP, int pClientPort, String pMessage) {
        String[] nachrichtTeil = pMessage.split(":");
        if (nachrichtTeil[0].equals("TSHIRT")) {
            this.send(pClientIP, pClientPort, "Die Groesse ist" + nachrichtTeil[1] + ", die Farbe ist " + nachrichtTeil[2] + ". Bitte bestätigen Sie die Bestellung.");
            tshirt = new TShirt(nachrichtTeil[1], nachrichtTeil[2]);
        }
        else if (nachrichtTeil[0].equals("BESTAETIGUNG")) {
            if (nachrichtTeil[1].equals("ja")) {
                this.send(pClientIP, pClientPort, "Vielen Dank für Ihre Bestellung.");
                list.append(new Bestellung(tshirt));
            } else if (nachrichtTeil[1].equals("nein")) {
                closeConnection(pClientIP, pClientPort);
            } else {
                this.send(pClientIP, pClientPort, "Bitte geben Sie ja oder nein ein.");
            }}
        else if(nachrichtTeil[0].equals("ABMELDEN"))
            {
                closeConnection(pClientIP, pClientPort);
            }
        else if(nachrichtTeil[0].equals("WARENKORB")){
            warenkorb();
        }
        else{
            this.send(pClientIP, pClientPort, "Bitte korrigieren Sie Ihre Eingabe.");
        }
    }
    public void warenkorb(){
        for(list.toFirst(); list.hasAccess(); list.next()){
            System.out.println("Farbe: " + list.getContent().getT().getFarbe() + ", " + "Groesse: "+ list.getContent().getT().getGroesse());
        }
    }

    public void processClosingConnection(String pClientIP, int pClientPort) {

    }
}


import java.util.Scanner;

public class ShopClient extends Client{
    Scanner sc;
    Bestellung b;
    public ShopClient(String pServerIP, int pServerPort) {
        super(pServerIP, pServerPort);
    }

    @Override
    public void processMessage(String pMessage) {
        System.out.println(pMessage);
    }
    public void groesseFarbeWaehlen(){
        System.out.print("Welche Groesse: ");
        String groesse = eingabe();
        System.out.print("Welche Farbe: ");
        String farbe = eingabe();
        this.send("TSHIRT: "+ groesse+":"+farbe);
    }
    public String eingabe(){
        sc = new Scanner(System.in);
        String eingabe = sc.nextLine();
        return eingabe.toLowerCase();
    }
    public void bestaetigen() throws Exception {
        System.out.println("Willst du die Bestellung bestätigen?");
        String eingabe = eingabe();
        if(eingabe.equals("ja")){
            this.send("BESTAETIGUNG:ja");

        }
        else if(eingabe.equals("nein")){
            this.send("BESTAETIGUNG:nein");
        }
        else{
            this.send("BESTAETIGUNG:");
        }
    }
    public void abmelden(){
        this.send("ABMELDEN");
    }
    public void warenkorb(){
        this.send("WARENKORB");
    }
}


public class Bestellung
{
    boolean bestaetigt;
    int idnr;
    TShirt t;

    public Bestellung(TShirt pWare)
    {
        t = pWare;
    }

    public TShirt getT(){
        return t;
    }
    public boolean isBestaetigt() {
        return bestaetigt;
    }

    public void setBestaetigt(boolean bestaetigt) {
        this.bestaetigt = bestaetigt;
    }

    public int getIdnr() {
        return idnr;
    }

    public void setIdnr(int idnr) {
        this.idnr = idnr;
    }
}


public class TShirt
{
    String groesse;
    String farbe;
    double preis;

    public TShirt(String pGroesse, String pFarbe)
    {
        groesse = pGroesse;
        farbe = pFarbe;
    }
    public String getGroesse() {
        return groesse;
    }

    public void setGroesse(String groesse) {
        this.groesse = groesse;
    }

    public String getFarbe() {
        return farbe;
    }

    public void setFarbe(String farbe) {
        this.farbe = farbe;
    }

    public double getPreis() {
        return preis;
    }

    public void setPreis(double preis) {
        this.preis = preis;
    }
}

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        ShopServer server = new ShopServer(12345);
        ShopClient client = new ShopClient("localhost", 12345);
        while(true) {
            client.warenkorb();
            Thread.sleep(1000);
            client.groesseFarbeWaehlen();
            Thread.sleep(1000);
            client.bestaetigen();
            Thread.sleep(1000);
            System.out.println("Willst du dich abmelden?");
            if(sc.next().toLowerCase().equals("ja")) {
                client.abmelden();
                System.out.println("Du hast dich abgemeldet");
                break;
            }
        }
    }
}

´´´