/* 7. Ein Student erfaßt von jedem seiner Videos Autor, Titel und Preis in einer
Datei. Hinweis: Leerzeichen im Titel als Unterstriche schreiben!
a) Schreiben Sie ein Programm, das n Videos hinzufügt (n einlesen), alle Videos
   auflistet und den Gesamtwert ausgibt!
b) Schreiben Sie ein Menü: einlesen, anzeigen, ende und die dazu geeigneten
Funktionen.
------------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
struct video_typ
{ char autor[10], titel[30]; float preis;
};
void hinzu( char dateiname[] )
{ struct video_typ v;          int n, i;    FILE * datei;
  datei= fopen( dateiname, "a");
  if( datei==NULL )printf("\n Datei konnte nicht geoeffnet werden!\n");
  else{ printf("\n Wieviele Videos? ");
        scanf("%i", &n);
        for( i=0; i<n; i++)
        { printf("\n Titel: "); scanf("%s", v.titel);
          printf(" Autor: ");   scanf("%s", v.autor);
          printf(" Preis: ");   scanf("%f", &v.preis);
          fprintf( datei, "%s %s %f ", v.titel, v.autor, v.preis);
        }
        fclose( datei);
  }
}
void tabelle( char dateiname[] )
{ struct video_typ v;              FILE * datei; float wert=0;
  datei= fopen( dateiname, "r");
  if( datei==NULL )printf("\n Datei konnte nicht geoeffnet werden!\n");
  else{  while( fscanf( datei, "%s %s %f ", v.titel, v.autor, &v.preis)==3)
         {       printf("\n %-15s %-15s %6.2f ", v.titel, v.autor, v.preis);
                 wert= wert + v.preis;
         }
         fclose( datei);
         printf("\n Gesamtwert: %.2f\n\n", wert );
  }
}
int main()
{  char dname[]="s:/videos.dat";  int menue;
   do{  printf("\n - 0 - Ende\n - 1 - hinzufuegen\n - 2 - Tabelle     : ");
        scanf("%i", &menue);
        switch( menue )
        { case 1: hinzu( dname);   break;
          case 2: tabelle( dname); break;
          default: printf("\n Falsche Eingabe!\n");
        }
   }while( menue!=0);

   return 0;
}
