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], " ");
}
}
}