Programma Database in C

di il
95 risposte

95 Risposte - Pagina 6

  • Re: Programma Database in C

    Non posso perché non vedo una struttura dei pagamenti ... come inserisci nel tuo db i dati relativi ai pagamenti per gli iscritti?
  • Re: Programma Database in C

    La struct che gestisce le iscrizioni ed i pagamenti è questa:
    struct Iscrizioni_Pagamenti
             {
                int  numero_tessera[50];
                char datadinascita[50];
                double quota[50];
                char data_pagamento[50];
             };
             typedef struct Iscrizioni_Pagamenti reg_payments;
             reg_payments *r;
  • Re: Programma Database in C

    E dove e come la utilizzi nel tuo programma?
  • Re: Programma Database in C

    /*-------- FUNZIONI GESTIONE ISCRIZIONI --------*/
    int aggiungi_iscrizione(int n)
    {
    	r = (registration *) realloc(r, (n+1) * sizeof(registration));
    
    	printf("Inserire il numero della tessera:\n");
    	if( scanf("%d", (r+n)->numero_tessera) == 1)
    	{
    		printf("%d", (r+n)->numero_tessera);
    	} else {
    		printf("Input FAILED!\n");
    	}
    	printf("Inserire la data di nascita:\n");
    	if( scanf("%s", (r+n)->datadinascita) == 1)
    	{
    		printf("%s", (r+n)->datadinascita);
    	} else {
    		printf("Input FAILED!\n");
    	}
    	printf("Inserire il prezzo dell'iscrizione:\n");
    	if( scanf("%lf", (r+n)->quota) == 1)
    	{
    		printf("%lf", (r+n)->quota);
    	} else {
    		printf("Input FAILED!\n");
    	}
    	printf("Inserire la data del pagamento (formato GG/MM/AAAA:\n");
    	if( scanf("%s", (r+n)->data_pagamento) == 1)
    	{
    		printf("%s", (r+n)->data_pagamento);
    	} else {
    		printf("Input FAILED!\n");
    	}
    	n++;
    
    	return n;
    }
    
    void leggi_iscrizione(int n)
    {
    	int i;
    
    	printf("Numero tessera\tData di nascita\tPagamento\tData del pagamento\n");
    
    	for(i=0;i<n;i++)
    	{
    		printf("%d\t%s\t%f\t%s\n", (r+i)->numero_tessera, (r+i)->datadinascita, (r+i)->quota, (r+i)->data_pagamento);
    		printf("\n");
    	}
    }
    
    void aggiorna_iscrizione(int n)
    {
    	char ricerca[50];
    	int i;
    
    	printf("Numero tessera da cercare:\n");
    	if( scanf("%s", ricerca) == 1)
    	{
    		printf("%s", ricerca);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0;i<n;i++)
    	{
    		if(strcmp((r+i)->numero_tessera,ricerca)==0)
    		{
    			printf("Nuovo numero di tessera:\n");
    			if( scanf("%d", (r+i)->numero_tessera) == 1)
    			{
    				printf("%d", (r+i)->numero_tessera);
    			} else {
    				printf("Input FAILED!\n");
    			}
    			printf("Nuovo data di nascita:\n");
    			if( scanf("%s", (r+i)->datadinascita) == 1)
    			{
    				printf("%s", (r+i)->datadinascita);
    			} else {
    				printf("Input FAILED!\n");
    			}
    			printf("Nuovo prezzo dell'iscrizione:\n");
    			if( scanf("%f", (r+i)->quota) == 1)
    			{
    				printf("%lf", (r+i)->quota);
    			} else {
    				printf("Input FAILED!\n");
    			}
    			printf("Nuova data del pagamento:\n");
    			if( scanf("%s", (r+i)->data_pagamento) == 1)
    			{
    				printf("%s", (r+i)->data_pagamento);
    			} else {
    				printf("Input FAILED!\n");
    			}
    		}
    	}
    }
    
    int elimina_iscrizione(int n)
    {
    	char ricerca[50];
    	int i;
    	int j=0;
    	int indice;
    	int flag=0;
    	registration *v;
    	v=NULL;
    
    	printf("Numero tessera da eliminare:\n");
    	if( scanf("%s", ricerca) == 1)
    	{
    		printf("%s", ricerca);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0;i<n;i++)
    	{
    		if(strcmp((r+i)->numero_tessera,ricerca)==0)
    		{
    			flag=1; //trovato=1, non trovato=0
    			indice=i;
    		}
    	}
    	if(flag)
    	{
    		r = (registration *) realloc(r, (n-1) * sizeof(registration));
    		for(i=0;i<n;i++)
    		{
    			if(i != indice)
    			{
    				strcpy((v+j)->numero_tessera, (r+i)->numero_tessera);
    				strcpy((v+j)->datadinascita, (r+i)->datadinascita);
    				strcpy((v+j)->quota, (r+i)->quota);
    				strcpy((v+j)->data_pagamento, (v+j)->data_pagamento);
    				j++;
    			}
    		}
    		free(r);
    		n--;
    		r=v;
    	} else printf("Non trovato");
    
    	return n;
    }
  • Re: Programma Database in C

    Dunque, quando accetti un ingresso, dovrai cercare tra i dati dell'iscrizione (confrontando l'id fornito con gli id registrati) per capire se per quell'id esiste il pagamento. Se lo trovi continui con la richiesta dei dati d'ingresso altrimenti termini dicendo il socio non ha pagato.
  • Re: Programma Database in C

    Eh e proprio questo non sono in grado di farlo.....Mi seguiresti passo per passo?
  • Re: Programma Database in C

    No Andrea ... non ti posso seguire passo per passo perché non ne ho il tempo, questo non è lo scopo del forum e non siamo a scuola.

    Ti ho pure detto che questo thread è durato veramente troppo tanto da sembrare una chat oltre al fatto che il codice presenta mille problemi e che andrebbe rivisto tutto.
  • Re: Programma Database in C

    Almeno potresti dirmi in quale punto preciso di quelle funzioni che ti ho mandato devo metterci questa?
  • Re: Programma Database in C

    Ti ho GIA' DETTO ... "quando accetti un ingresso" ... vedi tra i tuoi menu e le tue funzioni di gestione degli ingressi (add_entrance ...)
  • Re: Programma Database in C

    Ok grazie
  • Re: Programma Database in C

    Ragazzi mi sapreste dire come si fa la funzione che permette di modificare alcune righe di un file di testo?
  • Re: Programma Database in C

    Ma questo è un altro problema ... è proprio inutile dirti di non continuare in questo lunghissimo thread, vero?
  • Re: Programma Database in C

    Non posso più scrivere in questo thread?
  • Re: Programma Database in C

    L'argomento è diverso e sei OT . E' una regola dei forum . Si crea un nuovo thread con un titolo che riguarda il problema.
  • Re: Programma Database in C

    OT? Che significa?
Devi accedere o registrarti per scrivere nel forum
95 risposte