Oppure

Loading
15/04/09 16:43
matteog
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;

struct Totocalcio
{
    char codice[20];
    char giorno[20];
    char mese[20];
    char anno[20];
    char locali[20];
    char ospiti[20];
    char risultato[20];
}giocate[1000],appoggio[1000],finale[52];

void main()
{
    int scelta,I=0,count=0;
    char anno[5],mese[10];
    do
    {
    cout<<"Questo programma serve per la gestione delle schedine del totocalcio"<<endl;
    cout<<"1-Gioca schedina del totocalcio"<<endl<<"2-Ricerca schedina(per anno e per mese)"<<endl<<"3-Esci"<<endl;
    cin>>scelta;
    switch (scelta)
    {
    case (1):
        cout<<"Inserisci il codice della scheda"<<endl;
        cin>>appoggio[0].codice;
        cout<<"Inserisci il giorno"<<endl;
        cin>>appoggio[0].giorno;
        cout<<"Inserisci il mese"<<endl;
        cin>>appoggio[0].mese;
        cout<<"Inserisci l'anno"<<endl;
        cin>>appoggio[0].anno;
        for (I=0;I<13;I++)
        {
            strcpy_s(giocate[I].codice,appoggio[0].codice);
            strcpy_s(giocate[I].giorno,appoggio[0].giorno);
            strcpy_s(giocate[I].mese,appoggio[0].mese);
            strcpy_s(giocate[I].anno,appoggio[0].anno);
            cout<<"Inserisci il nome della squadra che gioca in casa"<<endl;
            cin>>giocate[I].locali;
            cout<<"Inserisci il nome della squadra ospite"<<endl;
            cin>>giocate[I].ospiti;
            do
{
cout<<"inserire il risultato[1,X,2] "<<endl;
cin>>giocate[I].risultato;
}
while( (strcmp(giocate[I].risultato,"x";)!=0) && (strcmp(giocate[I].risultato,"1";)!=0) && (strcmp(giocate[I].risultato,"2";)!=0) );
cin.ignore();
            
        }
        count=count+1;
        break;
    
    case (2):
        cout<<"Inserisci l'anno delle schedine che vuoi cercare"<<endl;
        cin>>anno;
        cout<<"Inserisci il mese delle schedine che vuoi cercare"<<endl;
        cin>>mese;
        for (I=0;I<count*13;I++)
        {
            if (strcmp(giocate[I].anno,anno)==0 && strcmp(giocate[I].mese,mese)==0)
            {
                strcpy_s(finale[I].codice,giocate[I].codice);
                strcpy_s(finale[I].giorno,giocate[I].giorno);
                strcpy_s(finale[I].mese,giocate[I].mese);
                strcpy_s(finale[I].anno,giocate[I].anno);
                strcpy_s(finale[I].locali,giocate[I].locali);
                strcpy_s(finale[I].ospiti,giocate[I].ospiti);
                strcpy_s(finale[I].risultato,giocate[I].risultato);
            }
        }
        break;

    case (3):
        break;
    default:
        cout<<"Attenzione.E' stato inserito un numero non valido."<<endl;
    }
}while(scelta!=3);
    system("pause";);
}



il programma riscontra uin problema nella ricerca perchè se metto o meglio inserisco tre schedine ne trova solo una e le altre se le cerco successivamente sono come scomparse.Perchè uff come posso fare a modificarlo????????:noway:
aaa
16/04/09 8:47
gigisoft
Postato originariamente da matteog:

[...]

il programma riscontra uin problema nella ricerca perchè se metto o meglio inserisco tre schedine ne trova solo una e le altre se le cerco successivamente sono come scomparse.Perchè uff come posso fare a modificarlo????????:noway:


Il problema e' che ogni volta l'inserimanto lo fai a partire dalla posizione 0.
Prova a fare cosi', nel ciclo dell'inserimento fai:

[...]

int J = Count * 13;
for (I = 0; I < 13; I++)
[...]
     giocate[J + I].codice
[...]


Per la ricerca poi, si puo' ottimizzare cosi':

[...]

for (J = 0; J < count * 13; J += 13)
    {
     if ((strcmp(giocate[J].anno,anno) == 0) && (strcmp(giocate[J].mese,mese) == 0))
        {
         for (I = 0; I < 13; I++)
             {
              [...]
              strcpy_s(finale[J + I]
              [...]
             }
        }

[...]

Ultima modifica effettuata da gigisoft 16/04/09 8:49
aaa