Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - GESTIONE MP3
Forum - C/C++ - GESTIONE MP3

Avatar
corey891 (Normal User)
Rookie


Messaggi: 27
Iscritto: 27/08/2006

Segnala al moderatore
Postato alle 18:20
Venerdì, 09/03/2007
Ciao ragazzi anche se non lo userò mai ho fatto questo programma per la gestione degli mp3, è ancora  da perfezionare infatti ho 2 problemi:
1_ al momento dell'inserimento del 1° record non mi chiede il genere della canzone;
2_ al momento in cui chiede il titolo della canzone ( cout <<"Inserisci il titolo della canzone (0 per finire)\n";) con l'opzione di andare al menù e poter scegliere le altre funzioni non so come fare ( a poter premere 0 e andare al menù).

Il codice del programma è questo:
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
struct mp3
{      
       char tit[20];
       char art[20];
       char gen[20];
       int  anno;
      
};
       mp3 song;
       const char * const archivio="song.dat";
int inserisci()
{
    ofstream fout(archivio, ios::app |ios::binary);
    if (!fout)
  {
           cout << "Errore apertura del file" << endl;
           return 1;
  }
    cout <<"Inserisci il titolo della canzone (0 per finire)\n";
    cin>>song.tit;
    while (song.tit != 0)
    {
          cin.ignore();
          cout <<"Inserisci l'artista della canzone: ";
          cin.get(song.art, 20);
          cin.ignore();
          cout << "Inserire il genere della canzone: ";
          cin.get(song.gen, 20);
          cin.ignore();
          cout <<"Inserisci l'anno della canzone: ";
          cin >> song.anno;
          cin.ignore();
          fout.write((char *) &song, sizeof song);
          cout <<"Inserisci un altro titolo (0 per finire)\n";
          cin.get(song.tit, 20);
          cin.ignore();
    }
    fout.close();
}
int ricercatit()
{
  bool f=false;
  char key[20];
  ifstream fin;
  fin.clear();
  fin.open(archivio, ios::in | ios::binary);
  if (!fin)
     {
           cout << "Errore apertura del file" << endl;
           exit(1);
     }
   cout << "Inserire il titolo della canzone da cercare: ";
   cin >> key;
   while ( fin.read ((char *) &song, sizeof song))
    {
         if(strcmp(key,song.tit)==0)
         {
          cout << song.tit << " " << song.art << " " << song.gen << " " << song.anno << endl;
          f=true;
         }
    }
    if (f==false)
       cout << "La canzone non esiste"<<endl;
   fin.close();
   return(0);
}

int ricercaart()
{
  bool f=false;
  char key[20];
  ifstream fin;
  fin.clear();
  fin.open(archivio, ios::in | ios::binary);
  if (!fin)
     {
           cout << "Errore apertura del file" << endl;
           exit(1);
     }
   cout << "Inserire l'artista da cercare: ";
   cin >> key;
   while ( fin.read ((char *) &song, sizeof song))
    {
         if(key==song.art){
            cout << song.tit << " " << song.art << " " << song.gen << " " << song.anno << endl;
            f=true;
            }
    }
    if (f==false)
       cout << "L'artista non esiste "<<endl;
   fin.close();
   return(0);
}

int main()
{
    int scelta;
    do
    {
        cout <<"GESTIONE ARCHIVIO MP3\n";
        cout <<"\n";
        cout << "1. Aggiunta nuovi record mp3 \n";
        cout << "2. Visualizzazione canzoni  \n";
        cout << "3. Visualizzazione artisti  \n";
        cout << "0. Fine lavoro         \n";
        cout << "Scegli funzione: \n";
        cin >> scelta;
        cin.ignore();
        switch (scelta)
        {
               case 1:inserisci();break;
               case 2:ricercatit();break;
               case 3:ricercaart();break;
        }
    }
    while (scelta != 0);
}

PM Quote
Avatar
corey891 (Normal User)
Rookie


Messaggi: 27
Iscritto: 27/08/2006

Segnala al moderatore
Postato alle 13:18
Sabato, 10/03/2007
Questo è il programma definitivo...pensate ke potrei migliorarlo in qualke modo?


#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
struct albums {
       char titoloalb[40];
       int anno;
       int numerosong;
       char casadisco[40];
};
albums alb;
struct canzone
{      
       char titolocanzone[40];
       char artista[40];
       char genere[40];
       int  durata;
       struct albums alb;

};      

canzone song;
       const char * const archivio="song.dat";
