Hilfe gesucht. [TUI,XML] Hoffnunsloser Fall

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ansta
User
Beiträge: 1
Registriert: Freitag 1. März 2013, 19:58

Hallo liebes Python Forum Team.

Bin zur Zeit mit meinem Uni Stoff total überfordert und komme nicht weiter mit den Hausaufgaben.
Abgabe Termin 12.03.
Habe schon mehrere Tage dran gearbeitet und zwar erfolgslos.
Zwar kam was zu stande aber leider, laut Prof, total falsch.
Wäre sogar bereit den jeningen eine vergütung kommen zu lassen, als entschädigung.
Bin auf eure HIlfe angewiesen.

Code: Alles auswählen

Aufgabenstellung:Es soll eine Thesaurussoftware erstellt werden. Dazu muss Python genutzt werden.

1.  TUI um alle Programmfunktionen zu steuern 
2.  Daten Im- und Export mit mindestens folgenden Formaten: XML, CSV, JSON 
3.  Thesaurusaufbau und Thesauruspflege (einfügen, löschen, bearbeiten)  
4.  Vermeidung logischer Fehler (z.B. nicht identischer OB und UB zu einem Deskriptor; Zyklen 
vermeiden; keine doppelten Deskriptoren;  Nicht-Deskriptor darf  ausschließlich Verweis auf 
Deskriptor haben; automatische Erweiterung vorhandener Deskriptorsätze, wenn neue 
Informationen eingefügt werden; automatisches Löschen aller Verweise auf einen zu löschenden 
Deskriptor)

Generelle Anforderungen: 
•  Erstellung eine kurze (max. 1 Seite) Installationsanleitung (Stichpunkte reichen) 
•  Quelltext kommentieren 
•  Bibliotheken dürfen genutzt werden, müssen aber in Installationsanleitung erwähnt werden 
•  Programm muss unter Windows lauffähig sein 
•  Verwendung von OOP

dazu habe ich das hier bearbeitet was natürlich total falsch war.

Python Quelltext:

Code: Alles auswählen

import sys

def leer():
    eingabe = raw_input("Bitte geben Sie eine weitere Zahl an:")
    print "\n"
    try:
        eingabe = int(eingabe)
    except ValueError:
        print 
        
    if eingabe == 1:
        print "BT [education]"+ "\n"
        print "RT adult literacy" + "\n" "RT adults"+ "\n" "RT basic skills"+ "\n" "RT community colleges"+ "\n" "RT continuing education"+ "\n" "RT high school euqivalency programs"
        print "RT literacy education"+ "\n" "RT postsecondary education"+ "\n" "RT professional development"+ "\n" "RT training"+ "\n" "RT vocational"+"\n"+"\n"+"\n"+"\n"

    elif eingabe == 2:
        print "BT [literacy]" + "\n"
        print "RT adult education" + "\n" "RT adult reading programs"+ "\n" "RT adults"+ "\n" "RT functional literacy"+ "\n" "RT literacy education"+ "\n" "RT reading skills"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 3:
        print "BT [offenders]" + "\n"
        print "RT adults" + "\n" "RT correctional facilities (adults)"+ "\n" "RT adults"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 4:
         print "BT [reading programs]" +"\n" 
         print "RT adult literacy" + "\n" "RT functional literacy"+ "\n" "RT literacy education"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 5:
         print "RT divorce" + "RT marital instability" + "\n" "RT marital relations"+ "\n" "RT marriage"+ "RT sexualbehavior"+ "\n"+"\n"+"\n"+"\n"


    elif eingabe == 6:
         print "SN [Refers to person age 18 or older]" + "\n"
         print "BT [age groups]" + "\n"
         print "RT adult children" + "\n" "RT adult education" + "\n" "RT adult literacy" + "\n" "RT adult offenders" + "\n" "RT family life" + "\n" "RT fathers"  + "\n" "RT mothers" + "\n" "RT older adults" + "\n" "RT parents"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 7:
         print "NT political advertising" + "\n" "NT public service advertising"+ "\n"
         print "RT consumer advocates" + "\n" "RT consumers" + "\n" "RT marketing" + "\n" "RT mass media" + "\n" "RT media influence" + "\n" "RT persuasion" + "\n" "RT public relations" + "\n" "RT publicity" + "\n" "RT retail industry" + "\n" "RT social influences"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 0:
        print "Danke für ihre Aufmerksamkeit"
        sys.exit()    
    else:
        print "Keine gueltige Eingabe! Bitte erneut versuchen!"
    leer()
    
def show_menu():
    print "======================================================== Menu ========================================================"
    print "     Provision of learning opportunites to adults in professional, vocational, personal, and social development. "
    print "                                                   [1]. adult education"
    print "                                                   [2]. adult literacy "
    print "                                                   [3]. adult offenders"
    print "                                                   [4]. adult reading programs"
    print "                                                   [5]. adultery"
    print "                                                   [6]. adults"
    print "                                                   [7]. advertising"
    print "                                                   [0].  Beenden  "
    eingabe = raw_input("Bitte geben Sie ihre Zahl an,unter der die Synonyme zum Thema Erziehung und Entwicklung von Heranwachsenden zu finden sind:")
    print "\n"
    try:
        eingabe = int(eingabe)
    except ValueError:
        print 
        
    if eingabe == 1:
        print "BT [education]"+ "\n"
        print "RT adult literacy" + "\n" "RT adults"+ "\n" "RT basic skills"+ "\n" "RT community colleges"+ "\n" "RT continuing education"+ "\n" "RT high school euqivalency programs"
        print "RT literacy education"+ "\n" "RT postsecondary education"+ "\n" "RT professional development"+ "\n" "RT training"+ "\n" "RT vocational"+"\n"+"\n"+"\n"+"\n"

    elif eingabe == 2:
        print "BT [literacy]" + "\n"
        print "RT adult education" + "\n" "RT adult reading programs"+ "\n" "RT adults"+ "\n" "RT functional literacy"+ "\n" "RT literacy education"+ "\n" "RT reading skills"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 3:
        print "BT [offenders]" + "\n"
        print "RT adults" + "\n" "RT correctional facilities (adults)"+ "\n" "RT adults"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 4:
         print "BT [reading programs]" +"\n" 
         print "RT adult literacy" + "\n" "RT functional literacy"+ "\n" "RT literacy education"+"\n"+"\n"+"\n"+"\n"


    elif eingabe == 5:
         print "RT divorce" + "RT marital instability" + "\n" "RT marital relations"+ "\n" "RT marriage"+ "RT sexualbehavior"+ "\n"+"\n"+"\n"+"\n"


    elif eingabe == 6:
         print "SN [Refers to person age 18 or older]" + "\n"
         print "BT [age groups]" + "\n"
         print "RT adult children" + "\n" "RT adult education" + "\n" "RT adult literacy" + "\n" "RT adult offenders" + "\n" "RT family life" + "\n" "RT fathers"  + "\n" "RT mothers" + "\n" "RT older adults" + "\n" "RT parents"


    elif eingabe == 7:
         print "NT political advertising" + "\n" "NT public service advertising"+ "\n"
         print "RT consumer advocates" + "\n" "RT consumers" + "\n" "RT marketing" + "\n" "RT mass media" + "\n" "RT media influence" + "\n" "RT persuasion" + "\n" "RT public relations" + "\n" "RT publicity" + "\n" "RT retail industry" + "\n" "RT social influences"


    elif eingabe == 0:
        print "Danke für ihre Aufmerksamkeit"
        sys.exit()    
    else:
        print "Keine gueltige Eingabe! Bitte erneut versuchen!"
    leer()

if __name__ == "__main__":
    show_menu()
dachte das es Richtig wäre und natürlich den Prof direkt angeschrieben und nachgefragt: dazu bekam ich diese antwort:

