Brauche dringend HILFE!!!



  • SlotRacer schrieb:

    printf("\n\t===============================\n");
    printf("\t=== Weihnachtsaufgabe Nr.44 ===\n");
    printf("\t===============================\n\n");

    Schau mal in Aufgabe 1 bis 43. Vielleicht muß nur was geringfügig angepasst werden?



  • bekommen wir die dann auch 😃



  • Nein schön wärs.... Ach ich hab keine Ahnung was ich da jetzt machen soll bzw. wie das funzt. 😞



  • also 1 und 3 gehen relativ simpel mit einer sortierung nr 2 bereitet mir noch bischen mühe, geht aber eigentlich auch ohne eine änderung an den daten stucturen... schätz ich jetzt mal 😉



  • Also 1 hab ich schon. da muss ja nichts sortiert werden. bei 3 versteh ich das mit dem einzugebenden Termin nicht.



  • doch sicher sonst bekommst da ja dubletten das ja eins der haupt probleme an der ganzen sache, sortieren nach name und dann

    while(i<length-1 && compareLieferant(&dataCache[i],&dataCache[i+1])==0)i++;
    

    mit sowas in der richtung die dubletten skippen...



  • der termin ist so aufgebaut

    dataCache[i].liefertermin[0]//tag
    dataCache[i].liefertermin[1]//monat
    dataCache[i].liefertermin[2]//jahr
    

    glaub ich zumindest



  • SlotRacer schrieb:

    Nein schön wärs.... Ach ich hab keine Ahnung was ich da jetzt machen soll bzw. wie das funzt. 😞

    Lies doch erstmal die Daten ein, in ein Array oder sortiert in eine verkettete Liste. Verkettete Listen oder Arrays hast du schon gehabt?



  • Big Brother schrieb:

    Lies doch erstmal die Daten ein, in ein Array...

    und ich dachte das hätten wir schon hinter uns?



  • noobLolo schrieb:

    und ich dachte das hätten wir schon hinter uns?

    Habt ihr schon? Ist mir wohl entgangen, wie ihr die Datensätze speichert?



  • ja ich weiß auch nicht, wie weit er jetzt ist, postet ja schon länger keinen code, ich hätte schon ne fast fertige lösung, will die aber nicht komplett posten, sonst hat er ja nix gelernt und dass ja auch nicht der sinn? oder sollt ich doch, also ich weiß ncht 😕



  • noobLolo schrieb:

    ja ich weiß auch nicht, wie weit er jetzt ist, postet ja schon länger keinen code, ich hätte schon ne fast fertige lösung, will die aber nicht komplett posten, sonst hat er ja nix gelernt und dass ja auch nicht der sinn? oder sollt ich doch, also ich weiß ncht 😕

    Die Entscheidung liegt ganz bei dir. Meiner Meinung nach hätte SlotRacer mehr davon, wenn man es schrittweise ausbaut, Zeit ist noch reichlich. Gerade als Anfänger weiß man mit dutzenden von Zeilen Fremdcode meistens gar nicht so viel anzufangen.



  • ja Big Brother hat schon recht mit seiner Aussage....
    Naja das Problem ist ich komme nicht weiter als bis zu meinem letzten Code den ich gepostet hab.

    Wie gesagt ich hab einfach keine Ahnung was ich jetzt machen soll.

    (Hab auch grad mal was gegessen ;-)).



  • also ich fand die aufgabe jetzt nicht ganz easy, also blutiger anfänger kann er ja auch nicht mehr sein, also wir werden sehen wann er sich wieder blicken lässt hab ja die befürchtung dass er vor morgen nichtmehr online ist 😉 glaub dem hats gereicht für heute 😃



  • so kann man sich täuschen 😃

    also deinen letzten code hab ich ein bischen umgebaut, das ergebnis poste ich mal...

    int readEntrys(char *fileName,struct vertrag dataCache[],int maxLength){
    	int i=0;
    	FILE*Dateiptr;
    	if(!(Dateiptr = fopen(fileName,"rb")))
        {
           printf("Beim oeffnen der Datei %s ist ein Fehler aufgetreten.\n", fileName);
        }
        else
        	while(fread(&dataCache[i], sizeof(struct vertrag),1, Dateiptr) == 1)
                i++;
    
    	return i--;
    }
    
    void plotEntryRow(struct vertrag dataCache[]){
    	int i=0;
    	printf(
    		"%12d\t" "%7s\t" "%21s\t" "%21s\t" "%12d\t" "%12d\t" "%2d." "%2d." "%4d" "\n"
    		,i
    		,dataCache[i].vertrnr
    		,dataCache[i].art
    		,dataCache[i].liiferant
    		,dataCache[i].vertagsmenge
    		,dataCache[i].liefermenge
    		,dataCache[i].liefertermin[0]
    		,dataCache[i].liefertermin[1]
    		,dataCache[i].liefertermin[2]
    	);
    }
    
    void plotEntrys(struct vertrag dataCache[],int length){
    	int i=0;
    	printf(
    		"%12s\t" "%7s\t" "%21s\t" "%21s\t" "%12s\t" "%12s\t" "%10s\t" "\n\n"
    		,"nr."
    		,"vnr."
    		,"artikel"
    		,"lieferant"
    		,"vertragsm."
    		,"lieferm."
    		,"ltermin."
    	);
    
    	while(i<length)
    		plotEntryRow(&dataCache[i++]);
    
    	printf( "EOL>>----------------------------------------------------------"
    			"-------------------------------------------------------------"
    			"\n\n");
    }
    
    int main(int argc, char *argv[])
    {
        struct vertrag dataCache[1024] = {};
        int dataCacheLength;
        dataCacheLength = readEntrys("VERTRAG.DAT",dataCache,1023);
        plotEntrys(dataCache,dataCacheLength);
        return 0;
    };
    


  • @ noobLolo

    Bin doch noch da und voller Elahn ;-). Ich zerbrech mir nur schon ewig den Kopf und es ist sehr deprimierend wenn das alles nichts bringt.



  • ja also dann erklär mal wo dein problem liegt, ich kanns dir sogar sagen du willst nicht sortieren... 😉



  • Doch wollen schon aber ehrlich gesagt hasb ich NULL Ahnung WIE!!!
    Das ist mein Problem. Ich blättere schon die ganze Zeit in nem Buch und such im Netz, aber so richtig werd ich da nicht schlau drauß.



  • nachdem wir ein array genommen haben und keine liste funktioniert das ganz easy mit qsort

    .-das array
          |         .-länge des arrays
    qsort(dataCache,l,sizeof(struct vertrag),cmp);
                      '-größe eines array    '-vergleichs function ungefähr so int (*cmp)(void *,void *){}
                        eintrags
    


  • Also deinen letzten Post hab ich noch nicht richtig verstanden.... Blicke isrgendwie nicht so richtig durch den ganzen wirrwar :-).


Anmelden zum Antworten