MarcoRonca
Nuovo Utente
- Messaggi
- 15
- Reazioni
- 0
- Punteggio
- 25
Salve, avrei bisogno del vostro aiuto. Mi viene richiesto di creare questo programma che permetta di inserire impegni in un'agenda mensile. Ora vi posto il codice sorgente:
ovviamente manca molto per ultimarlo, ma lo provo poco alla volta per identificare immediatamente i vari errori: credo che l'errore sia nella strcmp poichè il programma esegue tutto, ma alla domanda di voler ricominciare il processo oppure no, qualsiasi cosa io digiti in input, ottengo la chiusura forzata dell'intera finestra, con l'apertura della nota finestra: si è verificato un errore...
chi può farmi il grande favore di darmi una mano?
#include<stdio.h>#include<iostream>
#include<stdlib.h>
#include<string.h>
#define MAX_ORA 23
#define MAX_MINUTO 59
#define MAX_IMPEGNI 5
#define MAX_GIORNI 31
#define MAX_LUNGHEZZA_STRINGA 100
typedef struct{
char description[MAX_LUNGHEZZA_STRINGA];
int ora[MAX_ORA],minuto[MAX_MINUTO];
} impegno;
typedef struct{
impegno commission[MAX_IMPEGNI];
int num_impegni;
}giorno;
typedef struct{
giorno date[MAX_GIORNI];
int num_giorni;
}agenda;
void inserisci_impegno(impegno *i);
void inserisci_giorno(giorno *g);
void crea_agenda(agenda *a);
void stampa_impegno(impegno i);
void stampa_giorno(giorno g);
void stampa_agenda(agenda a);
//inserisco un impegno
void inserisci_impegno(impegno *i){
fflush(stdin);
printf("Che impegno devo inserire?\n");
fflush(stdout);
gets(i->description);
printf("A che ora hai questo impegno? (formato hh/mm)\n");
fflush(stdout);
scanf("%d,%d",i->ora,i->minuto);
printf("Appuntamento inserito!!\n");
}
//inserisco un numero di impegni per un giorno
void inserisci_giorno(giorno *g, int number_commissions){
for(int j=0;j<number_commissions;j++){
inserisci_impegno(&g->commission[j]);
g->num_impegni++;
}
}
//inserisco i giorni che compongono l'agenda
void componi_agenda(agenda *a){
int i=0,num_giorno,num_impegni;
char *s1,*s2="si";
do{
printf("In quale giorno vuoi inserire uno o piu impegni?\n");
scanf("%d",&num_giorno);
fflush(stdout);
while(num_giorno>MAX_GIORNI){
printf("Questo giorno non esiste!!!!\n");
system("PAUSE");
exit(0);
}
printf("Quanti impegni devo inserire per il giorno %d luglio?\n",num_giorno);
scanf("%d",&num_impegni);
fflush(stdout);
while(num_impegni>MAX_IMPEGNI){
printf("Non puoi prendere tutti questi impegni, rischi un collasso!!\n");
system("PAUSE");
exit(0);
}
inserisci_giorno(&a->date[num_giorno],num_impegni);
printf("Vuoi inserire un nuovo impegno?\n");
scanf("%s",&s1);
}while(strcmp(s1,s2)==0);
}
int main(){
agenda a;
componi_agenda(&a);
system("PAUSE");
return 0;
}
ovviamente manca molto per ultimarlo, ma lo provo poco alla volta per identificare immediatamente i vari errori: credo che l'errore sia nella strcmp poichè il programma esegue tutto, ma alla domanda di voler ricominciare il processo oppure no, qualsiasi cosa io digiti in input, ottengo la chiusura forzata dell'intera finestra, con l'apertura della nota finestra: si è verificato un errore...
chi può farmi il grande favore di darmi una mano?