int inserisci()
{
    ofstream fout(archivio, ios::app |ios::binary);
    if (!fout)
  {
           cout << "Errore apertura del file" << endl;
           return 1;
  }
    cout <<"Inserisci il titolo della canzone (# per finire)\n";
    cin>>song.titolocanzone;
cout << endl;
    while (song.titolocanzone[0] != '#')
    {
          cin.ignore();
          cout <<"Inserisci l'artista della canzone ";
          cin.get(song.artista, 40);
          cin.ignore();
cout << endl;
          cout << "Inserire il genere della canzone ";
          cin.get(song.genere, 40);
          cin.ignore();
cout << endl;
          cout <<"Inserisci la durata della canzone ";
          cin >> song.durata;
          cin.ignore();
cout << endl;
          cout << "Inserisci il titolo dell'album dov'e' contenuta la canzone ";
          cin.get(song.alb.titoloalb, 40);
cout << endl;
          cout << "Inserisci l'anno di pubblicazione dell album ";
          cin >> song.alb.anno;
cout << endl;
          cout << "Inserisci il numero di canzoni dell album ";
          cin >> song.alb.numerosong;
          cin.ignore();
cout << endl;
          cout << "Inserisci il nome della casa discografica dell'album ";
          cin.get(song.alb.casadisco, 40);
          cin.ignore();
cout << endl;
          fout.write((char *) &song, sizeof song);
          cout <<"Inserisci un altro titolo (# per finire)\n";
          cin.get(song.titolocanzone, 20);
          cin.ignore();
    }
    fout.close();
}
int ricercaxtitolo()
{
  bool f=false;
  char key[20];
  ifstream fin;
  fin.clear();
  fin.open(archivio, ios::in | ios::binary);
  if (!fin)
     {
           cout << "Errore apertura del file" << endl;
           exit(1);
     }
   cout << "Inserire il titolo della canzone da cercare: ";
   cin >> key;
   while ( fin.read ((char *) &song, sizeof song))
    {
         if(strcmp(key,song.titolocanzone)==0)
         {
            cout << "Titolo canzone: "<<song.titolocanzone;
cout << endl;
            cout<< "Artista: "<<song.artista;
cout << endl;
            cout<< "Genere: "<<song.genere;
cout << endl;
            cout<< "Anno: "<<song.alb.anno;
cout << endl;
            cout << "Durata: "<<song.durata;
cout << endl;
            cout << "Titolo Album: "<<song.alb.titoloalb;
cout << endl;
            cout << "Numero canzoni dell'album: "<<song.alb.numerosong;
cout << endl;
            cout << "Casa discografica: "<<song.alb.casadisco;
cout << endl;
          f=true;
         }
    }
    if (f==false)
       cout << "La canzone non esiste"<<endl;
   fin.close();
   return(0);
}

int ricercaxartista()
{
  bool f=false;
  char key[20];
  ifstream fin;
  fin.clear();
  fin.open(archivio, ios::in | ios::binary);
  if (!fin)
     {
           cout << "Errore apertura del file" << endl;
           exit(1);
     }
   cout << "Inserire l'artista da cercare: ";
   cin >> key;
   while ( fin.read ((char *) &song, sizeof song))
    {
         if(strcmp(key,song.artista)==0){
            cout << "Titolo canzone: "<<song.titolocanzone;
cout << endl;
            cout<< "Artista: "<<song.artista;
cout << endl;
            cout<< "Genere: "<<song.genere;
cout << endl;
            cout<< "Anno: "<<song.alb.anno;
cout << endl;
            cout << "Durata: "<<song.durata;
cout << endl;
            cout << "Titolo Album: "<<song.alb.titoloalb;
cout << endl;
            cout << "Numero canzoni dell'album: "<<song.alb.numerosong;
cout << endl;
            cout << "Casa discografica: "<<song.alb.casadisco;
cout << endl;
            f=true;
            }
    }
    if (f==false)
       cout << "L'artista non esiste "<<endl;
   fin.close();
   return(0);
}

int main()
{
    int scelta;
    do
    {
        cout << endl;        
        cout <<"GESTIONE ARCHIVIO MP3\n";
        cout <<"\n";
        cout << "1. Aggiunta nuovi record mp3 \n";
        cout << "2. Visualizzazione canzoni  \n";
        cout << "3. Visualizzazione artisti  \n";
        cout << "0. Fine lavoro         \n";
        cout << "Scegli funzione: \n";
        cin >> scelta;
        cin.ignore();
        switch (scelta)
        {
               case 1:inserisci();break;
               case 2:ricercaxtitolo();break;
               case 3:ricercaxartista();break;
        }
    }
    while (scelta !=0 );
}

PM Quote