[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!