Zum Inhalt springen

C Programmierung ppm Diagram als Ausgabe Hilfe


artemisia

Empfohlene Beiträge

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 :)

Aufgabe Programmierungt.PNG

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...