Programma Agenda da migliorare

di il
6 risposte

Programma Agenda da migliorare

Ciao ragazzi vi propongo un mio algoritmo di un' agenda il testo e l' algoritmo delle richieste per essa,si inserisce un appuntamento esso non viene visualizzato e vorrei passare tutto attraverso una Struct ma non lo so fare ancora, potete darci un occhiata? fatemi sapere!!!

/*
  Name: Agenda Elettronica
  Copyright: 0124000773
  Author: Giacomo Gargiulo
  Description: Gestione di un agenda elettronica
  
Si vuole simulare la gestione di un’agenda elettronica contenente appuntamenti.
L’agenda è suddivisa in giorni, per 12 mesi complessivi. Ogni giorno è identificato
da 24 ore. Dato un mese, un giorno e un’ora permettere all’utente di:
• Inserire un appuntamento
• Disdire un appuntamento
Inoltre permettere all’utente di
• Data un’ora visualizzare tutti gli appuntamenti in un mese
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define g_31 31
#define g_28 28
#define g_29 29
#define g_30 30
void inserire(char Agenda[12][31][24],int );
void disdire(char Agenda[12][31][24],int );
void viualizzare(char Agenda[12][31][24],int );
int main()
{
    char nome[20];         //dichiaro una variablie per salvare il nome dell' utente
    char Agenda[12][31][24]; //Dichiaro un array 3D di char in cui vengono salvate le stringhe inserite dall'utente
    char cosa_fare;     //Dichiaro una variabile di tipo char dove vengono salvati i caratteri inseriti dall'utente 
                        //per la scelta dell'operazione da eseguire    
    int anno;
    int bisestile;
    printf("Benvenuto/a nella propria Agenda Elettronica, ora inserisca il proprio nome:\t");
    scanf("%s",&nome);
    if(nome[20]!='\0')
    {
        while( flag != 1)
        {	
			  do
			  {
			      printf("Benvenuto/a %s inserisci l' anno odierno:\t",nome);
				  scanf("%d",&anno);
				  	
			  }while(anno < 2000);
			  bisestile = anno%2;
			  
              printf("%s cosa desideri fare?\n",nome);
              printf("'V' per Visualizzare un appuntamento\n");
              printf("'I' per Inserire un appuntamento\n");
              printf("'D' per Disdire un appuntamento\n");
              printf("'S' per Uscire dall'agenda elettronica\n");
              printf("Inserire la scelta:\t");
              fflush(stdin);
              cosa_fare= getchar();//Uso la funzione getchar per inserire i caratteri per la scelta dell'operazione da eseguire
              if(cosa_fare == 'v' || cosa_fare == 'V')   //Utilizzo il costrutto di controllo if per gestire i vari casi di inseriemnto da parte dell' utente
              {
   					visualizzare(Agenda[12][31][24],bisestile);           	
  			  }   
     	  	  if(cosa_fare == 'i' || cosa_fare == 'I')
        	  {
	              	inserire(Agenda[12][31][24],bisestile);
              } 
              if(cosa_fare == 'D' || cosa_fare == 'd')
         	  {
		  	   	      disdire(Agenda[12][31][24],bisestile);
			  }             
			  if(cosa_fare == 'S' || cosa_fare == 's')
			  {
				   printf("Ciao %s e' stato un piacere esserti utile\n",nome);
	 	   	   	   flag=1;
			   }
           }   
	   }   
       system("PAUSE");
       return 0;
} 
void visualizza(Agenda[12][31][24],int bisestile)
{	 
    int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
    int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
    int flag=0;
    
	printf("\%s inserisci il mese in cui e' stato aggiunto un appuntamento o un acquisto:\t",nome);    
    scanf("%d",&scelta_mese);
			      
    if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
    {
        for( ; m <= scelta_mese ; )
        { 
            m++;
        }
        if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
        {
		   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
						 
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
                for(; h == scelta_ora; )
                {
                    for( ;g <= g_31; )
		 	  		{
        				h++;	  	    
  					}
  					g++;
				}
				fflush(stdin);
         		printf("%s \n",&Agenda[h][g][m]);
          	}
        }   
        else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
        {
			printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
            {
                for( ;h == scelta_ora ; )
                {
                	for( ;g <= g_30; )
 				    {
      					h++;
               		}
               		g++;
          		}
          		fflush(stdin);
                printf("%s\n",&Agenda[h][g][m]);
            }
        }
    } 
    else //Gestione dei mesi i cui giorni sono 28
    {
 	   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
        scanf("%d",&scelta_ora);
        if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
        {
        	if (bisestile == 0)
        	{
        		for(; h==scelta_ora; )
            	{
			    	for( ;g<=g_28; )
	 	  			{
             			h++;
                	}
                	g++;
            	}
            	fflush(stdin);
            	printf("%s\n",&Agenda[h][g][m]);
        	}
        	else
        	{
        		for(; h==scelta_ora; )
            	{
			    	for( ;g<=g_29; )
	 	  			{
             			h++;
                	}
                	g++;
            	}
            	fflush(stdin);
            	printf("%s\n",&Agenda[h][g][m]);
        	}
        }
    }
}  
void inserire(Agenda[12][31][24],int bisestile)
{
	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
	printf("%s Inserisci il mese in cui aggiungere un appuntamento o un acquisto:\t",nome);
    scanf("%d", &scelta_mese);
    if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
	{
    	for( ; m<=scelta_mese ; )
        {
			m++;
      	}
        if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
        {
 	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
            scanf("%d", &scelta_giorno);
            if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
            {
                for( ; g <= scelta_giorno ; )
                { 
                    g++;
                }
                printf("Inserire l' ora in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
                if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                {
                    for(; h==scelta_ora; )
                    {
                        h++;
                    }
					printf("Inserire l'appuntamento o le spese da effettuare:\n");
                    fflush(stdin);
                    gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                    printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                }
            }
        }
        else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
        {
   	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
            scanf("%d", &scelta_giorno);
            if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
            {
                for( ; g <= scelta_giorno ; )
                { 
                    g++;
                }
                printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
                if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                {
                    for( ; h==scelta_ora ; )
                    {
                        h++;
                    }         
                    printf("Inserire l'appuntamento o le spese da effettuare:\n");
                    fflush(stdin);
                    gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                    printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                }
            }
        } 
        else //Gestione dei mesi i cui giorni sono 28
        {
	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
            scanf("%d", &scelta_giorno);
            if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
            {
            	if (bisestile == 0)
        		{
        			for( ; h==scelta_ora; )
            		{
			    		for( ;g<=g_28; )
	 	  				{
             				g++;
                		}
                		h++;
                	}
            	}
        		else
        		{
        			for( ; h==scelta_ora; )
            		{
			    		for( ;g<=g_29; )
	 	  				{
             				g++;
                		}
                		h++;
            		}
        		}
        	}
        }
            printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
                for( ; h==scelta_ora; )
                {
                    h++;
                }
                printf("Inserire l'appuntamento o le spese da effettuare:\n");
                fflush(stdin);
                gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
            }
            
        } 
    }	
} 
void disdire(Agenda[12][31][24],int bisestile)
{
	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
	int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
    int flag=0;
    
	printf("%s Inserire il mese in cui disdire un appuntamento o un acquisto:\t",nome);
    scanf("%d", &scelta_mese);
	if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
    {
        for( ; m<=scelta_mese ; )
        { 
            m--;
        }
        if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
        {
		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
            scanf("%d", &scelta_giorno);
            if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
            {
                for( ; g <= scelta_giorno ; )
                { 
                    g++;
                }
                printf("Inserire l' ora in cui disdire un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
             	if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                {
                	for( ; h==scelta_ora; )
                    {
                        h++;
                    }
                    printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                    //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                    strcpy (&Agenda[h][g][m], "                                                       ");
                }
            }
        }
        else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
        {
		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_giorno);
        	if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
            {
                for( ; g <= scelta_giorno ; )
                { 
                    g++;
                }
                printf("Inserire l' ora in cui disdire a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
             	if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                {
                    for(; h == scelta_ora; )
                    {
                        h++;
                    }
                    printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                    //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                    strcpy (&Agenda[h][g][m], "                                                       ");               
                }
            }      
        }                 
        else //Gestione dei mesi i cui giorni sono 28
        {
		   	printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
            scanf("%d", &scelta_giorno);
            if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
            {
            	if (bisestile == 0)
        		{
        			for( ; h==scelta_ora; )
            		{
			    		for( ;g<=g_28; )
	 	  				{
             				g++;
                		}
                		h++;
                	}
            	}
        		else
        		{
        			for( ; h==scelta_ora; )
            		{
			    		for( ;g<=g_29; )
	 	  				{
             				g++;
                		}
                		h++;
            		}
        		}
        	}
    	}
        printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
        scanf("%d",&scelta_ora);
        if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
        {
        	for( ; h==scelta_ora; )
            {
                h++;
            }
            printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
            //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
            strcpy (&Agenda[h][g][m], "                                                       ");  
      	}
    }   
}

6 Risposte

  • Re: Programma Agenda da migliorare

    Primo usa i tag code per inserire codice sul forum, poi riformula la domanda perche sinceramente non si capisce cosa vuoi..
  • Re: Programma Agenda da migliorare

    
    /*
      Name: Agenda Elettronica
      Copyright: 0124000773
      Author: Giacomo Gargiulo
      Description: Gestione di un agenda elettronica
      
    Si vuole simulare la gestione di un’agenda elettronica contenente appuntamenti.
    L’agenda è suddivisa in giorni, per 12 mesi complessivi. Ogni giorno è identificato
    da 24 ore. Dato un mese, un giorno e un’ora permettere all’utente di:
    • Inserire un appuntamento
    • Disdire un appuntamento
    Inoltre permettere all’utente di
    • Data un’ora visualizzare tutti gli appuntamenti in un mese
    */
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define g_31 31
    #define g_28 28
    #define g_29 29
    #define g_30 30
    void inserire(char Agenda[12][31][24],int );
    void disdire(char Agenda[12][31][24],int );
    void viualizzare(char Agenda[12][31][24],int );
    int main()
    {
        char nome[20];         //dichiaro una variablie per salvare il nome dell' utente
        char Agenda[12][31][24]; //Dichiaro un array 3D di char in cui vengono salvate le stringhe inserite dall'utente
        char cosa_fare;     //Dichiaro una variabile di tipo char dove vengono salvati i caratteri inseriti dall'utente 
                            //per la scelta dell'operazione da eseguire    
        int anno;
        int bisestile;
        printf("Benvenuto/a nella propria Agenda Elettronica, ora inserisca il proprio nome:\t");
        scanf("%s",&nome);
        if(nome[20]!='\0')
        {
            while( flag != 1)
            {	
    			  do
    			  {
    			      printf("Benvenuto/a %s inserisci l' anno odierno:\t",nome);
    				  scanf("%d",&anno);
    				  	
    			  }while(anno < 2000);
    			  bisestile = anno%2;
    			  
                  printf("%s cosa desideri fare?\n",nome);
                  printf("'V' per Visualizzare un appuntamento\n");
                  printf("'I' per Inserire un appuntamento\n");
                  printf("'D' per Disdire un appuntamento\n");
                  printf("'S' per Uscire dall'agenda elettronica\n");
                  printf("Inserire la scelta:\t");
                  fflush(stdin);
                  cosa_fare= getchar();//Uso la funzione getchar per inserire i caratteri per la scelta dell'operazione da eseguire
                  if(cosa_fare == 'v' || cosa_fare == 'V')   //Utilizzo il costrutto di controllo if per gestire i vari casi di inseriemnto da parte dell' utente
                  {
       					visualizzare(Agenda[12][31][24],bisestile);           	
      			  }   
         	  	  if(cosa_fare == 'i' || cosa_fare == 'I')
            	  {
    	              	inserire(Agenda[12][31][24],bisestile);
                  } 
                  if(cosa_fare == 'D' || cosa_fare == 'd')
             	  {
    		  	   	      disdire(Agenda[12][31][24],bisestile);
    			  }             
    			  if(cosa_fare == 'S' || cosa_fare == 's')
    			  {
    				   printf("Ciao %s e' stato un piacere esserti utile\n",nome);
    	 	   	   	   flag=1;
    			   }
               }   
    	   }   
           system("PAUSE");
           return 0;
    } 
    void visualizza(Agenda[12][31][24],int bisestile)
    {	 
        int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
        int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
        int flag=0;
        
    	printf("\%s inserisci il mese in cui e' stato aggiunto un appuntamento o un acquisto:\t",nome);    
        scanf("%d",&scelta_mese);
    			      
        if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
        {
            for( ; m <= scelta_mese ; )
            { 
                m++;
            }
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
    		   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
    						 
                if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                {
                    for(; h == scelta_ora; )
                    {
                        for( ;g <= g_31; )
    		 	  		{
            				h++;	  	    
      					}
      					g++;
    				}
    				fflush(stdin);
             		printf("%s \n",&Agenda[h][g][m]);
              	}
            }   
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
    			printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
                if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                {
                    for( ;h == scelta_ora ; )
                    {
                    	for( ;g <= g_30; )
     				    {
          					h++;
                   		}
                   		g++;
              		}
              		fflush(stdin);
                    printf("%s\n",&Agenda[h][g][m]);
                }
            }
        } 
        else //Gestione dei mesi i cui giorni sono 28
        {
     	   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
            	if (bisestile == 0)
            	{
            		for(; h==scelta_ora; )
                	{
    			    	for( ;g<=g_28; )
    	 	  			{
                 			h++;
                    	}
                    	g++;
                	}
                	fflush(stdin);
                	printf("%s\n",&Agenda[h][g][m]);
            	}
            	else
            	{
            		for(; h==scelta_ora; )
                	{
    			    	for( ;g<=g_29; )
    	 	  			{
                 			h++;
                    	}
                    	g++;
                	}
                	fflush(stdin);
                	printf("%s\n",&Agenda[h][g][m]);
            	}
            }
        }
    }  
    void inserire(Agenda[12][31][24],int bisestile)
    {
    	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
    	printf("%s Inserisci il mese in cui aggiungere un appuntamento o un acquisto:\t",nome);
        scanf("%d", &scelta_mese);
        if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
    	{
        	for( ; m<=scelta_mese ; )
            {
    			m++;
          	}
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
     	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui aggiungere un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                    if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for(; h==scelta_ora; )
                        {
                            h++;
                        }
    					printf("Inserire l'appuntamento o le spese da effettuare:\n");
                        fflush(stdin);
                        gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                        printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                    }
                }
            }
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
       	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                    if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for( ; h==scelta_ora ; )
                        {
                            h++;
                        }         
                        printf("Inserire l'appuntamento o le spese da effettuare:\n");
                        fflush(stdin);
                        gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                        printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                    }
                }
            } 
            else //Gestione dei mesi i cui giorni sono 28
            {
    	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
                {
                	if (bisestile == 0)
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_28; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                    	}
                	}
            		else
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_29; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                		}
            		}
            	}
            }
                printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
                if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                {
                    for( ; h==scelta_ora; )
                    {
                        h++;
                    }
                    printf("Inserire l'appuntamento o le spese da effettuare:\n");
                    fflush(stdin);
                    gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                    printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                }
                
            } 
        }	
    } 
    void disdire(Agenda[12][31][24],int bisestile)
    {
    	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
    	int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
        int flag=0;
        
    	printf("%s Inserire il mese in cui disdire un appuntamento o un acquisto:\t",nome);
        scanf("%d", &scelta_mese);
    	if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
        {
            for( ; m<=scelta_mese ; )
            { 
                m--;
            }
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
    		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui disdire un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                 	if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                    {
                    	for( ; h==scelta_ora; )
                        {
                            h++;
                        }
                        printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                        //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                        strcpy (&Agenda[h][g][m], "                                                       ");
                    }
                }
            }
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
    		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_giorno);
            	if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui disdire a un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                 	if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for(; h == scelta_ora; )
                        {
                            h++;
                        }
                        printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                        //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                        strcpy (&Agenda[h][g][m], "                                                       ");               
                    }
                }      
            }                 
            else //Gestione dei mesi i cui giorni sono 28
            {
    		   	printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
                {
                	if (bisestile == 0)
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_28; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                    	}
                	}
            		else
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_29; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                		}
            		}
            	}
        	}
            printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
            	for( ; h==scelta_ora; )
                {
                    h++;
                }
                printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                strcpy (&Agenda[h][g][m], "                                                       ");  
          	}
        }   
    } 
    
  • Re: Programma Agenda da migliorare

    Questo è un codice che funziona male in quanto, la visualizzazione dell' appuntamento inserito non viene visualizzato, e vorrei suggerimenti in quanto vorrei farlo attraverso le Struct, ma ancora non la so implementare al meglio, mi potreste aiutare?
  • Re: Programma Agenda da migliorare

    Ho dato un'occhiata solo alle prime righe, e il codice è pieno di errori.
    if(nome[20]!='\0')
    Immagino tu qui voglia controllare se la stringa è vuota; ma quel codice confronta soltanto l'ultimo carattere, non tutta la stringa nome!
    Questo errore è ripetuto più volte. Prendi proprio in considerazione la funzione
    void viualizzare(char Agenda[12][31][24],int );
    Tale funzione (a cui tra l'altro manca una s), accetta come parametro un char Agenda[12][31][24]; dunque, quando vai a richiamarla, devi passargli solo agenda e non Agenda[12][31][24]!
    Così
    visualizzare(agenda, bisestile)
    passi tutta l'agenda, così
    visualizzare(agenda[12][31][24], bisestile)
    passi soltanto il carattere a quelle coordinate (che tra l'altro manco esiste, dato che gli indici partono da zero!)

    Inoltre, due paroline riguardo quella variabile bisestile. Un anno può essere o non essere bisestile, dunque andrebbe dichiarata come una variabile booleana, e non un intero. Inoltre, la riga
    bisestile = anno % 2;
    significa dividi anno per 2, prendi il resto e mettilo in bisestile. In questo modo, ipotizzando che bisestile sia booleana, allora sai se l'anno è pari o dispari. Ma che l'anno sia dispari non vuol dire che sia anche bisestile..

    Pensa prima a correggere questi errori che riguardano aspetti basilari della programmazione, come passaggio di variabili, array, matrici, e successivamente passerai a studiare i tipi strutturati!
  • Re: Programma Agenda da migliorare

    Ecco i piccoli accorgimenti per quanto mi riguarda il nome come mi consigli di fare?? la variabile bisestile, mi appunto ritornare 0 o 1 per incrementare l' array dei giorni per quanto riguarda febbraio.

    
    /*
      Name: Agenda Elettronica
      Copyright: 0124000773
      Author: Giacomo Gargiulo
      Description: Gestione di un agenda elettronica
      
    Si vuole simulare la gestione di un’agenda elettronica contenente appuntamenti.
    L’agenda è suddivisa in giorni, per 12 mesi complessivi. Ogni giorno è identificato
    da 24 ore. Dato un mese, un giorno e un’ora permettere all’utente di:
    • Inserire un appuntamento
    • Disdire un appuntamento
    Inoltre permettere all’utente di
    • Data un’ora visualizzare tutti gli appuntamenti in un mese
    */
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define g_31 31
    #define g_28 28
    #define g_29 29
    #define g_30 30
    void inserire(char Agenda[12][31][24],int  );
    void disdire(char Agenda[12][31][24],int  );
    void visualizzare(char Agenda[12][31][24],int  );
    int main()
    {
        char nome[20];         //dichiaro una variablie per salvare il nome dell' utente
        char Agenda[12][31][24]; //Dichiaro un array 3D di char in cui vengono salvate le stringhe inserite dall'utente
        char cosa_fare;     //Dichiaro una variabile di tipo char dove vengono salvati i caratteri inseriti dall'utente 
                            //per la scelta dell'operazione da eseguire    
        int anno,flag=0;
        int bisestile;
        printf("Benvenuto/a nella propria Agenda Elettronica, ora inserisca il proprio nome:\t");
        scanf("%s",&nome);
        if(nome[20]!='\0')
        {
            while( flag != 1)
            {	
    			  do
    			  {
    			      printf("Benvenuto/a %s inserisci l' anno odierno:\t",nome);
    				  scanf("%d",&anno);
    				  	
    			  }while(anno < 2000);
    			  bisestile = anno%2;
    			  
                  printf("%s cosa desideri fare?\n",nome);
                  printf("'V' per Visualizzare un appuntamento\n");
                  printf("'I' per Inserire un appuntamento\n");
                  printf("'D' per Disdire un appuntamento\n");
                  printf("'S' per Uscire dall'agenda elettronica\n");
                  printf("Inserire la scelta:\t");
                  fflush(stdin);
                  cosa_fare= getchar();//Uso la funzione getchar per inserire i caratteri per la scelta dell'operazione da eseguire
                  if(cosa_fare == 'v' || cosa_fare == 'V')   //Utilizzo il costrutto di controllo if per gestire i vari casi di inseriemnto da parte dell' utente
                  {
       					visualizzare(Agenda,bisestile);           	
      			  }   
         	  	  if(cosa_fare == 'i' || cosa_fare == 'I')
            	  {
    	              	inserire(Agenda,bisestile);
                  } 
                  if(cosa_fare == 'D' || cosa_fare == 'd')
             	  {
    		  	   	      disdire(Agenda,bisestile);
    			  }             
    			  if(cosa_fare == 'S' || cosa_fare == 's')
    			  {
    				   printf("Ciao %s e' stato un piacere esserti utile\n",nome);
    	 	   	   	   flag=1;
    			   }
               }   
    	   }   
           system("PAUSE");
           return 0;
    } 
    void visualizza(char Agenda[12][31][24],int bisestile)
    {	 
        int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
        int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
        int flag=0;
        
    	printf("Inserisci il mese in cui e' stato aggiunto un appuntamento o un acquisto:\t");    
        scanf("%d",&scelta_mese);
    			      
        if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
        {
            for( ; m <= scelta_mese ; )
            { 
                m++;
            }
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
    		   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
    						 
                if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                {
                    for(; h == scelta_ora; )
                    {
                        for( ;g <= g_31; )
    		 	  		{
            				h++;	  	    
      					}
      					g++;
    				}
    				fflush(stdin);
             		printf("%s \n",&Agenda[h][g][m]);
              	}
            }   
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
    			printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_ora);
                if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                {
                    for( ;h == scelta_ora ; )
                    {
                    	for( ;g <= g_30; )
     				    {
          					h++;
                   		}
                   		g++;
              		}
              		fflush(stdin);
                    printf("%s\n",&Agenda[h][g][m]);
                }
            }
        } 
        else //Gestione dei mesi i cui giorni sono 28
        {
     	   	printf("Inserire l' ora in cui e'stato aggiunto a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
            	if (bisestile == 0)
            	{
            		for(; h==scelta_ora; )
                	{
    			    	for( ;g<=g_28; )
    	 	  			{
                 			h++;
                    	}
                    	g++;
                	}
                	fflush(stdin);
                	printf("%s\n",&Agenda[h][g][m]);
            	}
            	else
            	{
            		for(; h==scelta_ora; )
                	{
    			    	for( ;g<=g_29; )
    	 	  			{
                 			h++;
                    	}
                    	g++;
                	}
                	fflush(stdin);
                	printf("%s\n",&Agenda[h][g][m]);
            	}
            }
        }
    }  
    void inserire(char Agenda[12][31][24],int bisestile)
    {
    	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
    	int m=0,g=0,h=0;
    	printf("Inserisci il mese in cui aggiungere un appuntamento o un acquisto:\t");
        scanf("%d", &scelta_mese);
        if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
    	{
        	for( ; m<=scelta_mese ; )
            {
    			m++;
          	}
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
     	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui aggiungere un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                    if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for(; h==scelta_ora; )
                        {
                            h++;
                        }
    					printf("Inserire l'appuntamento o le spese da effettuare:\n");
                        fflush(stdin);
                        gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                        printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                    }
                }
            }
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
       	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                    if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for( ; h==scelta_ora ; )
                        {
                            h++;
                        }         
                        printf("Inserire l'appuntamento o le spese da effettuare:\n");
                        fflush(stdin);
                        gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                        printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
                    }
                }
            } 
            else //Gestione dei mesi i cui giorni sono 28
            {
    	   		printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
                {
                	if (bisestile == 0)
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_28; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                    	}
                	}
            		else
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_29; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                		}
            		}
            	}
            }
            printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
                for( ; h==scelta_ora; )
                {
                    h++;
                }
                printf("Inserire l'appuntamento o le spese da effettuare:\n");
                fflush(stdin);
                gets(&Agenda[h][g][m]);//Utilizzo la funzione gets per inserire l'appuntamento o la spesa
                printf("%s\n E' stato aggiunto nell'agenda\n",&Agenda[h][g][m]);
            }
    
        }	
    } 
    void disdire(char Agenda[12][31][24],int bisestile)
    {
    	int scelta_mese,scelta_giorno,scelta_ora; //dischiaro dellevariabili int per le scelte
    	int m=0,g=0,h=0; //Dichiaro delle variabili int in cui vengono salvati gli indici dell'array 3D
        int flag=0;
        
    	printf("Inserire il mese in cui disdire un appuntamento o un acquisto:\t");
        scanf("%d", &scelta_mese);
    	if(scelta_mese >= 1 && scelta_mese <= 12) // Utilizo il costrutto if per controllore la gestione dei mesi
        {
            for( ; m<=scelta_mese ; )
            { 
                m--;
            }
            if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // Utilizo il costrutto if per controllore la gestione dei mesi i cui giorni sono 31
            {
    		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0 && scelta_giorno <= g_31) // controllo che l' utente inserisca i giorni esatti per i mesi di 31 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui disdire un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                 	if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
                    {
                    	for( ; h==scelta_ora; )
                        {
                            h++;
                        }
                        printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                        //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                        strcpy (&Agenda[h][g][m], "                                                       ");
                    }
                }
            }
            else if(m == 4 || m == 6 || m == 9 || m == 11) //Gestione dei mesi i cui giorni sono 30
            {
    		   	printf("Inserire il giorno in cui disdire un appuntamento o un acquisto:\t");
                scanf("%d",&scelta_giorno);
            	if(scelta_giorno > 0 && scelta_giorno <= g_30)  // controllo che l' utente inserisca i giorni esatti per i mesi di 30 giorni
                {
                    for( ; g <= scelta_giorno ; )
                    { 
                        g++;
                    }
                    printf("Inserire l' ora in cui disdire a un appuntamento o un acquisto:\t");
                    scanf("%d",&scelta_ora);
                 	if(scelta_ora >= 1 && scelta_ora <= 24)  // controllo che l' utente inserisca il giusto reang di ore
                    {
                        for(; h == scelta_ora; )
                        {
                            h++;
                        }
                        printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                        //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                        strcpy (&Agenda[h][g][m], "                                                       ");               
                    }
                }      
            }                 
            else //Gestione dei mesi i cui giorni sono 28
            {
    		   	printf("Inserire il giorno in cui aggiungere un appuntamento o un acquisto:\t");
                scanf("%d", &scelta_giorno);
                if(scelta_giorno > 0) // controllo che l' utente inserisca i giorni esatti per i mesi di 28 giorni
                {
                	if (bisestile == 0)
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_28; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                    	}
                	}
            		else
            		{
            			for( ; h==scelta_ora; )
                		{
    			    		for( ;g<=g_29; )
    	 	  				{
                 				g++;
                    		}
                    		h++;
                		}
            		}
            	}
        	}
            printf("Inserire l' ora in cui aggiungere a un appuntamento o un acquisto:\t");
            scanf("%d",&scelta_ora);
            if(scelta_ora >= 1 && scelta_ora <= 24) // controllo che l' utente inserisca il giusto reang di ore
            {
            	for( ; h==scelta_ora; )
                {
                    h++;
                }
                printf("%s\n E' stato disdetto\n",&Agenda[h][g][m]);
                //Utilizzo la funzione strcpy per copiare nell'array gli spazi vuoti x disdire l'appuntamento
                strcpy (&Agenda[h][g][m], "                                                       ");  
          	}
        }   
    }       
    
  • Re: Programma Agenda da migliorare

    X Giacomo_made4core: ma quanti 3d apri per lo stesso argomento?

    Questo lo chiudo e ti invito a leggere il regolamento
Devi accedere o registrarti per scrivere nel forum
6 risposte