4114:Virus

  • public static final String EingabeEnde = "="


    ... //einlesen des/r string(s)
    ... //sonstiges


    if (Eingabe.equals(EingabeEnde)
    { .... //abbruchbedingung
    }


    hätte ich mal gesagt...

  • soviel ist mir ja schon klar...
    mein problem ist halt das ich die strings ja wo speichern muss.ich weiss aber nicht wieviel strings eingelesen werden.deshalb müsste ich halt den namen der speichervariable immer ändern(i.e eingabe1,eingabe2,...).wie mach ich das?

  • aso.. naja in der java.util gibts so ne Hashtable funktion mit der das gehen sollte, in die du einfach die substrings oder das was auch immer eingelesen wird speichern kannst, aber wie genau des funkt weiß i leider nimma, ich hab mir das damals von jemanden erklären lassen, weil ich ein ähnliches prob hatte...

  • Also, eigentlich kann ich dazu auch nicht mehr beitragen als "Vektor, oder Liste", aber ich frage mich gerade, wieso der Thread eigentlich '4114:Virus' heißt?

    '100 little bugs in the code, 100 bugs in the code. Fix one bug, compile it again: 101 little bugs in the code.
    101 little bugs in the code . . .'
    Continue until 0 Bugs reached...

  • danke.hier die angabe:
    Kurzbeschreibung:


    Die Verbreitung eines Virus / Wurms in einem Netzwerk soll simuliert werden.


    Allgemeine Hinweise:


    Das Beispiel dieser Runde ist objektorientiert und als package zu lösen. Nachdem Sie das Programm mittels Dialogprogramm abgegeben haben, gehen Sie zu einem Tutor. Der Tutor überprüft, ob Sie Ihr Programm spezifikationsgemäß programmiert haben.
    Unmittelbar nach der erfolgreichen Abgabe am Dialogprogramm können sie bereits die nächste Runde abholen.
    Sie haben Lösungen (und Spezifikationen) aus der 3. Runde von anderen Studenten erhalten. Testen Sie alle mitgelieferten Lösungen und wählen Sie eine Lösung aus, die Ihnen hinsichtlich Lesbarkeit, Programmierstil, Korrektheit und Verwendbarkeit am besten erscheint.
    Merken Sie sich die Lösungsnummer des ausgewählten Beispieles für die Abgabe. Diese Nummer müssen Sie bei der Abgabe angeben. Geben Sie nur jene Lösungsnummer an, die Sie auch wirklich ausgewählt haben.
    Erstellen Sie für alle Lösungen zu diesem Beispiel (siehe: "Abzugebende Files") ein File mit dem Namen <number>.txt. und schreiben in dieses File ein Review (=Kritik) zu der Lösung. Diese Reviews erhalten dann die TeilnehmerIn von dem/der die Lösung stammt. Beachten Sie das bitte bei der Form Ihrer Kritik.
    Sie können für die Lösung der gewählten Aufgabe eine oder mehrere Klassen programmieren. Die Klasse Main.java muß aber die Methode main enthalten. Weiters müssen alle anderen abgegebenen Klassenfiles in Verzeichnis virus vorliegen, Pfadangaben sind nicht gestattet.
    Achten Sie auf die korrekten Konventionen der Groß/Kleinschreibung bei Klassen und Methoden!
    Falls Ihre Lösung einen Exit Code zurueckliefert, so achten Sie darauf, dass dieser den Wert 0 hat. Bei allen anderen Werten können Probleme bei der Bewertung und in weiterer Folge unbeabsichtigte Punkteabzüge auftreten.
    Ihre Lösung darf nur genau jene Ausgabedaten liefern, die in der Spezifikation verlangt werden. Die Ausgaben Ihrer Lösung werden automatisch mit Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
    Testen Sie Ihre Lösung vor der Abgabe mit der mitgelieferten Eingabedatei. Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihrer Lösung mit der ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihre Lösung auch mit anderen Eingabedaten.
    Verwenden Sie nur das von uns mitgelieferten Package eprog für Ihre Ein/Ausgaben. Klassen, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.3.1_1) verwenden, können von uns nicht getestet werden und werden daher mit 0 Punkten bewertet!
    Schreiben Sie Ihre Klasse(n) möglichst allgemein und kommentieren Sie diese gut. Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation. Damit erhöhen Sie Ihre Chancen, daß andere Studenten in der nächsten Runde Ihre Lösung wählen und Ihnen damit zu Zusatzpunkten verhelfen!


    Aufgabenbeschreibung:


    Die Aufgabe besteht darin, die Verbreitung eines Virus zu simulieren. Die Eigenschaften des Virus sind folgende: Es gibt zwei Arten von Computern: anfällige und nicht- anfällige. Trifft der Virus auf einen anfälligen Computer, so ist dieser infiziert. Der Virus verschickt sich dann per "email" an alle Adressen im "Adressbuch". Als Synonyme/ Symbole für email-Adressen verwendet das Programm Identifikationsnummern, also Integer, die jeden Computer definieren (Jeder Computer hat genau eine Nummer.)


    Eingabedaten:


    Zuerst muss das Netzwerk definiert werden. Lesen Sie dazu alle beteiligten Computer in Form von Strings ein. Diese Strings sollen Befehlssequenzen enthalten, die wie folgt definiert sind: x(a,b,c,d)


    x steht für die Identifikationsnummer des neu definierten Computers als Integer. In runden Klammern folgt das "Adressbuch" (a,b,c,d), eine Auflistung von Computer- identifikationsnummern getrennt durch Beistriche. Jedes Adressbuch muss mindestens einen Eintrag enthalten. Jeder Computer darf nur einmal definiert werden und sich nicht selbst im "Adressbuch" enthalten.


    Nachdem alle Computer definiert sind, wird bestimmt, welche Computer anfällig sind für diesen Virus. In eckigen Klammern stehen, durch Beistriche getrennt, alle jene Computer- nummern, die den Virus weitersenden. (mindestens zwei) [a,b,c,d,e] Am Ende folgt in geschwungenen Klammern, der Computer, von dem aus die Infektion startet. {x} Abgeschlossen wird das Einlesen durch das Zeichen "="


    Ausgabedaten:


    Ausgegeben werden sollen die Nummern aller infizierter Computer in wertaufsteigender Reihenfolge, getrennt durch Beistriche. Ist kein Computer betroffen, soll das Zeichen "0" ausgegeben werden. Danach soll ein Zeilenvorschub folgen.


    Fehlerbehandlung:


    Sämtliche Eingabedatensätze sind immer vollständig einzulesen. Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt. Waren die eingegebenen Daten inhaltlich nicht korrekt, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.


    Beispiele:


    Eingabedaten


    1(2,3) 5(4) 4(3,2) 3(2,4) 2(1,3) [1,3,4,5] {5} =




    1(2,3,4,7) 2(1,3,5) 3(1) 4(1,3) 5(4,7) 6(4,5,7) 7(1,5,6) [2,3,4,5,6] {1} =




    Ausgabedaten


    3,4,5




    0

  • sodale hab das ding fertig. die ganzen checks ob die eingabe stimmt hab ich mal weg gelassen aber die ausgabe is richtig denk ich :)
    zumindest funken die 3 bspe. Bin schon auf deine lösung gespannt, es ist zwar recht leicht aber es gibt viele möglichkeiten das prog zu realisieren.
    Also wenn du dein prog fertig hast post ich meins :D

  • naja,bei mir is das problem das ich noch immer bei der eingabe festhäng...
    und ich hab auch ned allzu viel zeit weil bis montag muss ich 10 mathebeispile komplet rechnen und auch noch für die prüfungen lernen...
    deshalb würd ich mich freuen wenn du dein programm posten könntest damit ich mal anschauen kann...