Prova pratica del 17/2/10
Un file ASCII titoli.txt contiene i titoli di serie televisive e dei relativi episodi.
Per ciascuna serie, la prima riga del file contiene il titolo della serie; la riga immediatamente successiva contiene il numero di episodi (n) e le n righe successive contengono i titoli dei relativi episodi nell'ordine in cui sono stati trasmessi (quindi dall'episodio 1 all'ennesimo).
Si scriva un programma C++ che:
1) legga e memorizzi il contenuto del file indicato
2) dopo aver terminato il punto (1), iterativamente, richieda all'utente di inserire un numero e successivamente stampi i titoli delle serie e degli episodi, se esistono, con quel numero d'ordine. Se il numero introdotto è 0, l'esecuzione termina.
Direttive:
a) si ipotizzi che il numero massimo di serie televisive memorizzate nel file sia pari a 100
b) i titoli delle serie e di ciascun episodio non sono mai piu' lunghi di 120 caratteri c) il numero massimo di episodi di ciascuna serie sia pari a 30
Per memorizzare i dati si usino i costrutti indicati nel seguente scheletro di programma.
#include<iostream>
#include<fstream>
using namespace std;
const int MAXS = 100;
const int MAXL = 120;
const int MAXE = 30;
struct Serie{
char titolo_serie[MAXL+1];
int num_episodi;
char* elenco_episodi[MAXE];
};
int main(){
Serie serie[MAXS];
... // lettura e memorizzazione file while(1){
cout << "Inserire un numero di episodio da ricercare: ";
... // ricerca episodi e stampa }
}
Esempio di file FIREFLY 14
Serenity
The Train Job Bushwhacked Shindig Safe
Our Mrs. Reynolds Jaynestown
Out of Gas Ariel
War Stories Trash
The Message Heart of Gold Objects in Space SCRUBS STAGIONE 3 22
My American Girl My Journey
My White Whale My Lucky Night
My Brother, Where Art Thou?
My Advice to You My Fifteen Seconds My Friend the Doctor My Dirty Secret
My Rule of Thumb My Clean Break My Catalyst
My Porcelain God My Screw Up
My Tormented Mentor My Butterfly
My Moment of Un-Truth His Story II
My Choosiest Choice of All My Fault
My Self-Examination
My Best Friend's Wedding HAZZARD QUINTA STAGIONE 22
Sempre due sempre Duke
Non è tutto oro quello che luccica Sceriffo dell'anno
Una sbandata per Coy Giù le mani da Hazzard Legami di sangue
Due bracci destri molto sinistri La sala corse
Smeraldi in fricassea Un truffatore truffato Il generale per posta Bottino d'annata
Il male minore Picnic a sorpresa
Di morte si può campare Un amore acrobatico Un asilo per l'atleta
Tanto cieco da testimoniare Un gradito ritorno
Soldi e capretta accoppiata perfetta Una disastrosa complice
Dalla padella alla brace
Esempio di esecuzione
Inserire un numero di episodio da ricercare: 18 Titoli serie ed episodi:
SCRUBS STAGIONE 3 His Story II
HAZZARD QUINTA STAGIONE Tanto cieco da testimoniare
Inserire un numero di episodio da ricercare: 0