codice:
/*PONYEXPRESS.C*/
#include<stdio.h>
#include<time.h>
#include"tempoedistanza.h"
#include<stdlib.h>
/*the rive*/
#define max 40
//#define distance 20
struct tm T;
struct tm Time(char* startPlace, char* endPlace, struct tm ora){return ora;};
typedef struct consegna
{
char partenza[20];/*dove carico il pacco x la prima destinazione*/
char arrivo[20];/*dove scarico il pacco x poi riprendere la corsa*/
int priorita;// priorit� della consegna 0 oppure 1
int distanza;// distanza tra il luogo della partenza e del arrivo
struct tm tempoConsegna;//tempo x la consegna
struct tm caricamento;// ora di caricamento
struct tm consegna; // ora di consegna
}Consegne;
typedef struct datigiornata
{
float G;/*indica la durata dell' orario di lavoro*/
int tot_dist;//totale distanza percorsa durante la giornata lavorativa
char inizio[20];//luogo di partenza della prima consegna e dove finira' l' ultima consegna
struct tm oraentrata;
struct tm orauscita;
}datiG;
typedef struct pacchi{
char ordinicons;
char ordinaconseff;
}conseseguite;
int main(int argc, char **argv)
{
//float distance;
Consegne p[max]={"","", 0}; // Array di Max elementi dove salvera' tutte le tripple lette da file
FILE *in,*out1,*out2;//streams in= File con tutti i dati out1= file con tutte le consegne fatte , out2 : file con le consegne ad alta priorita'
int i=0;//indice x scorrere l' array p
datiG d;
d.tot_dist=0;
/* if(p[i].consegneseguite!=datiG){
printf("il valore e':%c\n",consegneseguite);
}*/
/* else(consegneseguite<=datiG){
printf("il valore e' :%c\n",consegneseguite);
printf("il valore inserito e':%d",datiG);
} */
if((in = fopen(argv[1], "r"))==NULL) {
printf("Can't read file!\n");
}
if((out1 = fopen(argv[2], "w"))==NULL) {
printf("Can't read file!\n");
}
if((out2 = fopen(argv[3], "w"))==NULL) {
printf("Can't read file!\n");
exit(0);
}
fscanf(in,"%f\n",&d.G);
fscanf(in,"%s\n",&d.inizio);
fscanf(in,"%d\n",&d.oraentrata.tm_hour);
fgetc(in);
fscanf(in,"%d\n",&d.oraentrata.tm_min);
printf("\nsono qui %.1f , %s , %d:%d\n ",d.G,d.inizio,d.oraentrata.tm_hour,d.oraentrata.tm_min);
while(!feof(in)){
fscanf(in,"%s %s %d\n",p[i].partenza,p[i].arrivo,&p[i].priorita);
if(p[i].priorita==1) {
printf("Pacco ad alta priorita' processato\n");
fprintf(out1,"%s %s %d\n",p[i].partenza,p[i].arrivo,p[i].priorita);
}
if(p[i].priorita==0)
{
printf("pacco a bassa priorità processato\n");
fprintf(out2,"%s %s %d\n",p[i].partenza,p[i].arrivo,p[i].priorita);
}
p[i].distanza=distance(p[i].partenza, p[i].arrivo);
i++;
}
fclose(in);
fclose(out1);
fclose(out2);
return 0;
}
/*================================================= =========================== timeAndDistance.c ================================================== ============================*/