Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ordinamento e cancellazione singolo record da archivio

    salve ragazzi, ho creato un programmino che immessi i dati delle squadre mi permette di calcolarli, ORDINARLI, e visualizzarli in una classifica, scriverli su disco, leggerli da disco poi di fare modifiche; cioè cambio dei parametri(nome partite vinte ecc) e di aggiornare la classifica senza riscriverla da 0. il problema come dicevo nel titolo sorge nell'ordinamento, che non ordina, e il secondo prob è che vorrei aggiungere una funzione (void cancella) che dato il nome della squadra mi visualizzi il record e me lo cancelli...è possibile farlo??? intanto posto il mio programmino(vi chiedo di passare direttamente a void caricamento, visto che è la parte di prog che non funziona) grazie mille

    codice:
    #include<iostream.h>
    #include<conio.h>
    #include<fstream.h>
    #include<string.h>
    #include<iomanip.h>
    
    struct dati {
    	     char nome[16];int vinte,pareggiate,perse,tot,punti,gf,gs,dg;
    	    };
    void caricamento(dati squadra[],int&n);
    void calcoli(dati squadra[],int n);
    void ordinamento(dati squadra[],int n);
    void visualizza(dati squadra[]);
    void pari(dati squadra[],int n);
    void nome(dati squadra[],int n);
    void vinte(dati squadra[],int n);
    void scrittura(dati squadra[],int n);
    void lettura(dati squadra[]);
    void modifica(dati squadra[],int n);
    void parametri(dati squadra[],int n);
    void perse(dati squadra[],int n);
    void gf(dati squadra[],int n);
    void gs(dati squadra[],int n);
    void aggiorna(dati squadra[],int n);
    
    void main()
           {
    	dati squadra[999];
    	int n=0,scelta;
    	do{
    	   clrscr();
    	   cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
    	   cout<<endl;
    	   cout<<"³"<<"Seleziona:          ³"<<endl;
    	   cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";
    	   cout<<endl<<"³ "<<"1-Inserire Dati    ³"<<endl;
    	   cout<<"³ "<<"2-Classifica       ³"<<endl;
    	   cout<<"³ "<<"3-Archiviare Dati  ³"<<endl;
    	   cout<<"³ "<<"4-Lettura da Disco ³"<<endl;
    	   cout<<"³ "<<"5-Modificare       ³"<<endl;
    	   cout<<"³ "<<"0-Uscire           ³"<<endl;
    	   cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";
    	   cout<<endl<<"Scelta: ";
    	   cin>>scelta;
    	   clrscr();
    	   switch (scelta)
    		  {
    		   case 1:caricamento(squadra, n);
    		   calcoli(squadra, n);
    		   ordinamento(squadra, n);
    		   scrittura(squadra, n);
    		   break;
    		   case 2:visualizza(squadra);
    		   break;
    		   case 3:scrittura(squadra, n);
    		   break;
    		   case 4:lettura(squadra);
    		   break;
    		   case 5:parametri(squadra, n);
    		  }
    	  }while(scelta!=0);
    }
    
    void caricamento(dati squadra[], int&n)
    {
     int incremento;
     cout<<endl;
     do{
        clrscr();
        cout<<"Caricamento"<<endl;
        cout<<endl<<"Nome squadra: ";
        cin>>squadra[n].nome;
        cout<<endl<<"Partite Vinte: ";
        cin>>squadra[n].vinte;
        cout<<endl<<"Partite pareggiate: ";
        cin>>squadra[n].pareggiate;
        cout<<endl<<"Partite perse: ";
        cin>>squadra[n].perse;
        cout<<endl<<"Goal Fatti: ";
        cin>>squadra[n].gf;
        cout<<endl<<"Goal Subiti: ";
        cin>>squadra[n].gs;
        n++;
        cout<<endl<<endl<<" "<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
        cout<<endl<<" "<<"³"<<"Inserire scelta:³"<<endl<<" "<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"<<endl<<" "<<"³ "<<"1-Caricare     ³"<<endl<<" "<<"³ "<<"0-Terminare    ³"<<endl<<" "<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"<<""<<endl<<" "<<"Scelta: ";
        cin>>incremento;
        cout<<endl;
       }while(incremento==1);
    }
    
    void calcoli(dati squadra[], int n)
    {
     clrscr();
     int i;
     for(i=0;i<n;i++)
        {
         squadra[i].punti=squadra[i].vinte*3;
         squadra[i].tot=squadra[i].punti+squadra[i].pareggiate;
         squadra[i].dg=squadra[i].gf-squadra[i].gs;
        }
    }
    
    void ordinamento(dati squadra[], int n)
    {
     int i,j;
     dati casella;
     for(i=0;i<n;i++)
        {
         for(j=i++;j<n;j++)
    	{
    	 if(squadra[i].tot>squadra[j].tot)
    	   {
    	    casella=squadra[i];
    	    squadra[i]=squadra[j];
    	    squadra[j]=casella;
    	   }
    	}
        }
    }
    
    void visualizza(dati squadra[])
    {
     lettura(squadra);
    }
    
    void scrittura(dati squadra[], int n)
    {
     int i;
     ofstream nout;
     nout.open("n.txt");
     nout<<n;
     nout.close();
    
     ofstream fout;
     fout.open("classifi.txt");
        for(i=0;i<n;i++)
           {
    	fout<<setw(11)<<squadra[i].nome
    	    <<setw(6)<<squadra[i].tot
    	    <<setw(6)<<squadra[i].vinte
    	    <<setw(6)<<squadra[i].perse
    	    <<setw(5)<<squadra[i].pareggiate
    	    <<setw(4)<<squadra[i].gf
    	    <<setw(4)<<squadra[i].gs<<endl;
           }
     fout.close();
    }
    
    void lettura(dati squadra[])
    {
     int i=0,j;
     cout<<endl<<"                Classifica"<<endl;
     cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
     textcolor(7);
     textbackground(2);
     cout<<endl<<"³";
    
     textcolor(4);
     textbackground(2);
     cprintf("   Squadra");
     textcolor(1);
     textbackground(2);
     cprintf("  Punti");
     textcolor(4);
     textbackground(2);
     cprintf(" Vinte");
     textcolor(1);
     textbackground(2);
     cprintf(" Pari");
     textcolor(4);
     textbackground(2);
     cprintf(" Perse");
     textcolor(1);
     textbackground(2);
     cprintf(" Gf");
     textcolor(1);
     textbackground(2);
     cprintf("  Gs");
     cout<<"³";
     cprintf("\r\n");
     cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";
     cout<<endl;
     ifstream fin;
     fin.open("classifi.txt");
     fin>>squadra[i].nome>>squadra[i].tot>>squadra[i].vinte>>squadra[i].pareggiate>>squadra[i].perse>>squadra[i].gf>>squadra[i].gs;
     while(!fin.eof())
          {
           i++;
           fin>>squadra[i].nome
    	  >>squadra[i].tot
    	  >>squadra[i].vinte
    	  >>squadra[i].pareggiate
    	  >>squadra[i].perse
    	  >>squadra[i].gf
    	  >>squadra[i].gs;
          }
     fin.close();
           for(j=0;j<i;j++)
    	  {
    	   cout<<"³"<<setw(10)<<squadra[j].nome
    	       <<setw(6)<<squadra[j].tot
    	       <<setw(6)<<squadra[j].vinte
    	       <<setw(5)<<squadra[j].pareggiate
    	       <<setw(6)<<squadra[j].perse
    	       <<setw(4)<<squadra[j].gf
    	       <<setw(4)<<squadra[j].gs<<"³"<<endl;
    	  }
    	   cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";
    getch();
    textcolor(7);
    textbackground(0);
    }
    
    void parametri(dati squadra[],int n)
    {
     int scelta;
     do{
        clrscr();
        cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
        cout<<endl<<"³"<<"Modifica:                 ³"<<endl;
        cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";
        cout<<endl<<"³ "<<"1-Modificare Parametri   ³"<<endl;
        cout<<"³ "<<"2-Inserire Altre Squadre ³"<<endl;
        cout<<"³ "<<"0-Uscire                 ³"<<endl;
        cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";
        cout<<endl<<"Scelta: ";
        cin>>scelta;
        clrscr();
        switch (scelta){
    		    case 1:modifica(squadra, n);
    		    break;
    		    case 2:aggiorna(squadra, n);
    		   }
       }while(scelta!=0);
    }
    
    void modifica(dati squadra[],int n)
    {
    {
      lettura(squadra);
    }
    {
     int scelta;
     do{
        clrscr();
        cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
        cout<<endl<<"³"<<"Modifica:     ³"<<endl;
        cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";
        cout<<endl<<"³ "<<"1-Nome       ³"<<endl;
        cout<<"³ "<<"2-Vinte      ³"<<endl;
        cout<<"³ "<<"3-Pari       ³"<<endl;
        cout<<"³ "<<"4-Perse      ³"<<endl;
        cout<<"³ "<<"5-Goal Fatti ³"<<endl;
        cout<<"³ "<<"6-Goal Subiti³"<<endl;
        cout<<"³ "<<"0-Uscire     ³"<<endl;
        cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";
        cout<<endl<<"Scelta: ";
        cin>>scelta;
        clrscr();
        switch (scelta){
    		    case 1:nome(squadra, n);
    		    break;
    		    case 2:vinte(squadra, n);
    		    break;
    		    case 3:pari(squadra, n);
    		    break;
    		    case 4:perse(squadra, n);
    		    break;
    		    case 5:gf(squadra, n);
    		    break;
    		    case 6:gs(squadra, n);
    		   }
    
       }while(scelta!=0);
    }
    }
    
    void nome(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<endl<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Squadra"<<endl;
    	cout<<endl;
    	cout<<squadra[i].nome<<endl;
    	    cout<<endl<<"Inserire il nuovo nome: ";
    	    cin>>squadra[i].nome;
    	     }
    
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    void perse(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<endl<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Perse"<<endl;
    	cout<<endl;
    	cout<<squadra[i].perse<<endl;
    	    cout<<endl<<"Inserire partite perse: ";
    	    cin>>squadra[i].perse;
    	     }
    
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    void gf(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<endl<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Goal Fatti"<<endl;
    	cout<<endl;
    	cout<<squadra[i].gf<<endl;
    	    cout<<endl<<"Inserire goal fatti: ";
    	    cin>>squadra[i].gf;
    	     }
    
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    void gs(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<endl<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Goal Subiti"<<endl;
    	cout<<endl;
    	cout<<squadra[i].gs<<endl;
    	    cout<<endl<<"Inserire goal subiti: ";
    	    cin>>squadra[i].gs;
    	     }
    
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    void vinte(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<endl<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Vinte"<<endl;
    	cout<<endl;
    	cout<<squadra[i].vinte<<endl;
    	    cout<<endl<<"Inserire vinte: ";
    	    cin>>squadra[i].vinte;
    	}
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    void pari(dati squadra[],int n)
    {
     int i;char modifica[16];
     lettura(squadra);
     cout<<"Inserire nome squadra: ";
     cin>>modifica;
     for(i=0;i<n;i++)
        {
         if(strcmp(modifica,squadra[i].nome)==0)
           {
    	cout<<endl<<"Pari"<<endl;
    	cout<<endl;
    	cout<<squadra[i].pareggiate<<endl;
    	    cout<<endl<<"Inserire pari: ";
    	    cin>>squadra[i].pareggiate;
    	     }
    
        }
         calcoli(squadra, n);
         ordinamento(squadra, n);
         scrittura(squadra, n);
    }
    
    
    void aggiorna(dati squadra[], int n)
    {
      {
       int i=0,j;
       ifstream nin;
       nin.open("n.txt");
       nin>>n;
       while(!nin.eof())
    	{
    	 i++;
    	 nin>>n;
    	}
       nin.close();
      }
       int incremento;
       do{
          clrscr();
          cout<<endl<<"Aggiornamento"<<endl;
          cout<<endl<<"Nome squadra: ";
          cin>>squadra[n].nome;
          cout<<endl<<"Partite Vinte: ";
          cin>>squadra[n].vinte;
          cout<<endl<<"Partite pareggiate: ";
          cin>>squadra[n].pareggiate;
          cout<<endl<<"Partite perse: ";
          cin>>squadra[n].perse;
          cout<<endl<<"Goal Fatti: ";
          cin>>squadra[n].gf;
          cout<<endl<<"Goal Subiti: ";
          cin>>squadra[n].gs;
          n++;
          cout<<endl<<endl<<" "<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";
          cout<<endl<<" "<<"³"<<"Inserire scelta:³"<<endl<<" "<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"<<endl<<" "<<"³ "<<"1-Caricare     ³"<<endl<<" "<<"³ "<<"0-Terminare    ³"<<endl<<" "<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"<<""<<endl<<" "<<"Scelta: ";
          cin>>incremento;
          cout<<endl;
         }
          while(incremento==1);
          calcoli(squadra, n);
          ordinamento(squadra, n);
          scrittura(squadra, n);
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ti invito a rileggere il regolamento, soprattutto i due punti che riguardano l'indicazione obbligatoria del linguaggio nel titolo e le modalità da utilizzare per postare il codice.

    Soprattutto se il codice è lungo, come nel tuo caso: diventa un'accozzaglia incomprensibile senza i tag CODE.

    Ho corretto e aggiornato il titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    si scusate, comunque uso turbo c++ della boroland e win xp

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.