Aufgabe Notenverwaltungsoftware in C benötige 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.
irgend so ein Diagramm ausgeben für die Noten.
000000
111100 Note 4
000000
111110 Note 5 etc.
Wäre super.
Vielen Dank
Hier mein Code;
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.
irgend so ein Diagramm ausgeben für die Noten.
000000
111100 Note 4
000000
111110 Note 5 etc.
Wäre super.
Vielen Dank
Hier mein Code;
Code:
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;
}