Advertisement
Francescoo

file voti

Jan 11th, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.49 KB | None | 0 0
  1. /*Autore Francesco Granozio
  2. Un file di testo denominato 'voti.txt' contiene i cognomi e i voti dei
  3. compiti di informatica degli alunni della classe IVB
  4. Sviluppare un programma che:
  5. --- Carica il file
  6. --- Stampa il file*/
  7.  
  8. #include "pch.h"
  9. #include <iostream>
  10. #include <fstream>  //Libreria per l'uso dei flussi input / output dei file
  11. #include <string>  //Libreria per l'uso delle stringhe
  12. #include <cstdlib>
  13.  
  14. using namespace std;  
  15.  
  16. const int V = 20; //Constante per il limite del cognome
  17.  
  18. struct alunno {  //Struttura dati dello studente
  19.  
  20.     char n_c[V];  //Vettore di caratteri per il nome
  21.     int voti;  //Variabile per i voti
  22. };
  23.  
  24.  
  25. void carica(alunno &al);  //Prototipi di funzione
  26. void stampa(alunno &al);
  27.  
  28.  
  29. int main() {
  30.  
  31.     alunno a;  //Tipo alunno
  32.  
  33.     stampa(a);  //Procedura di lettura
  34.     carica(a);  //Procedura di scrittura
  35.     stampa(a);  //Procedura di lettura
  36.  
  37.     return EXIT_SUCCESS;
  38. }
  39.  
  40.  
  41. void carica(alunno &al) {
  42.  
  43.     int ins = 1;  //Variabile richiesta inserimento
  44.     int i = 0;  //Indice del ciclo
  45.     ofstream fout("C:\\FILE C++\\voti.txt");  //Creo oggetto 'fout' della classe ofstream
  46.  
  47.     do {
  48.  
  49.         i++;  
  50.  
  51.         cout << "Inserisci il cognome dell'alunno: ";
  52.         cin >> al.n_c;  //Input
  53.         fout << al.n_c << endl;  //Trasferisco sul file
  54.  
  55.         cout << "Inserisci voto in informatica: ";
  56.         cin >> al.voti;  //Input
  57.         fout << al.voti;  //Trasferisco sul file
  58.  
  59.         cout << "Vuoi continuare inserimento? (1 per continuare, 0 per terminare) ";
  60.         cin >> ins;  //Richiesta di inserimento
  61.         cout << endl << endl;
  62.  
  63.         if (ins != 0) {  //Aggiungo uno spazio in caso non sia stato inserito ancora nulla
  64.                         //Ci ho perso 1 ora, perchè mi stampava male i nomi
  65.             fout << endl;
  66.         }
  67.     } while (ins != 0 and i < 5);  //Il ciclo si ferma se viene inserito 0 o si raggiunge il limite d'inserimento
  68.  
  69.     cout << "Scrittura nel file completata con successo" << endl;
  70.     fout.close();  //Chiudo il file
  71. }
  72.  
  73.  
  74. void stampa(alunno &al) {  
  75.  
  76.     ifstream fin("C:\\FILE C++\\voti.txt");  //Creo oggetto 'fin' della classe ifstream
  77.  
  78.     cout << "----------STAMPA----------" << endl << endl;
  79.  
  80.     if (fin.peek() == ifstream::traits_type::eof()) {  //Verifico se il file e'vuoto
  81.  
  82.         cout << "Il file e'vuoto" << endl;  //Messaggio di errore
  83.     }
  84.     while (!fin.eof()) {  //Finchè ci sono righe scritte stampo il testo del file
  85.  
  86.         fin >> al.n_c;
  87.         cout << "Cognome dell alunno: " << al.n_c << endl;
  88.         fin >> al.voti;
  89.         cout << "Voto di informatica dell'alunno: " << al.voti << endl;
  90.  
  91.     }
  92.     fin.close();  //Chiudo il file
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement