C++ Programmieraufgabe gegen Cash? (Bitte!...)



  • @Leon0402 Ich konnte seit zwei Wochen nicht aktiv mitmachen, weil es im Moment bei mir auch neben dem Studium einfach Probleme gibt und ich vor morgen nicht anfangen kann. Bin im Moment halt unterwegs und ich kann nur schlecht vom Handy aus programmieren. Und doch, ich kann eigentlich schon einiges. Nicht so gut, wie es derzeitig erwartet wird, aber das eben aus obigen Gründen. Ich poste die Aufgabe gleich, Moment.

    Was den Chat angeht: Stimmt, das habe ich eben auch gecheckt. Gibt zwar oben rechts ein Icon für Chats aber das ging wohl damals mal... Falls nicht anders geht gerne auch über Mail oder so.



  • Hier werden grundsätzlich keine Hausaufgaben gemacht für andere, auch nicht gegen Geld.

    Wenn du das zeitlich nicht mehr schaffst, wirst du evlt. gute Gründe haben, die dann sicherlich auch deine Uni / dein Dozent verstehen wird (grade wenn es Probleme außerhalb des Studiums sind). Von daher würde ich da dann mal den Kontakt suchen.
    Hast du dagegen das ganze selbst verschuldet wist du die Konsequenzen wohl tragen müssen. Nehme an das ganze ist eine Klausurersatzleistung, also wirst du wohl eine Nachprüfung dann machen müssen.

    Unabhängig davon helfen wir aber gerne, ganz ohne Geld, allerdings nur bei entsprechender Eigenleistung.



  • @Leon0402 Unser Dozent und seine Helfer sind leider nicht gerade die verständnisvollsten Menschen. Da haben andere auch schon gewisse Erfahrungen gemacht. Aber nein, es ist keine Klausurenersatzleistung. Also da wird nichts benotet. Es geht nur um das Erlangen eines Testates, das neben 8 weiteren Testaten für die Zulassung zur Klausur notwendig ist.

    Die Aufgabe lautet wie folgt:

    1. Schreiben Sie ein Programm, dass Zufallszahlen (Integer ,Wertebereich 1...999)schrittweise in eine einfach verkettete Liste einfügt: Menüoptionen - Benutzereingaben:
      'a': ein neues Element soll am Anfang der Liste eingefügt werden
      'e‘: ein neues Element soll am Ende der Liste eingefügt werden
      's‘: die gesamte Liste soll mit BubbleSort aufsteigend sortiert werden
      'i‘: ein neues Element soll sortiert in eine bereits aufsteigend sortierte Liste eingefügt werden (ohne diese nochmals komplett zu sortieren)
      'q‘: Programm verlassen
      Gehen Sie hierbei wie folgt vor:
      Schreiben Sie eine Funktion InsertAtBegin (int x)
      Schreiben Sie eine Funktion InsertAtEnd (int x)
      Schreiben Sie eine Funktion Insert Sorted (int x) (Einfügen eines neuen Elements in eine bereits sortiert vorliegende Liste)
      Für jede der zuvor genannten Funktionen fertigen Sie zunächst eine Handskizze der Datenstruktur an und welche Zeiger in welcher Reihenfolge gesetzt /verbogen werden müssen (die Handskizzen sind für die Testierung vorzulegen)
      Schreiben Sie eine Funktion PrintList, die den Listeninhalt zeilenweise auf dem Bildschirm ausgib t– rufen Sie diese Funktion immer nach jedem Menübefehl auf um unmittelbar das Resultat auf der Konsole auszugeben
      Schreiben Sie eine Funktion BubbleSort, die den Listeninhalt aufsteigend sortiert (beim Austausch zweier Elemente tauschen Sie nur die Dateninhalte zweier benachbarter Listenelemente, nicht aber die Listenelemente an sich).

    2. Kopieren Sie das Ergebnis von Aufgabe 3.1 in ein neues Projekt und ändern Sie die Datenstruktur auf eine doppelt verkettete Liste und passen Sie die Einfügefunktionen entsprechend an. Schreiben Sie eine zusätzliche FunktionPrintList_Reverse ,die den Listeninhalt von hinten nach vorne zeilenweise auf dem Bildschirm ausgibt – rufen Sie diese Funktion immer nach jedem Menübefehl nach FunktionPrintList auf, um die Korrektheit der Rückwärtsverkettung zu prüfen.



  • @EJason Und wenn man die Aufgabe zu spät abgibt, passiert was? Du wirst schon nicht aus dem Studiengang geschmissen werden ...



  • @Leon0402 Nein, ich werde nicht rausgeschmissen, aber ich darf die Klausur nicht mitschreiben. Dies hätte allerdings zu Folge, dass ich im kommenden Semester nur ein einziges Modul belegen kann, in dem ich dann eine Klausur schreiben kann 😕



  • @EJason Du könntest dich auch bei deinen Kommilitonen erkundigen, oder dich mit ihnen absprechen. Ich möchte dir nicht dazu raten, den Code zu kopieren und einfach abzuändern, da das wahrscheinlich auffallen könnte. Aber es gibt auch Dozenten, welche Aufgaben garnicht anschauen, sondern nur überfliegen. Schlimmer als garnichts abgeben kann es auch nicht sein. Ob es auffliegt oder du nichts abgibst in beiden Fällen musst du nächstes Semster nochmal ran. Also nen Versuch ist es wert.
    Aber sorry, dass ich dir nicht wirklich helfen kann.



  • @EJason Das wäre ja ein sehr komischer Studiengang, das kann ich kaum glauben. Es wird ja wohl nicht jedes Modul danach das Bestehen dieses Moduls verlangen?

    Wenn doch, dann musst du das wohl akzeptieren oder Prioritäten ändern und dich jetzt noch dran setzen. Hast ja noch ein bisschen Zeit und es sind ja nur 4 Funktionen, die du implementieren musst und vermutlich die linked list selbst (oder darfst du std::list) verwenden?
    Das Forum steht dir mit Rat und Tat zur Seite 😉

    P.S. Du bist nicht der erste der eine Linked list oder einen bubble sort implementieren muss oder ein kleines Konsolen Menü. Wenn deine C++ Kenntnisse, wie du sagst, also nicht so schlecht sind (Pointer sagen dir was?) solltest du doch von Code Schnippseln aus dem Internet auch Gebrauch machen können.


  • Mod

    Ich bezweifle, dass ich das selber in der Zeit zu 100% lösen könnte (jedenfalls mit dem eigenen Anspruch an Codequalität), alleine wegen des Umfangs der Aufgabenstellung. Und das obwohl ich das von der Schwierigkeit her wahrscheinlich ohne Zögern direkt runterschreiben könnte. Das würde zumindest eine sehr lange Nacht werden. Wenn man das aber nicht direkt runterrattern kann und noch lernen muss, ist die Aufgabe bis morgen nicht mehr lösbar.

    PS: Dies ist natürlich ein Psychotrick, weil sich jetzt Leute gefordert fühlen, schnell eine Lösung zu präsentieren 😃



  • @SeppJ
    Ich hab selber nicht studiert, aber ich könnte mir vorstellen, dass man, wenn man solch eine Aufgabe gestellt bekommt, doch vielleicht im Laufe des Studiums eine Liste programmiert hat (programmieren hat müssen)?
    Ebenso ein einfaches Menü auf der Konsole ...
    Dann muss man doch letztendlich nicht mehr alles from scratch machen?

    Aber ja, trotzdem:
    So ein paar Stunden sind sicherlich knapp.
    Bekommt man so eine Aufgabe erst einen Tag vorher, oder pennt man bis einen Tag vorher und sucht sich dann ein paar Doofe?



  • @EJason
    Und erklären muss du deine eingereichte Lösung dann nicht noch?
    Und deine Uni-ITler stört es auch nicht, wenn sie hier sehen, dass du deine Arbeit "delegiert" hast?
    Und bei deinen Kommilitonen gibts keinen, der schon eine Lösung hat - und sie dann allen anderen Notleidenden "spendiert"?

    Fachlich ist die Aufgabe vollkommener Schrott (sie meinen C sagen aber C++; verk.Listen sind grundsätzlich Schrott,...), der IT-IQ deiner Aufgabensteller tendiert gegen Null - ich weiß, das hilft dir jetzt auch nicht weiter, aber eigentlich war die Vehemenz unseres Mods hier gegen den Missbrauch dieses Forums als Hausaufgabenlösungs-Center auch schon mal deutlich größer ausgeprägt.

    Da ich grundsätzlich keine verk.Listen programmiere, werde ich dir nicht helfen.



  • @SeppJ Meinst du? Mal deinen Anspruch weggenommen ... ne basic Implementierung einer verketten Liste ist doch schnell getan, aus dem Internet kopiert ... ich rede hier von sowas: https://www.geeksforgeeks.org/linked-list-set-1-introduction/

    InsertAtBegin, insertAtEnd, insertSorted sollten wohl sehr gut machbar sein ... halt ein Node an der richtigen Stelle platzieren.

    Den Bubblesort kopiert man sich von Wikipedia oder so und passt ihn so an das er mit der Liste klappt.

    Die Funktion "print" ist beim Basis setup schon mit dabei 😉

    Alternativ kann man auch 2min mehr in ne google Suche investieren. https://www.codementor.io/@codementorteam/a-comprehensive-guide-to-implementation-of-singly-linked-list-using-c_plus_plus-ondlm5azr
    Boah verkette Liste mit print, insert start/middle/end schon am Start. Ist der Code super schönes modernes C++, wohl kaum. Reicht es um eine 4.0 zu bekommen, um somit das Modul zu bestehen, vermutlich schon. Dazu muss es imo nur funktionieren, egal wie, eventuell nicht mal das.



  • Danke mehr oder weniger für eure Antworten. Ich schätze wohl, dass ich die Aufgabe schleifen lassen werde, da ich das zeitlich ohnehin nicht gebacken bekomme.

    Wegen den Modulen im Folgesemester:
    Ich darf die leider nur dann belegen, wenn ich alle Module des zweiten Semesters (Objektorientierte Programmierung gehört da dazu) bestanden habe.


  • Mod

    @Leon0402 sagte in C++ Programmieraufgabe gegen Cash? (Bitte!...):

    @SeppJ Meinst du? Mal deinen Anspruch weggenommen ... ne basic Implementierung einer verketten Liste ist doch schnell getan, aus dem Internet kopiert ... ich rede hier von sowas: https://www.geeksforgeeks.org/linked-list-set-1-introduction/

    InsertAtBegin, insertAtEnd, insertSorted sollten wohl sehr gut machbar sein ... halt ein Node an der richtigen Stelle platzieren.

    Den Bubblesort kopiert man sich von Wikipedia oder so und passt ihn so an das er mit der Liste klappt.

    Die Funktion "print" ist beim Basis setup schon mit dabei 😉

    Alternativ kann man auch 2min mehr in ne google Suche investieren. https://www.codementor.io/@codementorteam/a-comprehensive-guide-to-implementation-of-singly-linked-list-using-c_plus_plus-ondlm5azr
    Boah verkette Liste mit print, insert start/middle/end schon am Start. Ist der Code super schönes modernes C++, wohl kaum. Reicht es um eine 4.0 zu bekommen, um somit das Modul zu bestehen, vermutlich schon. Dazu muss es imo nur funktionieren, egal wie, eventuell nicht mal das.

    Abgesehen davon, dass mein eigener Anspruch für solch eine Aufgabe eine 1+ mit Sternchen wäre, so bestätigen die Links doch nur meine Vorurteile gegen Abschreiben von schattigem Internetcode:

      void insert_position(int pos, int value)
      {
        node *pre=new node;
        node *cur=new node;
        node *temp=new node;
        cur=head;
        for(int i=1;i<pos;i++)
        {
          pre=cur;
          cur=cur->next;
        }
        temp->data=value;
        pre->next=temp;	
        temp->next=cur;
      }
    

    Setzen, Sechs!



  • @SeppJ sagte in C++ Programmieraufgabe gegen Cash? (Bitte!...):

    Abgesehen davon, dass mein eigener Anspruch für solch eine Aufgabe eine 1+ mit Sternchen wäre, so bestätigen die Links doch nur meine Vorurteile gegen Abschreiben von schattigem Internetcode:

      void insert_position(int pos, int value)
      {
        node *pre=new node;
        node *cur=new node;
        node *temp=new node;
        cur=head;
        for(int i=1;i<pos;i++)
        {
          pre=cur;
          cur=cur->next;
        }
        temp->data=value;
        pre->next=temp;	
        temp->next=cur;
      }
    

    😢



  • @hustbaer Jetzt wissen wir wenigstens sicher warum 640k niemals genug sein konnte.



  • Mir geht gerade durch den Kopf, wenn man so in Zeitnot ist kann man
    ja die Lösung zusammen googeln...

    Ich meine Bublesort in c++ , Liste in c++
    der Rest sollte mit rudimentären Kenntnissen von C++ hinhauen

    P.S. Ich kenne solche Testat Arbeiten recht gut... Und meistens hatten die Profs nichts dagegen es später abzugeben, wenn man einen Grund vorweisen konnte.



  • Ja das hatte ich ja gesagt. Das man bei den Internet Links nicht so den tollsten C++ Code findet, habe ich ja nicht angezweifelt. Aber ihr geht es offensichtlich um das Zugelassen werden für eine Klausur, nicht um einen Code Schönheitspreis.



  • Ich weiss nicht ob dazu Code mit einem super-eindeutigen Memory Leak reicht. Noch dazu wenn es klar darauf hindeutet dass der Autor die Sprache überhaupt nicht verstanden hat.



  • @hustbaer sieht genauso schaebig aus, wie das c (mit std::cout) was ueberall gelehrt wird



  • #include <forward_list>
    using my_list = std::forward_list<int>;
    

    done.


Anmelden zum Antworten