Die XML-Datei soll von Python einfach komplett eingelesen und verarbeitet werden. Da das Format durch die XML-Datei eindeutig vorgegeben ist, besteht keine Notwendigkeit die Einträge manuell zu bearbeiten oder zu prüfen. Die eingelesenen Daten sollen dann in einer von Ihnen festzulegenden Struktur abgespeichert werden, um für die weitere Programmfunktionalität verwendet zu werden.

Die Deskriptorsätze sollen nicht manuell gebaut werden (so hatte ich Sie jetzt verstanden), sondern durch eine Funktion von Python ausgegeben werden. D.h. Sie geben beispielsweise einen Deskriptor in das Programm ein und bekommen dann den dazugehörigen Deskriptorsatz zurückgeliefert. Die Logik dazu soll in Python implementiert werden, so dass auch hier keine manuelle Arbeit erforderlich ist.


Als ich das gelesen habe war ich total baff und komplett durcheinander und wusste nicht weiter.

subject.xml

Ich danke euch für die Aufmerksamkeit und freuen mich auf eure Hilfe.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Wofür brauchst Du das denn? Abschlussarbeit für einen bestimmten Kurs?
Der von Dir gezeigte Code ist leider meilenweit von den Anforderungen entfernt. Ich denke nicht, dass Du die für die Aufgabe nötigen Konzepte in der Kürze der Zeit erarbeiten und erfolgreich bis zum 12.03. anwenden kannst. Der Niveauunterschied ist leider viel zu groß. Sorry.

Das mit dem Geld habe ich überhört :roll:
BlackJack

@ansta: Ich würde mich da jerch anschliessen. Ich frage mich wie man baff sein kann, dass das Programm nicht die Aufgabenstellung erfüllt. Laut Punkt 2 soll man Daten im- und exportieren können. In sogar in drei Formaten. Der dritte Punkt ist der Aufbau und die Pflege eines Thesaurus, also dass man mit einem leeren anfangen und des speichern, oder Bestehende laden, bearbeiten, und speichern kann. Dabei soll (4.) auf logische Fehler geprüft werden. Nichts davon ist in dem Quelltext enthalten. Da sind rein statische Daten in Form von Programmstruktur und in ``print``-Anweisungen und diese Daten können nur ausgegeben werden.

Bei den generellen Anforderungen stehen Kommentare und, wohl nicht ganz unwichtig, objektorientierte Programmierung (OOP). Von beidem ist in dem Quelltext auch nichts zu sehen.

Du müsstest bis zum 12. Python bis einschliesslich Objektorientierung drauf haben, also sowohl die Sprachmittel, die Python dafür zur Verfügung stellt, als auch das Konzept OOP ganz allgemein. Und XML allgemein um aus der Referenzdatei mit den Daten und der enthaltenen Dokumentbeschreibung im DTD-Format (Document Type Definition) und hoffentlich schon vorhandenem Domänenwissen über den Inhalt (und eine Idee was die Tagnamen, beziehungsweise die Werte dahinter, für eine Bedeutung haben), zusammen mit den zu erwartenden Operationen auf den Daten, einen Entwurf einer Datenstruktur erstellen zu können. Und natürlich das Programm implementiert haben.

