artemisia Geschrieben 5. Oktober 2016 Teilen Geschrieben 5. Oktober 2016 Notenverwaltungsoftwareaufgabe in C, Bitte um Hilfe Aufgabe: Es soll dem Anwender möglich sein eine Prüfung zu erfassen, die als Dateiname abgelegt wird.Nachdem dies vorgenommen wurde kann die Lehrkraft zu einem beliebigen Zeitpunkt, eine beliebige Anzahl Noten in diese Prüfung eintragen. Nachdem mehr als 2 Prüfungen eingetragen wurden, hat die Lehrkraft die möglichkeit ein Diagramm im Dateiformat ppm generieren zu lassen. Um dies bewerkstelligen zu können müssen Sie das einfache Ascii BildFormat studieren. https://de.wikipedia.org/wiki/Portable_Anymap ,heisst es in der Aufgabenstellung. Genauere Aufgabenstellung im Anhang als Bild. ppm: irgend so ein Diagramm ausgeben für die Noten. 000000 111100 Note 4 000000 111110 Note 5 etc. include <stdlib.h> #include <stdio.h> struct { char vorname[20]; char nachname[30]; char note1[80]; char note2[80]; char note3[80]; } adressen; void speichern(void) { FILE *save = fopen("adressen.dat","r+b"); if( NULL == save ) { save = fopen("adressen.dat","w+b"); if( NULL == save ) { fprintf(stderr,"Kann \"adressen.dat\" nicht öffnen!\n"); return; } } /* FILE-Zeiger save auf das Ende der Datei setzen */ fseek(save, 0, SEEK_END); /* Wir schreiben eine Adresse ans Ende von "adressen.dat". */ if(fwrite(&adressen, sizeof(adressen), 1, save) != 1) { fprintf(stderr, "Fehler bei fwrite...!!!\n"); return; } /* Wir geben unseren FILE-Zeiger wieder frei. */ fclose(save); } void ausgabe(void) { FILE *output = fopen("adressen.dat","r+b"); if( NULL == output ) { fprintf(stderr,"Kann \"adressen.dat\" nicht öffnen!\n"); return; } /* Wir lesen alle Adressen aus "adressen.dat". */ while(fread(&adressen, sizeof(adressen), 1, output) == 1) { printf("Vorname Schueler1. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note1........... %s",adressen.note1); printf("\n"); printf("Vorname.Schueler2. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note............. %s",adressen.note2); printf("\n\n"); printf("Vorname.Schueler3. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note............. %s",adressen.note3); printf("\n\n"); printf("Vorname.......... %s",adressen.vorname); printf("Nachname..........%s",adressen.nachname); printf("note............. %s",adressen.note1); printf("\n\n"); printf("Vorname..........%s",adressen.vorname); printf("Nachname..........%s",adressen.nachname); printf("note..............%s",adressen.note2); printf("\n\n"); /*WIE GIBT MAN BILD AUS IN KONSOLE??? */ /* Wir lesen alle Adressen aus "adressen.dat". */ } fclose(output); } void eingabe(void) { printf("Vorname Schueler1...."); fgets(adressen.vorname, sizeof(adressen.vorname), stdin); printf("Nachname...."); fgets(adressen.nachname, sizeof(adressen.nachname),stdin); printf("note 1:...."); fgets(adressen.note1, sizeof(adressen.note1), stdin); printf("note 2:...."); fgets(adressen.note2, sizeof(adressen.note2), stdin); printf("note 3:...."); fgets(adressen.note3, sizeof(adressen.note3), stdin); printf("Vorname Schueler2...."); fgets(adressen.vorname, sizeof(adressen.vorname), stdin); printf("Nachname....:"); fgets(adressen.nachname, sizeof(adressen.nachname),stdin); printf("note 1....:"); fgets(adressen.note1, sizeof(adressen.note1), stdin); printf("note 2....:"); fgets(adressen.note2, sizeof(adressen.note2), stdin); printf("note 3:...."); fgets(adressen.note3, sizeof(adressen.note3), stdin); printf("Vorname Schueler3...."); fgets(adressen.vorname, sizeof(adressen.vorname), stdin); printf("Nachname:...."); fgets(adressen.nachname, sizeof(adressen.nachname),stdin); printf("note 1:...."); fgets(adressen.note1, sizeof(adressen.note1), stdin); printf("note 2:...."); fgets(adressen.note2, sizeof(adressen.note2), stdin); printf("note 3:...."); fgets(adressen.note3, sizeof(adressen.note3), stdin); speichern(); } int main(void) { int wahl; do { printf("Was wollen Sie machen\n"); printf("-1- Neuen Note erfassen\n"); printf("-2- Alle Datensaetze ausgeben\n"); printf("-3- Programm beenden\n\n"); printf("Ihre Auswahl : "); do { scanf("%d",&wahl); } while(getchar() != '\n'); switch(wahl) { case 1 : eingabe(); break; case 2 : ausgabe(); break; case 3 : printf("...Programm wird beendet\n"); break; default: printf(">>%d<< ???\n",wahl); } } while(wahl != 3); return; } Wäre super. Vielen Dank Nitzan reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 6. Oktober 2016 Teilen Geschrieben 6. Oktober 2016 Und was möchtest du jetzt wissen? Darüber hinaus kommt mir die Aufgabe sehr bekannt vor. Es ist die selbe, die ich damals im Studium in der C-Übung machen musste. Keine Ahnung, wie es hier aussieht, wenn man ganze Aufgaben von anderen Leuten gelöst haben möchte. In anderen Foren wird der Thread geschlossen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klebrig Geschrieben 6. Oktober 2016 Teilen Geschrieben 6. Oktober 2016 Was genau ist die Fragstellung, oder möchtest du einfach Feedback? Ich verstehe nicht. Mach deine Hausaufgaben lieber selbst. Dabei ist der Lerneffekt am größten. Ansonsten stell gezielt eine Frage, sofern du ein Verständnisproblem hast. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mqr Geschrieben 6. Oktober 2016 Teilen Geschrieben 6. Oktober 2016 Hallo artemisia, das sieht mir aus wie eine Aufgabe, die im Unterricht (bzw. in Gruppenarbeit mir anderen Schülern) gelöst werden soll. Dabei kann man den Lehrer und die Mitschüler fragen und so gemeinschaftlich zum Ziel kommen, mit dem Lerneffekt sozusagen. Zumal Whiz-zard schon gefragt, was Du wissen möchtest. Wie soll denn das Diagramm aussehen? Eine Kurve mit Notenpunkten oder ein Säulendiagramm, alle Schüler, mit Durchschnitt? Solche Fragen kann dann nur der Lehrer beantworten, dem ist das dann wahrscheinlich egal, Hauptsache das Bildformat wird verstanden.. Zum anderen sollte man den ähnlichen Code nicht nicht wiederholen. Hier kommt dann eine Anfrage mit der Anzahl der Schüler, Noten infrage und dann wird eine entsprechende Schleife einprogrammiert. Aber Du willst das ja sicherlich lernen, daher musst Du das auch machen. Stelle Deine Fragen daher präziser, dann kann man Dir auch helfen. Es hilft Dir ja nicht, wenn Dir jemand die Lösung postet. In der Prüfung ist es sicherlich eine andere Aufgabe. Grüße Micha Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.