PROBLEMA Soluzione per un programma in linguaggio C

lucagallo128

Nuovo Utente
14
0
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?



C:
 #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;
}
 
Ultima modifica da un moderatore:

lucagallo128

Nuovo Utente
14
0
C:
#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;
}
Post automaticamente unito:

Ragazzi sono riuscito a inserire piu appuntamenti ma come li stampo a video ora? Qualcuno puo aiutarmi?
 

pabloski

Utente Èlite
2,406
625
si e li stampa pure pero quelli inseriti 2 volte in un giorno li sostituisce invece di stamparli entambi
E per forza. Ogni giorno corrisponde ad un indice dell'array e quindi può ospitare un solo elemento. Quindi o usi una lista linkata al posto dell'array o scorpori il giorno dall'indice dell'array.
 

pabloski

Utente Èlite
2,406
625
Ah ok grazie ma per "scorpori il giorno dall'indice dell'arrray" mi conviene fare un altra struct?
E perchè mai? Scorporare significa solo che l'indice dell'array non indica più il numero del giorno. Cioè posso mettere in array[1] un appuntamento per Giovedì 20 e in array[2] un altro appuntamento sempre per Giovedì 20. Logicamente la struct deve avere un campo che specifica a che giorno e ora si riferisce quell'appuntamento.
 

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot del momento