Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Si vuole simulare un'agenda elettronica. Essa è divisa da mesi e giorni con i vari orari.
- L'agenda permette all'utente di inserire, disdire e visualizzare un appuntamento*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define NULL 0;
- typedef struct agenda { //Dichiaro la struct
- char appuntamento[20];
- int ora;
- int mese;
- int giorno;
- char oggetto[100]
- };
- //Dichiaro le funzioni per l'inserimento dell'appuntamento, per la visualizzazione di quest'ultimo e per la disdetta
- int inserire(struct agenda appuntamento [], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[]);
- int visualizzare(struct agenda appuntamento [], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[]);
- int disdire(struct agenda appuntamento [], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[]);
- int main(){
- struct agenda appuntamento[100];
- struct agenda ora;
- struct agenda mese;
- struct agenda giorno;
- struct agenda oggetto[100];
- int scelta;
- printf("Benvenuto nella tua agenda elettronica!");
- //Menu' per far scegliere all'utente cosa fare
- while(1){
- printf("\nDigita: \n1 per inserire un appunamento\n2 per disdire un appuntamento\n3 per visualizzare gli appuntamenti di un mese\n4 per uscire\n");
- scanf("%d",&scelta);
- switch(scelta){ //i vari casi in base a cosa l'utente vuole fare
- case 1:
- inserire(appuntamento, ora, mese, giorno, oggetto); //Inserimento di un appuntamento
- break;
- case 2:
- disdire(appuntamento, ora, mese, giorno, oggetto); //Disdetta di un appuntamento
- break;
- case 3:
- visualizzare(appuntamento, ora, mese, giorno, oggetto); //Visualizzazione degli appuntamenti di un mese
- break;
- case 4:
- return 0; //Uscita dal programma
- default:
- printf("\nInserisci un valore consentito"); // Visualizza l'errore nel caso di un valore non consentito
- break;
- }
- }
- return 0;
- }
- //CASO 1: Dove avviene l'inserimento dell'appuntamento
- int inserire(struct agenda appuntamento [100], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[100]){
- int n,i;
- printf("\nQuanti appuntamenti vuoi inserire? ");
- scanf("%d", &n);
- for(i=0; i<n; i++){ //Inserimento ripetuto in base a quanti appuntamenti l'utente vuole inserire
- printf("\nAppuntamento %d", i+1);
- do{ //Ciclo per non far commettere errori di inserimento all'utente
- printf("\nInserisci numericamente il mese:");
- scanf("%d", &appuntamento[i].mese); //Inserimento del mese
- }while(!(appuntamento[i].mese>=1 &&appuntamento[i].mese<=12));
- do{
- printf("Inserisci numericamente il giorno:");
- scanf("%d", &appuntamento[i].giorno); //Inserimento del giorno
- }while(!(appuntamento[i].giorno>=1 && appuntamento[i].giorno<=31));
- do{
- printf("Inserisci numericamente l'ora:");
- scanf("%d", &appuntamento[i].ora); //Inserimento dell'ora
- }while (!(appuntamento[i].ora>=0 &&appuntamento[i].ora <=23));
- fflush(stdin); //Svuotamento del buffer
- puts("scrivi l'appuntamento:"); //Inserimento dell'oggetto da parte dell'utente
- gets(appuntamento[i].oggetto);
- }
- }
- //CASO 2: Dove avviene la visualizzazione dell'appuntamento
- int visualizzare(struct agenda appuntamento [100], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[100]){
- int i,visualizza_ora;
- do{
- printf("\nQuale ora dell'appuntamento cerchi?"); //Inserimento dell'ora dell'appuntamento che si vuole visualizzare
- scanf("%d",&visualizza_ora);
- }while (!(visualizza_ora>=0 &&visualizza_ora <=23));
- for (i=0; i<100; i++){ //cicli concatenati per permettere all'utente di visualizzare, nell'orario scelto, tutti gli appuntamenti dei vari mesi
- if(appuntamento[i].ora==visualizza_ora){
- printf("\nEcco l'appuntamento del %d.%d alle ore %d\nl'oggetto e': %s\n",appuntamento[i].giorno, appuntamento[i].mese, appuntamento[i].ora, appuntamento[i].oggetto); //visualizzazione dei vari appuntamenti
- }
- }
- }
- //CASO 3: Dove avviene la disdetta dell'appuntamento
- int disdire(struct agenda appuntamento [100], struct agenda ora, struct agenda mese, struct agenda giorno, struct agenda oggetto[]){
- printf("\n Quale appuntamento desideri disdire?");
- int i,disdire_mese, disdire_ora, disdire_giorno;
- printf("\n Inserisci il mese dell'appuntamento da disdire:");
- scanf("%d",&disdire_mese); //Inserimento del mese dell'appuntamento da disdire
- printf("\n Inserisci il giorno:");
- scanf("%d",&disdire_giorno); //Inserimento del giorno dell'appuntamento da disdire
- printf("\n Inserisci l'ora: ");
- scanf("%d",&disdire_ora); //Inserimento del'ora dell'appuntamento da disdire
- for (i=0; i<100; i++){ //cicli concatenati per permettere la disdetta dei vari appuntamenti
- if (appuntamento[i].ora == disdire_ora && appuntamento[i].mese == disdire_mese && appuntamento[i].giorno == disdire_giorno){
- //annullamento dell'appuntamento:
- appuntamento[i].ora = NULL;
- appuntamento[i].mese = NULL;
- appuntamento[i].giorno = NULL;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement