Correzione prova pratica del 7 luglio 2004

Correzione prova pratica del 7 luglio 2004


Istruzioni:

il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate: Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per renderlo compilabile e/o per la corretta indentazione.


//XXX  forti carenze nella conoscenza del linguaggio
//Longo Giancarlo Emanuele mat.157017 giancarlo_pr@virgilio.it  07.07.2004






#include <iostream>
#include <cstdlib>
#include <fstream>
#include <iostream>
using namespace std;

void file_princ(void); 
void inserimento(void);
void compila(void);
void save_all(void);
void stampa(void);
void intestazione(void);

int tabella_dati[7][2];
char risp[8];
int i;
int a;
char uno,due,tre,quattro;
char cinque,sei,sette,otto; //FIXME mai sentito parlare di array?




int main()
{
 intestazione();
 file_princ();
 inserimento();
 compila();
 save_all();
 stampa();



      system("PAUSE");
      return 0;
}




void file_princ(void)
{                       //Leggo il file tabella.txt e inserisco i valori in una tabella


 ifstream tab("tabella.txt");
  if(!tab) //FIXME struttura dati non adeguata

  {
    cout <<" Impossibile aprire il file.";
  }

   while(tab)
   {

    for(a=0;a<=7;a++)
    {
      for(i=0;i<=2;i++)
      tab >>tabella_dati[a][i]; //FIXME il formato del file era differente

    }
    }
    tab.close();
}


//FIXME del file viene dato il nome, ma non č detto che il contenuto sia sempre lo stesso

void inserimento(void) // inserimento dei dati da utente e creo risp che conterrā i dati inseriti

{

  //FIXME le variabili uno,due... non sono inizializzate


 cout <<" Inserire i dati letterali."<<endl,endl;
 cout <<endl,endl;
 cout <<" Il treno delle:"<<" "<<uno<<" "<<"e"<<" "<<due;
 cout <<" porta un ritardo di"<<" "<<tre<<" "<<"minuti.";
 cout <<" Chissa'se mi rimborseranno i"<<" "<<quattro<<" "<<","<<cinque;
 cout <<" euro del biglietto?"<<" ";
 cout <<" Il giorno"<<" "<<sei<<" "<<"/"<<sette<<"/2004";
 cout <<" ci sara' un'altra riunione alle"<<" "<<otto;
 risp[0]=uno; //XXX ???

 risp[1]=due;
 risp[2]=tre;
 risp[3]=quattro;
 risp[4]=cinque;
 risp[5]=sei;
 risp[6]=sette;
 risp[7]=otto;
 risp[8]='\0';

}


void compila(void)  // confronto i singoli dati inseriti prima con quelli che ho nel file e di dovrebbe creare un risp trasformato

{

  do{
    for(a=0;a<=7;a++)
     {
      if(tabella_dati[a][1]=risp[a])risp[a]=tabella_dati[a][2]; //FIXME ==, approccio un po' sbagliato


     }while(risp[a]!='\0')
    }


}



void save_all(void) //salvo nel file testo.txt come dati sotto in nome x poterli richiamare nella stampa.Il file viene sempre sovrascritto

{

  ofstream salva("testo.txt");
   if(!salva)
   {
     cout <<" Impossibile scrivere su questo file.";
   }


    salva << uno=risp[0]; //XXX ?

    salva << due=risp[1];
    salva << tre=risp[2];
    salva << quattro=risp[3];
    salva << cinque=risp[4];
    salva << sei=risp[5];
    salva <<sette=risp[6];
    salva <<otto=risp[7];

    salva.close();

} //FIXME fuori tema



void stampa(void) //Stampo il testo leggendo dal file testo.txt edesso i numeri corrispondenti alle lettere inserite da utente

{
  ifstream stampa("testo.txt");
   if(!stampa)
   {
     cout <<" Impossibile leggere da file.";
   }


    stampa >>" Il treno delle:"<<" "<<uno<<" "<<"e"<<" "<<due;  //FIXME mescola << e >>

    stampa >>" porta un ritardo di"<<" "<<tre<<" "<<"minuti.";
    stampa >>" Chissa'se mi rimborseranno i"<<" "<<quattro<<" "<<","<<cinque;
    stampa >>" euro del biglietto?"<<" ";
    stampa <<" Il giorno"<<" "<<sei<<" "<<"/"<<sette<<"/2004";
    stampa >>" ci sara' un'altra riunione alle"<<" "<<otto;

    stampa.close();
}




void intestazione(void)
{
  cout <<endl,endl;
  cout <<endl;
  cout <<"Fondamenti di informatica A prova pratica del 7/7/04"<<endl,endl;
  cout <<"*****************************************************"<<endl;
  cout <<"* Di Longo Giancarlo Emanuele mat.157017            *"<<endl;
  cout <<"* e_mail: giancarlo_pr@virgilio.it                  *"<<endl;
  cout <<"*                                                   *"<<endl;
  cout <<"*                                                   *"<<endl;
  cout <<"*                                                   *"<<endl;
  cout <<"*****************************************************"<<endl;
}


Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a bertozzi@CE.UniPR.IT