Problem mit C-Programm!!!

  • Hallo Leute,

    ich arbeite momentan an einem Warenwirtschafts- und Verwaltungssystem, dass ich für die UNI in einem Projekt erstellen muss. Ich komme an einer Teilaufgabe nicht weiter und würde gerne um Hilfe bitten. Das Programm schreibe ich auf einem Unix System in der Konsole. Das Programm hänge ich in den Anhang. Ich bin offen für weitere Anmerkungen bzw. Verbesserungen.

    Ich muss mein Hauptprogramm um zwei neue Menüpunkte erweitern "Kunden suchen" und "Produkt suchen". Dafür brauche ich vier neue Funktionen für den Umgang mit Strings.

    Die Funktion int equal (char x[], char y[]); soll zwei Zeichenketten solange vergleichen, bis eine Zeichenkette zuende ist oder bis eine Ungleichheit auftritt.

    Die Funktion int einlesen (char[x], int laenge); soll in einer Schleife solange Buchstaben von der Tastatur in ein char Array schreiben, bis ein"\n" eingegeben wird oder die Länge "laenge" erreicht wird. Dafür soll man mit "getc()" gearbeitet werden. Diese Funktion soll dann alle scanf()-Aufrufe für Strings ersetzen.

    Die Funktion int suche_kunde(Kunde* k, int akt_anz); soll in meiner Kundendatenbank nach einem einzugebenden Namen oder Vornamen suchen. Mit einlesen() und eqaul() soll nach dem Kunden gesucht werden und akt_anz soll den Wert mit der aktuellen Anzahl von Einträgen in der Datenbank übergeben.

    Die Funktion suche_produkt(Produkt* p, int akt_anz); soll entsprechend das gleiche wie die vorherige Funtkion für meine Produkte erledigen.

    Ich bin leider nach mehreren versuchen dies in mein Programm einzubauen gescheitert und bitte daher um Hilfe.

    Danke schonmal ;)

    wwsmain.c :

    wwsdek.c :

    wwsdek.h :

    wwsmakefile.c :

    Code
    wws: wwsdek.o wwsmain.o
            cc -o wws wwsdek.o wwsmain.o
    
    wwsdek.o: wwsdek.h wwsdek.c
            cc -c wwsdek.c
    
    wwsmain.o wwsdek.h wwsmain.c
            cc -c wwsmain.c

    5 Mal editiert, zuletzt von monkey06 (20. Januar 2014 um 13:26)

  • Beginne mit der Funktion einlesen. Zeig uns deine Versuche. Wir machen deine Hausübung nicht für dich. (So spannend ist sie nicht.)


    Hey,

    also das ist mein neuster Versuch, beim kompilieren sagt er mir dass EOF und stdin undeclared identifier sind. Ich verstehe nicht wieso, stdin ist doch die Standarteingabe und EOF ist End Of File ???


  • also das ist mein neuster Versuch, beim kompilieren sagt er mir dass EOF und stdin undeclared identifier sind. Ich verstehe nicht wieso, stdin ist doch die Standarteingabe und EOF ist End Of File ???


    Ja. Das sind Namen aus der Standardbibliothek, aber sie sind nicht automatisch sichtbar. Du musst zuerst dafür sorgen, daß die entsprechenden Header, in denen diese Namen deklariert werden, eingebunden werden:

    C
    #include <stdio.h>
    #include <string.h>


    (letzteres für strlen)

    *plantsch*

  • Ach okay, stimmt hatte ich vergessen. Naja mein Code funktioniert trotzdem nicht so wie ich mir das gedacht habe. Wenn ich ein Produkt einspeichere und dann auf die Produktsuche gehe, fragt er mich welches Produkt ich suche, ich gebe das zuvor eingespeicherte Produkt ein aber es sucht nicht sondern springt sofort zurück ins Menü.

  • Ja da hab ich schon hinzugefügt also produktsuche(); bei case 7 und bei case 8 durch kundensuche();. Sonst würde er mich garnicht nach dem Produkt fragen.

    Einmal editiert, zuletzt von monkey06 (28. Januar 2014 um 13:58)

  • Kleiner Tipp: Lern die tools die dir dein System bietet.

    Dein Programm macht nicht das was du willst? Dann schmeiß den debugger an. Ich bin sicher wenn du da durchsteppst hast du das Problem schnell gefunden.

    Die Zeit die du jetzt investieren musst um gdb zu lernen hast du in ein paar Tagen locker wieder herinnen ;)

    Und eine Stimme aus dem Chaos sprach zu mir:
    lächle und sei froh, es könnte schlimmer kommen.
    Und ich lächelte und war froh, und es kam schlimmer!

  • Ich habs hinbekommen ohne debugger. Hab mir den Code komplett nochmal Stück für Stück angesehen, paar kleine Änderungen vorgenommen und es hat geklappt. Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!