Esercizio programmazione linguaggio C

di il
9 risposte

Esercizio programmazione linguaggio C

Esercizio 1
Scrivere un programma che sia in grado di gestire l'agenda di uno studente. Ogni appuntamento
indica l'ora e una breve descrizione dello stesso. Possono esserci piu' appuntamenti nello stesso
giorno. L’utente immette gli appuntamenti tramite tastiera.
Gli impegni in agenda possono essere immessi in modo disordinato (ad esempio e’ possibile
immettere l’impegno per giovedi’ 20 e successivamente l’impegno per lunedi’ 4) ma l’agenda deve
stampare a video gli impegni in ordine di data e di ora.


Salve avrei bisogno di una mano per questo esercizio, non è completo però diciamo ho svolto un inizio, ora non so bene come continuare il resto ad esempio la parte su piu appuntamenti avevo pensato di aggiungere un while o un for all'interno del primo for secondo voi sbaglio?

 #include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {
int n_giorni=3;

typedef struct {
int numeroPagina;
char data[20];
char testo[30];
}Pagine_Agenda;

Pagine_Agenda Agenda[n_giorni];

int i;//conta pagine  
char text[30];//casella di testo 
char time[20];
for (i=0;i<n_giorni;i++) {
   Agenda[i].numeroPagina=(i+1);
     printf("inserisci giorno e ora :");	
     scanf("%s",time);
     strcpy(Agenda[i].data,time);

     printf("inserisci appuntamento :");
     scanf("%s",text);
     strcpy(Agenda[i].testo,text);
      }

printf("\nVisualizzo l'agenda\n");
  for (i=0;i<n_giorni;i++) {
     printf("\nPagina %d \n", Agenda[i].numeroPagina);
     printf("Data %s \n", Agenda[i].data);
     printf("Appuntamento %s \n", Agenda[i].testo);
      }   

	return 0;
} 

9 Risposte

  • Re: Esercizio programmazione linguaggio C

    For o while ma per fare cosa esattamente?
  • Re: Esercizio programmazione linguaggio C

    Si scusami mi spiego meglio.
    Allora dovrei inserire all'interno dell'agenda più appuntamenti in un solo giorno. Ora come faccio a inserire più appuntamenti? Posso usare un for o un while per ripetere questa parte di codice?
     printf("inserisci appuntamento :");
         scanf("%s",text);
         strcpy(Agenda[i].testo,text);
  • Re: Esercizio programmazione linguaggio C

    Sì ma devi inserire anche la data oltre al testo
  • Re: Esercizio programmazione linguaggio C

    Allora adesso sono riuscito a mettere più impegni in un solo giorno ma come faccio a stampare a video?
    #include <stdio.h>
    #include <stdlib.h>
    
    
    typedef struct {
    int numeroPagina;
    int giorno;
    int ore;
    int minuto;
    char testo[30];
    }Pagine_Agenda;
    
    
    int main() {
    
    int n_giorni=3;
    int scelta_A=0;
    
    Pagine_Agenda Agenda[n_giorni];
    int i; char text[30];
    
    //Costruzione Agenda
    for(i=0;i<n_giorni;i++){
    Agenda[i].numeroPagina=(i+1);
    
    //Inserimento orari
    printf("inserisci giorno:");
    scanf("%2d",&Agenda[i].giorno);
    printf("INSERIRE 1 SE SI VUOLE AGGIUNGERE PIU'DI UN APPUNTAMENTO \nINSERISCI:");
    scanf("%d",&scelta_A);
    while(scelta_A==1){
    printf("INSERIRE 1 SE SI VUOLE AGGIUNGERE PIU'DI UN APPUNTAMENTO \nINSERISCI:");
    scanf("%d",&scelta_A);
    printf("inserisci l'ora:");
    scanf("%2d",&Agenda->ore);
    printf("inserire minuti:");
    scanf("%2d",&Agenda->minuto);
    
    
    //Inserimento appuntamenti
    printf("inserisci appuntamento:");
    scanf("%s",text);
    strcpy(Agenda->testo,text);
    }
    printf("inserisci l'ora:");
    scanf("%2d",&Agenda[i].ore);
    printf("inserire minuti:");
    scanf("%2d",&Agenda[i].minuto);
    //Inserimento appuntamenti
    printf("inserisci appuntamento:");
    scanf("%s",text);
    strcpy(Agenda[i].testo,text);
    }
    
    
    //Lettura Agenda
    printf("\nVisualizzo l'agenda\n");
    for(i=0;i<n_giorni;i++){
    printf("\nPagina %d \n", Agenda[i].numeroPagina);
    printf("il giorno %2d\n",Agenda[i].giorno);	
    printf("alle ore %2d\n",Agenda[i].ore);
    printf("e %2d minuti\n",Agenda[i].minuto);
    printf("Appuntamento %s\n",Agenda[i].testo);
    }
    	return 0;
    }
  • Re: Esercizio programmazione linguaggio C

    Non vedo difficoltà a stampare i dati ... dove trovi difficoltà?
  • Re: Esercizio programmazione linguaggio C

    Quando inserisco due appuntamenti nello stesso giorno a ore diverse sostituisce il primo appuntamento con il secondo e non so come stamparli entrambi
  • Re: Esercizio programmazione linguaggio C

    Questa è un'altra domanda. Non è relativa alla stampa ma alla gestione di più appuntamenti con medesima data e diverso orario. Le cose cambiano.

    Vedo che nella struttura c'è il dato relativo alle ore/minuti, perchè dici che lo sostituisce?
  • Re: Esercizio programmazione linguaggio C

    Perché eseguendo il programma quando stampa le pagine con tutti i "valori" nel caso di appuntamenti nello stesso giorno ma ore e minuti diversi, invece di stampare entrambi gli eventi stampa solo l'ultimo di quella giornata. Secondo me è dovuto al fatto che ore e minuti sono già occupati dal primo evento e quindi aggiungendo un altro li sostituisce è possibile?
  • Re: Esercizio programmazione linguaggio C

    Crosposting "https://forum.tomshw.it/threads/problema-linguaggio-c.820041/"
Devi accedere o registrarti per scrivere nel forum
9 risposte