Programma Database in C

di il
95 risposte

95 Risposte - Pagina 4

  • Re: Programma Database in C

    I due file .h e .c!....Il main è quello che da problemi!
  • Re: Programma Database in C

    Non mi spiego ... i file che hai mostrato, quando compilati, mostrano un gran numero di errori ... !
  • Re: Programma Database in C

    File Header
    
    /*
     * centro.h
     *
     *  Created on: 05 mag 2016
     *      Author: andrea
     */
    
    #ifndef CENTRO_H_
    #define CENTRO_H_
    
    typedef struct Corso {
    	int id[10];
    	char nome_corso[100];
    	char responsabile_corso[100];
    }t_corso;
    
    typedef struct Soci {
    	int id[10];
    	char nome_socio[100];
    	char cognome_socio[100];
    }t_soci;
    
    typedef struct Iscrizioni {
    	int id[10];
    	char data_iscrizione[100];
    	double costo[100];
    }t_iscrizioni;
    
    typedef struct Ingressi {
    	int id[10];
    	char orario_entrata[100];
    	char orario_uscita[100];
    }t_ingressi;
    
    /*-------- VARIABILI GLOBALI --------*/
    int n=0;
    char c, l;
    
    /*-------- FUNZIONI GESTIONE CORSI --------*/
    void add_course(struct Corso *c);
    void read_course(struct Corso *c);
    void update_course(struct Corso *c);
    void delete_course(struct Corso *c);
    
    /*-------- FUNZIONI GESTIONE SOCI --------*/
    void add_member(struct Soci *s);
    void read_member(struct Soci *s);
    void update_member(struct Soci *s);
    void delete_member(struct Soci *s);
    
    /*-------- FUNZIONI GESTIONE ISCRIZIONI --------*/
    void add_registration(struct Iscrizioni *r);
    void read_registration(struct Iscrizioni *r);
    void update_registration(struct Iscrizioni *r);
    void delete_registration(struct Iscrizioni *r);
    
    /*-------- FUNZIONI GESTIONE INGRESSI --------*/
    void add_entrance(struct Ingressi *e);
    void read_entrance(struct Ingressi *e);
    void update_entrance(struct Ingressi *e);
    void delete_entrance(struct Ingressi *e);
    
    /*-------- SEZIONE MENU --------*/
    void menu_corso(void);
    void menu_soci(void);
    void menu_iscrizioni(void);
    void menu_ingressi(void);
    
    /*-------- MENU PRINCIPALE --------*/
    void menu_principale(void);
    
    #endif /* CENTRO_H_ */
    
  • Re: Programma Database in C

    File SORGENTE
    
    /*
     * centro.c
     *
     *  Created on: 05 mag 2016
     *      Author: andrea
     */
    
    #include "centro.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdbool.h>
    #include <time.h>
    #include <ctype.h>
    
    /*-------- FUNZIONI GESTIONE CORSI --------*/
    void add_course(struct Corso *c)
    {
    	int i=0;
    
    	printf("Inserire ID:\n");
    	if( scanf("%d", c[i].id) == 1)
    	{
    		printf("%d", *c[i].id);
    	} else {
    		printf("Input FAILED\n");
    	}
    
    	printf("Inserire Corso:\n");
    	if( scanf("%s", c[i].nome_corso) == 1)
    	{
    		printf("%s", c[i].nome_corso);
    	} else {
    		printf("Input FAILED\n");
    	}
    
    	printf("Inserire Responsabile:\n");
    	if( scanf("%s", c[i].responsabile_corso) == 1)
    	{
    		printf("%s", c[i].responsabile_corso);
    	} else {
    		printf("Input FAILED!\n");
    	}
    }
    
    void read_course(struct Corso *c)
    {
    	int i;
    	int n=0;
    
    	for (i=0; i<n; i++)
    	{
    		printf("\nID: %d\nNOME CORSO: %s\nRESPONSABILE: %s\n", *c[i].id, c[i].nome_corso, c[i].responsabile_corso);
    	}
    }
    
    void update_course(struct Corso *c)
    {
    	int i=0;
    	int id=0;
    	int check = 0;
    
    	printf("\nInserire l'ID del corso da modificare:\n");
    	if( scanf("%d", c[i].id) == 1)
    	{
    		printf("%d", id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(c[i].id != '\0' )
    		printf("Inserisci nuovo ID:\n");
    		if( scanf("%d", c[i].id) == 1)
    		{
    			printf("%d", id);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserisci nome del corso:\n");
    		if( scanf("%s", c[i].nome_corso) == 1)
    	    {
    			printf("%s", c[i].nome_corso);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserire responsabile:\n");
    		if( scanf("%s", c[i].responsabile_corso) == 1)
    		{
    			printf("%s", c[i].responsabile_corso);
    		} else {
    			printf("Input ERRATO!\n");
    		}
    
    	    if(check == 0){
    		printf("L'id inserito NON è presente!\n");
    	    }
        }
    }
    
    void delete_course(struct Corso *c)
    {
    	int i=0, j;
    	int id;
    	int check = 0;
    
    	printf("\nInserisci l'id del corso da eliminare:\n");
    	if( scanf("%d", c[i].id) == 1)
    	{
    		printf("%d", *c[i].id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(c[i].id == &id){
    			n--;
    			for(j=*c->id; j<n; j++){
    				c[j] = c[j+1];
    				--*c->id;
    			}
    
    			check = 1;
    		}
    	}
    	if(check==0)
    		printf("L'id inserito non è presente!\n");
    
    	c=realloc(c, sizeof(struct Corso));
    }
    
    /*-------- FUNZIONI GESTIONE SOCI --------*/
    void add_member(struct Soci *s)
    {
    	int i=0;
    
    		printf("Inserire ID:\n");
    		if( scanf("%d", s[i].id) == 1)
    		{
    			printf("%d", *s[i].id);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire il nome:\n");
    		if( scanf("%s", s[i].nome_socio) == 1)
    		{
    			printf("%s", s[i].nome_socio);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire il cognome:\n");
    		if( scanf("%s", s[i].cognome_socio) == 1)
    		{
    			printf("%s", s[i].cognome_socio);
    		} else {
    			printf("Input FAILED!\n");
    		}
    }
    
    void read_member(struct Soci *s)
    {
    	int i;
    	int n=0;
    
    	for(i=0;i<n;i++){
    		printf("\nID: %d\nNOME_ %s\nCOGNOME: %s\n", *s[i].id, s[i].nome_socio, s[i].cognome_socio);
    	}
    }
    
    void update_member(struct Soci *s)
    {
    	int i=0;
    	int id=0;
    	int check = 0;
    
    	printf("\nInserire l'ID del corso da modificare:\n");
    	if( scanf("%d", s[i].id) == 1)
    	{
    		printf("%d", id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(s[i].id != '\0' )
    		printf("Inserisci nuovo ID:\n");
    		if( scanf("%d", s[i].id) == 1)
    		{
    			printf("%d", id);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserisci nuovo nome:\n");
    		if( scanf("%s", s[i].nome_socio) == 1)
    	    {
    			printf("%s", s[i].nome_socio);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserire nuovo cognome:\n");
    		if( scanf("%s", s[i].cognome_socio) == 1)
    		{
    			printf("%s", s[i].cognome_socio);
    		} else {
    			printf("Input ERRATO!\n");
    		}
    
    	    if(check == 0){
    		printf("L'id inserito NON è presente!\n");
    	    }
       }
    }
    
    void delete_member(struct Soci *s)
    {
    	int i=0, j;
    	int id;
    	int check = 0;
    
    	printf("\nInserisci l'id del socio da eliminare:\n");
    	if( scanf("%d", s[i].id) == 1)
    	{
    		printf("%d", *s[i].id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(s[i].id == &id){
    			n--;
    			for(j=*s->id; j<n; j++){
    				s[j] = s[j+1];
    				--*s->id;
    			}
    
    			check = 1;
    		}
    	}
    	if(check==0)
    		printf("L'id inserito non è presente!\n");
    
    	s=realloc(s, sizeof(struct Soci));
    }
    
    /*-------- FUNZIONI GESTIONI ISCRIZIONI --------*/
    void add_registration(struct Iscrizioni *r)
    {
    	int i=0;
    
    		printf("Inserire ID:\n");
    		if( scanf("%d", r[i].id) == 1)
    		{
    			printf("%d", *r[i].id);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire la data dell'iscrizione:\n");
    		if( scanf("%s", r[i].data_iscrizione) == 1)
    		{
    			printf("%s", r[i].data_iscrizione);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire il costo:\n");
    		if( scanf("%lf", r[i].costo) == 1)
    		{
    			printf("%lf", *r->costo);
    		} else {
    			printf("Input FAILED!\n");
    		}
    }
    
    void read_registration(struct Iscrizioni *r)
    {
    	int i;
    	int n=0;
    
    	for(i=0;i<n;i++){
    		printf("\nID: %d\nDATA: %s\nCOSTO: %lf\n", *r[i].id, r[i].data_iscrizione, *r->costo);
    	}
    }
    
    void update_registration(struct Iscrizioni *r)
    {
    	int i=0;
    	int id=0;
    	int check = 0;
    
    	printf("\nInserire l'ID dell'iscrizione da modificare:\n");
    	if( scanf("%d", r[i].id) == 1)
    	{
    		printf("%d", id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(r[i].id != '\0' )
    		printf("Inserisci nuovo ID:\n");
    		if( scanf("%d", r[i].id) == 1)
    		{
    			printf("%d", id);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserisci nuovo nome:\n");
    		if( scanf("%s", r[i].data_iscrizione) == 1)
    	    {
    			printf("%s", r[i].data_iscrizione);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserire nuovo cognome:\n");
    		if( scanf("%s", r[i].data_iscrizione) == 1)
    		{
    			printf("%s", r[i].data_iscrizione);
    		} else {
    			printf("Input ERRATO!\n");
    		}
    
    	    if(check == 0){
    		printf("L'id inserito NON è presente!\n");
    	    }
       }
    }
    
    void delete_registration(struct Iscrizioni *r)
    {
    	int i=0, j;
    	int id;
    	int check = 0;
    
    	printf("\nInserisci l'id del socio da eliminare:\n");
    	if( scanf("%d", r[i].id) == 1)
    	{
    		printf("%d", *r[i].id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(r[i].id == &id){
    			n--;
    			for(j=*r->id; j<n; j++){
    				r[j] = r[j+1];
    				--*r->id;
    			}
    
    			check = 1;
    		}
    	}
    	if(check==0)
    		printf("L'id inserito non è presente!\n");
    
    	r=realloc(r, sizeof(struct Iscrizioni));
    }
    
    /*-------- FUNZIONI GESTIONE INGRESSI --------*/
    void add_entrance(struct Ingressi *e)
    {
    	int i=0;
    
    		printf("Inserire ID:\n");
    		if( scanf("%d", e[i].id) == 1)
    		{
    			printf("%d", *e[i].id);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire l'orario di entrata:\n");
    		if( scanf("%s", e[i].orario_entrata) == 1)
    		{
    			printf("%s", e[i].orario_entrata);
    		} else {
    			printf("Input FAILED\n");
    		}
    
    		printf("Inserire l'orario di uscita:\n");
    		if( scanf("%s", e[i].orario_uscita) == 1)
    		{
    			printf("%s", e[i].orario_uscita);
    		} else {
    			printf("Input FAILED!\n");
    		}
    }
    
    void read_entrance(struct Ingressi *e)
    {
    	int i;
    	int n=0;
    
    	for(i=0;i<n;i++){
    		printf("\nID: %d\nORA INGRESSO: %s\nORARIO USCITA: %s\n", *e[i].id, e[i].orario_entrata, e[i].orario_uscita);
    	}
    }
    
    void update_entrance(struct Ingressi *e)
    {
    	int i=0;
    	int id=0;
    	int check = 0;
    
    	printf("\nInserire l'ID dell'ingresso da modificare:\n");
    	if( scanf("%d", e[i].id) == 1)
    	{
    		printf("%d", id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(e[i].id != '\0' )
    		printf("Inserisci nuovo ID:\n");
    		if( scanf("%d", e[i].id) == 1)
    		{
    			printf("%d", id);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserisci nuovo orario di ingresso:\n");
    		if( scanf("%s", e[i].orario_entrata) == 1)
    	    {
    			printf("%s", e[i].orario_entrata);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		printf("Inserire nuovo orario di uscita:\n");
    		if( scanf("%s", e[i].orario_uscita) == 1)
    		{
    			printf("%s", e[i].orario_uscita);
    		} else {
    			printf("Input ERRATO!\n");
    		}
    
    	    if(check == 0){
    		printf("L'id inserito NON è presente!\n");
    	    }
       }
    }
    
    void delete_entrance(struct Ingressi *e)
    {
    	int i=0, j;
    	int id;
    	int check = 0;
    
    	printf("\nInserisci l'id dell'ingresso da eliminare:\n");
    	if( scanf("%d", e[i].id) == 1)
    	{
    		printf("%d", *e[i].id);
    	} else {
    		printf("Input FAILED!\n");
    	}
    
    	for(i=0; i<n; i++){
    		if(e[i].id == &id){
    			n--;
    			for(j=*e->id; j<n; j++){
    				e[j] = e[j+1];
    				--*e->id;
    			}
    
    			check = 1;
    		}
    	}
    	if(check==0)
    		printf("L'id inserito non è presente!\n");
    
    	e=realloc(e, sizeof(struct Soci));
    }
    
    /*-------- SEZIONE MENU --------*/
    void menu_corso(void)
    {
    	int systemRet = system("clear");
    	int sysPause = system("pause");
    	int scelta=0;
    	int torna=0;
    	do
    	{
    		if(systemRet == -1){
    			//System FAILED
    		}
    		printf("\nMenù Corso:\n\n");
    
    		/*Elenco funzioni disponibili in output*/
    		printf("[1] Aggiungi\n");
    		printf("[2] Visualizza\n");
    		printf("[3] Modifica\n");
    		printf("[4] Elimina\n");
    		/*fine elenco funzioni*/
    
    		printf("\nEffettua la scelta: ");
    		if( scanf("%d", &scelta) == 1)
    	    {
    			printf("%d", scelta);
    		} else {
    			printf("Scelta ERRATA!\n");
    		}
    
    		/*Inizio struttura di controllo per permettere la scelta della funzione desiderata */
    
    		switch(scelta)
    		{
    		case 1: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void add_course(struct Corso *c);
    			    if(sysPause == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 2: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void read_course(struct Corso *c);
    			    if(sysPause == -1){
    			    	//System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 3: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void update_course(struct Corso *c);
    			    if(sysPause == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 4: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void delete_course(struct Corso *c);
    			    if(sysPause == -1){
    				    //System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    	   default: printf("Scelta non corretta!\n");
    		        break;
    	   }
    	   printf("Si desidera tornare al Menù Principale?\n\n");
    	   printf("[1] Si, desidero tornare al Menù Principale\n");
    	   printf("[0] No, desidero uscire\n\n");
    	   printf("Effettua la scelta: ");
    	   if( scanf("%d", &torna) <= 1)
    	   {
    		   printf("%d", torna);
    	   } else {
    		   printf("Scelta ERRATA!\n");
    	   }
    	}
    	while (torna <= 1);
    }
    
    void menu_soci(void)
    {
    	int systemRet = system("cls");
    	int sysPause = system("pause");
    	int scelta=0;
    	int torna=0;
    	do
    	{
    		if(systemRet == -1){
    			//System FAILED
    		}
    		printf("\nMenu Soci:\n\n");
    
    		/*Elenco funzioni disponibili in output*/
    		printf("[1] Aggiungi\n");
    		printf("[2] Visualizza\n");
    		printf("[3] Modifica\n");
    		printf("[4] Elimina\n");
    		/*fine elenco funzioni*/
    
    		printf("\nEffettua la scelta: ");
    		if( scanf("%d", &scelta) <= 4)
    	    {
    			printf("%d", scelta);
    		} else {
    			printf("Scelta ERRATA!\n");
    		}
    
    		/*Inizio struttura di controllo per permettere la scelta della funzione desiderata */
    
    		switch(scelta)
    		{
    		case 1: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void add_member(struct Soci *s);
    			    if(sysPause == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 2: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void read_member(struct Soci *s);
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 3: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void update_member(struct Soci *s);
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 4: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void delete_member(struct Soci *s);
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    	   default: printf("Scelta non corretta!\n");
    		        break;
    	   }
    	   printf("Si desidera tornare al Menù Principale?\n\n");
    	   printf("[1] Si, desidero tornare al Menù Principale\n");
    	   printf("[0] No, desidero uscire\n\n");
           printf("Effettua la scelta: ");
    	   if( scanf("%d", &torna) <= 1)
    	   {
    		   printf("%d", torna);
    	   } else {
    		   printf("Scelta ERRATA!\n");
    	   }
    	}
    	while (torna <= 1);
    }
    
    void menu_iscrizioni(void)
    {
    	int systemRet = system("cls");
    	int sysPause = system("pause");
    	int scelta=0;
    	int torna=0;
    	do
    	{
    
    		if(systemRet == -1){
    			//System FAILED
    		}
    		printf("\nMenu Iscrizioni:\n\n");
    
    		/*Elenco funzioni disponibili in output*/
    		printf("[1] Aggiungi\n");
    		printf("[2] Visualizza\n");
    		printf("[3] Modifica\n");
    		printf("[4] Elimina\n");
    		/*fine elenco funzioni*/
    
    		printf("\nEffettua la scelta: ");
    		if( scanf("%d", &scelta) <= 4)
    	    {
    			printf("%d", scelta);
    		} else {
    			printf("Scelta ERRATA!\n");
    		}
    
    		/*Inizio struttura di controllo per permettere la scelta della funzione desiderata */
    
    		switch(scelta)
    		{
    		case 1: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void add_registration(struct Iscrizioni *r);
    			    if(sysPause == -1){
    				    //System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 2: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void read_registration(struct Iscrizioni *r);
    			    if(sysPause == -1){
    				    //System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 3: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void update_registration(struct Iscrizioni *r);
    			    if(sysPause == -1){
    				    //System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 4: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void delete_registration(struct Iscrizioni *r);
    			    if(sysPause == -1){
    				    //System PAUSED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    	   default: printf("Scelta non corretta!\n");
    		        break;
    	   }
    	   printf("Si desidera tornare al Menù Principale?\n\n");
    	   printf("[1] Si, desidero tornare al Menù Principale\n");
    	   printf("[0] No, desidero uscire\n\n");
    	   printf("Effettua la scelta: ");
    	   if( scanf("%d", &torna) <= 1)
    	   {
    		   printf("%d", torna);
    	   } else {
    		   printf("Scelta ERRATA!\n");
    	   }
    	}
    	while (torna <= 1);
    }
    
    void menu_ingressi(void)
    {
    	int systemRet = system("cls");
    	int sysPause = system("pause");
    	int scelta=0;
    	int torna=0;
    	do
    	{
    		if(systemRet == -1){
    			//System FAILED
    		}
    		printf("Menu Ingressi:\n\n");
    
    		/*Elenco funzioni disponibili in output*/
    		printf("[1] Aggiungi\n");
    		printf("[2] Visualizza\n");
    		printf("[3] Modifica\n");
    		printf("[4] Elimina\n");
    		/*fine elenco funzioni*/
    
    		printf("\nEffettua la scelta: ");
    		if( scanf("%d", &scelta) <= 4)
    	    {
    			printf("%d", scelta);
    		} else {
    			printf("Scelta ERRATA!\n");
    		}
    
    		/*Inizio struttura di controllo per permettere la scelta della funzione desiderata */
    
    		switch(scelta)
    		{
    		case 1: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void add_entrance(struct Ingressi *e);
    			    if(sysPause == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 2: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void read_entrance(struct Ingressi *e);
    			    if(sysPause == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 3: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void update_entrance(struct Ingressi *e);
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    		case 4: if(systemRet == -1){
    				    //System FAILED
    			    }
    			    void delete_entrance(struct Ingressi *e);
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    if(systemRet == -1){
    				    //System FAILED
    			    }
    			    break;
    	   default: printf("Scelta non corretta!\n");
    		        break;
    	   }
    	   printf("Si desidera tornare al Menù Principale?\n\n");
    	   printf("[1] Si, desidero tornare al Menù Principale\n");
    	   printf("[0] No, desidero uscire\n\n");
    	   printf("Effettua la scelta: ");
    	   if( scanf("%d", &torna) <= 1)
    	   {
    		   printf("%d", torna);
    	   } else {
    	       printf("Scelta ERRATA!\n");
    	   }
    	}
    	while (torna != 'n');
    }
    
    void menu_principale(void)
    {
    	int systemRet = system("clear");
    	int sysPause = system("pause");
    	int scelta, torna;
    
    	do
    	{
    		printf("Menu Principale\n\n");
    		printf("[1]. Corsi\n");
    		printf("[2]. Soci\n");
    		printf("[3]. Iscrizioni\n");
    		printf("[4]. Ingressi\n");
    		printf("\nCosa scegli di fare?: ");
    		if( scanf("%d", &scelta) <= 4 )
    		{
    			printf("%d", scelta);
    		} else {
    			printf("Input FAILED!\n");
    		}
    
    		switch(scelta)
    		{
    		case 1: if(systemRet == -1){
    			       //System FAILED
    		        }
    		        menu_corso();
    			    if(sysPause == -1){
    			    	//System PAUSED
    			    }
    			    if(systemRet == -1){
    			    	//System FAILED
    			    }
    		        break;
    		case 2: if(systemRet == -1){
    			     //System FAILED
    	           }
    	           menu_soci();
    		       if(sysPause == -1){
    		    	 //System PAUSED
    		       }
    		       if(systemRet == -1){
    		    	 //System FAILED
    		       }
    	           break;
    		case 3: if(systemRet == -1){
    		         //System FAILED
    	            }
    	            menu_iscrizioni();
    		        if(sysPause == -1){
    		    	 //System PAUSED
    		        }
    		        if(systemRet == -1){
    		    	 //System FAILED
    		        }
    	            break;
    		case 4: if(systemRet == -1){
    		         //System FAILED
    	            }
    	            menu_ingressi();
    		        if(sysPause == -1){
    		    	 //System PAUSED
    		        }
    		        if(systemRet == -1){
    		    	 //System FAILED
    		        }
    	            break;
    	   default: printf("La scelta non è corretta!\n");
    	            break;
    	   }
    	   printf("Si desidera uscire dal programma?\n\n");
    	   printf("[1] Si!\n");
    	   printf("[0] No!\n\n");
    	   printf("Effettua la scelta: ");
    	   if( scanf("%d", &torna) == 0)
    	   {
    		   menu_principale();
    	   } else if( scanf("%d", &torna) == 1)
    		   exit(3);
    	} while (scelta <= 4);
    }
    
    
  • Re: Programma Database in C

    E questo è il main
    
    /*
     ============================================================================
     Name        : centrosportivo_main.c
     Author      : Andrea
     Version     :
     Copyright   : Your copyright notice
     Description : Hello World in C, Ansi-style
     ============================================================================
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include "centro.h"
    
    int main(){
    	menu_principale();
    	return 0;
    }
    
  • Re: Programma Database in C

    Fammi capire...

    Adesso funziona? O no?
  • Re: Programma Database in C

    Allora adesso praticamente stampa il menu principale e i sottomenu.....ma, quando mi trovo nei sottomenu dei vari settori, seleziono ad esempio la voce "aggiungi" nel sottomenu "corso"(ma questa cosa succede con qualunque sottomenu e qualsiasi selezione faccia) non mi porta nella funzione di aggiunta
  • Re: Programma Database in C

    Nel caso dell'aggiunta di un corso hai scritto

    void add_course(struct Corso *c);

    che è la dichiarazione della funzione non la sua chiamata. E così in tutto il codice ... confondi le dichiarazioni con le chiamate ... ancora non ci siamo con il C ...
  • Re: Programma Database in C

    Infatti quella è la funzione di implementazione, non è la chiamata.....la funzione la chiamo nella funzione del menu corso......e la sto richiamando così : add_course(*c)......ma non va.....tu mi sai dire cosa ci va tra le parentesi?
  • Re: Programma Database in C

    Io sto guardando nella funzione menu_corso nel case 1 dello switch...
  • Re: Programma Database in C

    Cosa devo mettere come argomento di add_course nella funzione menu_corso nel case 1 secondo te??
  • Re: Programma Database in C

    Allora Andrea ... questa discussione è già di 4 pagine e sta diventando una chat più che un problema da forum.

    Da quello che chiedi sembra che il programma non l'abbia scritto tu ma l'abbia copiato da qualche parte, senza capire cosa copiavi.

    Il grande problema del programma è che il codice delle funzioni è praticamente tutto sbagliato e quindi è difficile darti delle indicazioni se poi non possono essere applicate perché non funzionerebbe tutto il resto.

    Ad esempio, la add_course (perché non la chiami aggiungi_corso in italiano come menu_principale? Forse perché l'hai copiata così da qualche parte?), hai scritto che deve essere così

    add_course(struct Corso *c)

    e quindi la funzione si aspetta un "puntatore ad una struttura Corso", sei d'accordo? Quindi andrebbe chiamata così

    struct Corso corso;
    add_course(&corso);

    ma nella funzione tu utilizzi c con i fisso a 0 quasi come se dovessi utilizzare un array di strutture corsi e quindi dovrebbe essere

    struct Corso corsi[100];
    add_course(corsi);

    ma ovviamente non dovrebbe più essere i=0 perché altrimenti useresti sempre e solo il primo corso. Avresti bisogno di una variabile contatore di corsi attualmente presenti nell'array di strutture (che possiamo assimilare ad un db), contatore da incrementare dopo aver aggiunto il nuovo corso.

    Variabile contatore che appare nella funzione read_course (la variabile n) e che però è locale alla funzione e a zero quindi inutile.

    Per non parlare della delete_course, il cui codice non funzionerebbe mai e così per le altre funzioni.

    Un altro grande problema è nelle strutture dove scrivi

    int id[10];

    che rappresenta un vettore di 10 interi e non un intero da 10 cifre e neanche una stringa da 10 caratteri. Che ci fai con 10 numeri interi? Sbagliato ... forse è un id numerico e quindi deve essere

    int id;

    oppure è alfanumerico e allora deve essere

    char id[10];

    Nelle funzioni lo tratti sempre in maniera diversa (nelle scanf, nelle printf e nelle ricerche) e comunque sempre in modo sbagliato ...

    Per finire, tra i tanti problemi del codice, ci sono tutti quei controlli di systemRet e sysPause assolutamente inutili e incomprensibili.

    In definitiva, il programma andrebbe rivisto *interamente*, quasi riscritto ma mi sembra che tu adesso non ne abbia le capacità. Probabilmente devi farti aiutare da qualcuno "in presenza" (un professore o un collega) perché dal forum non potrai avere suggerimenti conclusivi (a meno che qualcuno non lo riscriva tutto per te e non mi pare il caso).

    Questo lungo post è anche per dirti che non risponderò più in questo thread a problemi singoli del tuo codice proprio perché è tutto da rivedere.
    Sono a disposizione per piccoli suggerimenti in thread separati e specifici.
  • Re: Programma Database in C

    Ok capisco.......ma cmq quei piccoli controlli systemRet e sysPause sono utilizzati per eliminare dei fastidiosi warning di eclipse....perchè per fare questo progetto mi è stato chiesto di usare Eclipse.....Grazie mille a tutti comunque e chiudo qui la discussione
  • Re: Programma Database in C

    Comunque, invece di inventare soluzioni astruse, leggi il warning con attenzione e vedi come evitarlo.

    (I thread non si chiudono ...)
  • Re: Programma Database in C

    Ah ok....comunque un warning ricorrente con eclipse in questo case è : "ignoring returning value of 'scanf',declared with attribute warn_unused_result". che mettendo quegli strani if agli scanf.....spariscono. Per questo li ho messi
Devi accedere o registrarti per scrivere nel forum
95 risposte