Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich brauche irgendwie eine Lösungshilfe oder ein paar gute Tipps, wie ich folgendes Problem lösen kann.

Es geht um die Erstellung eines Telefonleitfadens, wie sie in Callcentern benutzt werden.

Ich habe die Erstellung eines Leitfadens bereits fertig, aber danach es soll dann geprüft werden, ob dieser Leitfaden tatsächlich bei jedem möglichen Weg zu einem Ende-Baustein kommt.

So sieht es verkürzt aus:

Beginn bei Start:

START: Hallo mein Name ist X, dürfen wir Ihnen einige Fragen stellen?

Ja -> weiter mit Q1

Nein -> weiter mit Q2

Q1: Gibt es bei Ihnen Schnupfen in der Belegschaft?

Ja -> Q3

Nein -> Q4

Q2: Ok, tschüss!

-> ENDE

Q3: Wieviele haben etwa Schnupfen?

Mehr als 10 -> Q5

Mehr als 50 -> Q6

Mehr als 100 -> Q7

Q4: Herzlichen Glückwunsch, dann brauche ich auch nichts weiter wissen!

-> ENDE

usw...

Ein Baustein kann also immer mehrere Optionen und Verzweigungen haben. Ist auch möglich dass man zu einem vorhandenen Baustein zurückspringt usw.

Überprüft werden muss also ob der Leitfaden nach Fertigstellung valide ist und gerade bei komplexen Leitfäden nicht in einer Endlosschleife hängenbleiben kann. Ich seh den Wald vor lauter Bäumen nicht mehr und brauche irgendwie ein paar Pseudocodefetzen oder sowas damit ich einen Denkanstoß habe, derm ich endlich mal weiterbringt.

Viele Grüße

Tom

Geschrieben

Hallo,

der Fall den du beschreibst ist schon was ziemlich kniffeliges, aber nach kurzem Überlegen liegt die Lösung auf der Hand. Du mußt bei der ersten Frage beginnend immer alle Childs durchlaufen und dabon dann wieder alle childs usw. (eine Rekursion bietet sich an). Dabei musst du immer schön prüfen ob der Knoten gleich dem Knoten, von dem du losgelaufen bist ist. Falls dies der Fall sein sollte ist ein Kreisschluss vorhanden!

Irgendwie sowas:



public boolean checkNetz(Netz netz) throws Exception {


    Array knoten = netz.getKnoten();


    for ( int i = 0 ; i < knoten.count() ; i++ ) {

        Knoten knot = knoten.getObject(i);


        boolean check =  checkKnoten(knot, knot.getChilds());


        if ( !check ) {

            return false;

        }

    }

}


public boolean checkKnoten( Knoten parent, Array childs) throws Exception {


    for ( int i = 0 ; i < childs.count() ; i++) {

        Knoten knot = childs.getObject(i);


        if ( knot == parent ) {

            return false;

        }


        checkKnoten( parent , knot.getChilds());


    }


    return true;

}


Müsste grob passen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...