

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Tutoraggio informatica programmazione C
Tipologia: Esercizi
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Si realizzi un programma per calcolare la bolletta telefonica degli utenti di un operatore di telefonia mobile. I dati sono contenuti in una base dati che consiste in un file di testo denominato “clienti.dat” in cui ogni
riga descrive una telefonata nel seguente formato:
Il numero telefonico è una stringa alfanumerica lunga al massimo 15 caratteri che indica il numero di telefono del chiamante, la data è una stringa nel formato GG/MM/YYYY, l’ora inizio e l’ora fine sono due
stringhe di 8 caratteri nel formato HH:MM:SS e numero amico è un carattere che assume il valore
‘S’ nel caso la chiamata sia verso un numero amico ‘N’ nel caso la chiamata sia verso un
numero non amico. Si assuma che le chiamate inizino e finiscano sempre nello stesso giorno, che il formato del file sia corretto e che il numero di righe del file non sia noto a priori.
La tariffa pagata per una chiamata dipende unicamente dall’ora d’inizio della stessa. La giornata
è divisa in quattro fasce orarie (fascia 1: 00:00:00 - 05:59:59; fascia 2: 06:00:00 - 11:59:59; fascia 3:
12:00:00 - 17:59:59; fascia 4: 18:00:00 - 23:59:59). Il costo di una chiamata che inizia in fascia X sarà calcolato sulla base del costo della fascia X anche se a causa della sua lunghezza la chiamata dovesse
composto da 4 righe (una per ogni fascia). Ogni riga contiene il costo per unità di 30 secondi di chiamata per la rispettiva fascia con la precisione dei centesimi di euro. Nel caso di chiamata di un numero amico il costo viene scontato al 50%. Per chiamate di durata non multipla di 30 secondi si arrotonda la durata per eccesso.
Ad esempio:
Clienti.dat 3472222222 01/01/2011 10:10:12 10:11:10 S 3472222222 02/01/2011 15:10:12 16:11:20 N 3471111111 01/01/2011 11:10:12 11:21:10 N 3472222222 08/01/2011 21:20:12 22:13:09 N 3471111111 01/02/2011 11:15:00 11:15:10 N 3472222222 10/02/2011 21:20:12 22:11:10 N
tariffe.txt
Il programma riceve sulla linea di comando il numero di telefono di un utente e un numero tra 1 e 12 indicante un mese e deve stampare in output: a) la bolletta da pagare nel mese, b) il numero di chiamate nel mese, c) e lo sconto totale ottenuto per le chiamate a numeri amici.
Ad esempio: C:> PROG.EXE 3472222222 1 Bolletta telefonica: 93.18 Euro Numero di chiamate: 3 Sconto ricevuto: 0.51 Euro