[C] aiuto su programma
ciao a tutti ho difficoltà a svolgere questo esercizio,spero che qualcuno possa aiutarmi:
la traccia è inserimento dati paseggeri e ricerca con stampa dei passeggeri diretti a roma dalle 15 alle 19.
grazie tante per l'aiuto..
io ho provato a svolgerlo così:
la traccia è inserimento dati paseggeri e ricerca con stampa dei passeggeri diretti a roma dalle 15 alle 19.
grazie tante per l'aiuto..

io ho provato a svolgerlo così:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "voli.h" FILE * fp; typedef struct { char nome_cognome[20]; int volo; char citta_arrivo[15]; int orario; }prenotazione; prenotazione mia_prenotazione; int main() { char operazione; do { printf("\n *****************************"); printf("\n MENU\n "); printf("\n 1:INSERIMENTO PRENOTAZIONE\n"); printf("\n 2:STAMPA NUM. TOTALE VOLI PER ROMA\n"); printf("\n 3:ESC\n"); printf("\n *****************************\n"); scanf("%c",&operazione); switch(operazione) { case '1':inserisci(); break; case '2':stampa(); break; } } while (operazione!='3'); } void inserisci() { printf("\n inserimento nome paseggero\n"); scanf("%s",mia_prenotazione.nome_cognome); printf("\n inserimento volo\n"); scanf("%d",&mia_prenotazione.volo); printf("\n inserimento destinazione\n"); scanf("%s",mia_prenotazione.citta_arrivo); printf("\n inserimento orario arrivo\n"); scanf("%d",&mia_prenotazione.orario); if ((fp=fopen("File.txt","a"))== NULL) { printf("Impossibile aprire il file\n"); exit(1); } fwrite(&mia_prenotazione,sizeof(prenotazione),1,fp); fclose(fp); } void stampa() { if ((fp=fopen("File.txt","a"))== NULL) { printf("Impossibile aprire il file\n"); exit(1); } int voli=0; while(fread(&mia_prenotazione,sizeof(prenotazione),1,fp)); if(strcmp(mia_prenotazione.citta_arrivo,"Roma")==0 && mia_prenotazione.orario>15 && mia_prenotazione.orario<19); { voli=voli+1; } printf("\nil numero totale dei voli per Roma:\n"); printf("%d",voli); fclose(fp); system("pause"); }
Risposte
grazie
appena possibile ti dò notizie sul funzionamento del programma.
appena possibile ti dò notizie sul funzionamento del programma.

ciao
ho sistemato il programma ed è funzionante apparte il float che non funziona,ma ho rimediato con int.Nella parte della ricerca dell'offerta ho effettuato un ordinamento in base al prezzo e funziona, ma vorrei successivamente stampare solo quello con il prezzo piu basso è possibile ?
void Ordina()
{
FILE *fp;
fp=fopen("File.txt","r");
offerta temp;
offerta vettoffert[N];
int i,j;
int k,conta;
rewind(fp);
//ciclo per la lettura dei dati dal file,legge i dati e li assegna al vettore di srutture
conta=0;
while(!feof(fp)){
fread(&vettoffert[conta],sizeof(offerta),1,fp);
conta++;
}
//cilco per l'ordinamento rispetto al prezzo
for (i=0;i
{
for(j=i+1;j
{
if(vettoffert.prezzo>vettoffert[j].prezzo)
{
temp=vettoffert;
vettoffert=vettoffert[j];
vettoffert[j]=temp;
}
}
}
//stampa del vettore ordinato
printf("la sequenza ordinata di prodotti è:\n");
for(k=0;k
printf("PREZZO:%d\n MARCA:%s\n QUANTITA:%d\n",vettoffert[k].prezzo,vettoffert[k].marca,vettoffert[k].numpezzi);
}
ho sistemato il programma ed è funzionante apparte il float che non funziona,ma ho rimediato con int.Nella parte della ricerca dell'offerta ho effettuato un ordinamento in base al prezzo e funziona, ma vorrei successivamente stampare solo quello con il prezzo piu basso è possibile ?
void Ordina()
{
FILE *fp;
fp=fopen("File.txt","r");
offerta temp;
offerta vettoffert[N];
int i,j;
int k,conta;
rewind(fp);
//ciclo per la lettura dei dati dal file,legge i dati e li assegna al vettore di srutture
conta=0;
while(!feof(fp)){
fread(&vettoffert[conta],sizeof(offerta),1,fp);
conta++;
}
//cilco per l'ordinamento rispetto al prezzo
for (i=0;i
for(j=i+1;j
if(vettoffert.prezzo>vettoffert[j].prezzo)
{
temp=vettoffert;
vettoffert=vettoffert[j];
vettoffert[j]=temp;
}
}
}
//stampa del vettore ordinato
printf("la sequenza ordinata di prodotti è:\n");
for(k=0;k
}
Certo che è possibile, e non è neanche difficile, se ci pensi.
In fondo, il vettore con la lista di tutte le offerte lo controlli già per ordinarlo.
Ti basta fare un controllo semplice, ed è fatta!
In fondo, il vettore con la lista di tutte le offerte lo controlli già per ordinarlo.
Ti basta fare un controllo semplice, ed è fatta!
