SirTom Geschrieben 31. Oktober 2007 Geschrieben 31. Oktober 2007 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 Zitieren
RIGO Geschrieben 31. Oktober 2007 Geschrieben 31. Oktober 2007 Hi, hast du schon mal daran gedacht ein PAP oder Strucktogramm für das problem zu erstellen??? Gruß RIGO Zitieren
P3AC3MAK3R Geschrieben 31. Oktober 2007 Geschrieben 31. Oktober 2007 Falls Dir "PAP" nichts sagen sollte: Programmablaufplan - Wikipedia Zitieren
Toupman Geschrieben 31. Oktober 2007 Geschrieben 31. Oktober 2007 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. Zitieren
Empfohlene Beiträge
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.