Das ist IMHO nicht schaffbar. Du solltest vielleicht mit Deinem Prof reden und Dein Problem schildern und abklären welche Punkte wie priorisiert sind und was minimal für welche Note oder für ein Bestehen erforderlich ist und dann versuchen so weit zu kommen wie es geht, und hoffen, dass es reicht.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo ansta,
ich möchte mich den beiden Vorschreibern und auch Deinem Titel anschließen: „Hoffnungsloser Fall“ Bis Du das Wissen, was zur Bearbeitung der Aufgabe nötig ist, angeeignet hast, brauchst Du deutlich länger als die 10 Tage bis zur Abgabe. Die Aufgabe ist anspruchsvoll, Dein Programmierniveau, um es deutlich zu sagen, geht nicht weit über die erste Kurswoche hinaus.
Dein Programmcode zeigt nicht eines der geforderten Konzepte. Als Korrekteur könnte ich höchstens einen Gnadenpunkt vergeben, weil die Sprache die richtige ist und sich keine Syntaxfehler eingeschlichen haben.
Ich weiß nicht, was die Inhalte Deines Kurses sind aber XML, Datenstrukturen, Objektorientierung sind bestimmt darin vorgekommen. Du mußt Dir also als erstes die Frage stellen, wie die abstrakte Darstellung der Daten aussieht, wie man diese in Klassen packen kann, welche Methoden diese Klassen am besten zur Verfügung stellen. Erst wenn das alles klar ist, kannst Du daran gehen, dieses Modell in Python zu übersetzen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Sirius3 hat geschrieben:Dein Programmcode zeigt nicht eines der geforderten Konzepte. Als Korrekteur könnte ich höchstens einen Gnadenpunkt vergeben, weil die Sprache die richtige ist und sich keine Syntaxfehler eingeschlichen haben.
Wir hätten dafür aber einen offensichtlichen Logikfehler durch unnötige Rekursion.

Fakt ist, dass nicht nur absolute Grundlagen in Python fehlen, sondern auch schon die Ideen und Konzepte vorher. Die Aufgabenstellung ist komplett nicht verstanden worden. Es ist daher auch völlig sinnlos jetzt ein fremdgeschriebenes Programm hinzuklatschen nur um zu bestehen. Das fehlende Wissen wird einen immer weiter verfolgen.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@ansta: Zum Thema Vergütung vielleicht noch der Hinweis: Auch wenn Dir jemand unvergütet die Aufgabe soweit löst, dass sie nach Abgabe die Sicht des Korrektors übersteht, so kommt nach dieser Aufgabe die nächste Aufgabe. Und irgendwann eine Prüfung. Du wirst es also selbst können müssen.

Es kann an der Uni sehr schnell passieren, dass einem der Stoff davon rennt. Das ist ein typischer Studium-Anfängerfehler: das hole ich schon nach. Das klappt zumeist nicht und resultiert in der Wiederholung des Kurses.
BlackJack

Nach einem Blick in die XML-Datei können wir Graphen-Algorithmen noch zum Vorwissen hinzufügen. Denn die Daten beschreiben eine Graphen mit (teilweise) gerichteten Kanten die man in verschiedene Arten einteilen kann und laut Punkt 4 der Aufgabenstellung sollen für bestimmte Kantenarten Kreise vermieden werden. Also muss man mindestens finden von Kreisen in einem Graphen implementieren.

Irgendwie bin ich ja schon neugierig wie so ein grosses Missverhältnis zwischen gezeigtem Wissen durch den Quelltext und Anspruch der Aufgabenstellung entstehen kann.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Darauf zielte meine Eingangsfrage ab - die Aufgabenstellung setzt etliche Konzepte als Vorwissen voraus und führt diese zusammen. Das ist definitiv mehr als Übungsserie xy. Denkbar wäre noch ein kumulativer Ansatz, der die Lösungen vorheriger Aufgaben mit einbezieht und deren Code als Grundlage hat.
Selbst ein gestandener Programmierer, dem die geforderten Konzepte aus dem Ärmel purzeln, wäre mit der Umsetzung eine Weile beschäftigt.

@ansta:
Welcher Zeitrahmen war denn für die Arbeit geplant? Du hast die Aufgabe doch sicherlich nicht erst seit gestern? Wäre schön, was zu den Hintergründen zu erfahren, vorallem wieviel Kursarbeit dem vorausgegangen ist. So hätte ich z.B. keine Ahnung von den Abkürzungen in der Aufgabenstellung, die von einen gewissen Vorwissen bezgl. thesaurierter Datenhaltung auszugehen scheinen. Ohne dieses Vorwissen wird die XML-Datei kryptisch. Das Wissen ist Euch doch sicherlich vermittelt worden?
Antworten