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;
}
}
}
}
´´´